

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Amazon SageMaker AI 模型的推論最佳化
<a name="model-optimize"></a>

使用 Amazon SageMaker AI，您可以透過套用推論最佳化技術來改善生成式 AI 模型的效能。透過最佳化模型，您可以為使用案例獲得更好的成本效能。當您最佳化模型時，您可以選擇要套用哪些支援的最佳化技術，包括量化、推測性解碼和編譯。最佳化模型後，您可以執行評估來查看延遲、輸送量和價格的效能指標。

對於許多模型，SageMaker AI 也提供數個預先最佳化的版本，每個版本都符合不同應用程式對延遲和輸送量的需求。對於這類模型，您可以部署其中一個最佳化版本，而無需先自行最佳化模型。

## 最佳化技術
<a name="optimization-techniques"></a>

Amazon SageMaker AI 支援下列最佳化技術。

### 編譯
<a name="compilation"></a>

*編譯*會將模型最佳化，以獲得所選硬體類型的最佳可用效能，而不失去準確性。您可以套用模型編譯來最佳化已加速硬體的 LLM，例如 GPU 執行個體、AWS Trainium 執行個體或 AWS Inferentia 執行個體。

當您使用編譯最佳化模型時，您可以受益於預先編譯。您可以縮短模型的部署時間和自動擴展延遲，因為模型在部署到新執行個體時，模型權重不需要即時編譯。

如果您選擇編譯 GPU 執行個體的模型，SageMaker AI 會使用 TensorRT-LLM 程式庫來執行編譯。如果您選擇編譯 AWS Trainium 或 AWS Inferentia 執行個體的模型，SageMaker AI 會使用 AWS Neuron SDK 來執行編譯。

### 量化
<a name="quantization"></a>

*量化*是一種技術，可透過對權重和啟用使用較不精確的資料類型來降低模型的硬體需求。使用量化將模型最佳化後，您可以將模型託管在成本較低且可用性較高的 GPU 上。不過，量化後模型的準確性可能比您最佳化的來源模型低。

SageMaker AI 支援用於量化的資料格式因模型而異。支援的格式如下：
+ INT4-AWQ – 4 位元資料格式。啟用感知權重量化 (AWQ) 是一種 LLM 的量化技術，有效、準確、低位元且僅權重。
+ FP8 – 8 位元浮點數 (FP8) 是浮點數的低精確度格式。它透過代表比標準 FP16 浮點格式更少位元的值，來平衡記憶體效率和模型準確性。
+ INT8-SmoothQuant – 8 位元資料格式。SmoothQuant 是一種混合精度量化方法，可透過平衡其動態範圍來共同擴展啟用和權重。

### 推測性解碼
<a name="speculative-decoding"></a>

*推測性解碼*是一種加速大型 LLM 解碼程序的技術。它在不影響所產生文字的品質情況下，將模型最佳化以改善延遲性。

此技術使用較小但較快的模型，稱為*草稿*模型。草稿模型會產生候選記號，然後由較大但較慢的*目標*模型進行驗證。每次迭代運算時，草稿模型就會產生多個候選記號。目標模型會驗證記號，如果發現特定的記號是無法接受的，便會拒絕記號並重新產生記號。因此，目標模型會驗證記號並產生少量記號。

草稿模型的速度明顯比目標模型快。它會快速產生所有記號，然後將記號批次傳送到目標模型進行驗證。目標模型會同時評估所有的記號，以加速最終回應。

SageMaker AI 提供預先建置的草稿模型供您使用，因此您不需要自行建置。如果您偏好使用自己的自訂草稿模型，SageMaker AI 也支援此選項。

### 快速模型載入
<a name="fast-model-loading"></a>

*快速模型載入*技術會準備 LLM，讓 SageMaker AI 可以更快速地將其載入 ML 執行個體。

為了準備模型，SageMaker AI 會事先將模型碎片化，方法是將模型分成數個部分，各部分可位於獨立的 GPU 上，以進行分散式推論。此外，SageMaker AI 會將模型權重存放同等大小的區塊中，SageMaker AI 可以同時將這些區塊載入至執行個體。

當 SageMaker AI 將最佳化模型載入至執行個體時，會將模型權重直接從 Amazon S3 串流到執行個體的 GPU。SageMaker AI 透過串流權重，省略數個通常為必要的耗時步驟。這些步驟包括將模型成品從 Amazon S3 下載至磁碟、將模型成品載入到主機記憶體，以及在主機上將模型碎片化，最後再將碎片載入到 GPU。

最佳化模型以加速載入後，您可以更快速地將其部署到 SageMaker AI 端點。此外，如果您將端點設定為使用自動擴展，它會更快地向外擴展以適應流量的增加。