本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Amazon SageMaker AI,您可以透過套用推論最佳化技術來改善生成式 AI 模型的效能。透過最佳化模型,您可以為使用案例獲得更好的成本效能。當您最佳化模型時,您可以選擇要套用哪些支援的最佳化技術,包括量化、投機解碼和編譯。最佳化模型後,您可以執行評估,以查看延遲、輸送量和價格的效能指標。
對於許多模型,SageMaker AI 也提供數個預先最佳化版本,每個版本都符合不同的應用程式對延遲和輸送量的需求。對於此類模型,您可以部署其中一個最佳化版本,而無需先自行最佳化模型。
最佳化技術
Amazon SageMaker AI 支援下列最佳化技術。
編譯
編譯可最佳化模型,在所選硬體類型上獲得最佳的可用效能,而不會損失準確性。您可以套用模型編譯來最佳化加速硬體LLMs,例如 GPU 執行個體、 AWS Trainium 執行個體或 AWS Inferentia 執行個體。
當您使用編譯來最佳化模型時,您會受益於ahead-of-time編譯。您會減少模型的部署時間和自動擴展延遲,因為模型權重在模型部署到新執行個體時不需要just-in-time編譯。
如果您選擇編譯 GPU 執行個體的模型,SageMaker AI 會使用 TensorRT-LLM 程式庫來執行編譯。如果您選擇編譯 Trainium 或 AWS Inferentia 執行個體的 AWS 模型,SageMaker AI 會使用 AWS Neuron SDK 來執行編譯。
量化
量化是一種技術,透過使用較不精確的資料類型來降低權重和啟用的模型硬體需求。使用量化功能最佳化模型後,您可以將模型託管在成本較低且更可用的 GPUs 上。不過,量化模型的準確度可能低於您最佳化的來源模型。
SageMaker AI 支援用於量化的資料格式因模型而異。支援的格式包括下列項目:
-
INT4-AWQ – 4 位元資料格式。Activation-aware Weight Quantization (AWQ) 是一種 LLMs 的量化技術,具有效率、準確性、低位元且僅限權重。
-
FP8 – 8 位元浮點 (FP8) 是浮點數的低精確度格式。它透過代表比標準 FP16 浮點格式更少位元的值來平衡記憶體效率和模型準確性。
-
INT8-SmoothQuant – 8 位元資料格式。SmoothQuant 是一種混合精度量化方法,可透過平衡其動態範圍來共同擴展啟用和權重。
推測解碼
投機式解碼是一種技術,可加速大型 LLMs的解碼程序。它可最佳化模型的延遲,而不會影響產生的文字品質。
此技術使用較小但較快的模型,稱為草擬模型。草稿模型會產生候選權杖,然後由較大但較慢的目標模型驗證。在每次反覆運算時,草擬模型會產生多個候選權杖。目標模型會驗證權杖,如果發現特定權杖是無法接受的,則會拒絕權杖並重新產生權杖。因此,目標模型會驗證權杖並產生少量權杖。
草稿模型明顯比目標模型快。它會快速產生所有字符,然後將它們的批次傳送到目標模型進行驗證。目標模型會平行評估它們,以加速最終回應。
SageMaker AI 提供預先建置的草稿模型,您可以使用,因此您不需要自行建置。如果您偏好使用自己的自訂草稿模型,SageMaker AI 也支援此選項。
快速載入模型
快速模型載入技術會準備 LLM,讓 SageMaker AI 可以更快速地將其載入 ML 執行個體。
為了準備模型,SageMaker AI 會預先將其分割成部分,每個部分都可以位於單獨的 GPU 上進行分散式推論。此外,SageMaker AI 會將模型權重存放在 SageMaker AI 可以同時載入執行個體的等大小區塊中。
當 SageMaker AI 將最佳化模型載入執行個體時,它會將模型權重直接從 Amazon S3 串流到執行個體的 GPUs。透過串流權重,SageMaker AI 省略了通常必要的幾個耗時步驟。這些步驟包括從 Amazon S3 下載模型成品到磁碟、將模型成品載入主機記憶體,以及在主機上分割模型,最後再將碎片載入 GPUs。
最佳化模型以加快載入速度後,您可以更快速地將其部署到 SageMaker AI 端點。此外,如果您將端點設定為使用自動擴展,它會更快地擴展以適應流量的增加。