本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Amazon 進行模型推論最佳化 SageMaker
使用 Amazon 時 SageMaker,您可以套用推論最佳化技術來改善生成式 AI 模型的效能。透過最佳化模型,您可以為使用案例取得更好的成本效能。當您最佳化模型時,您可以選擇要套用哪些支援的最佳化技術,包括量化、投機解碼和編譯。最佳化模型後,您可以執行評估,以查看延遲、輸送量和價格的效能指標。
對於許多模型, SageMaker 也提供數個預先最佳化的版本,每個版本都符合不同的應用程式對延遲和輸送量的需求。對於此類模型,您可以部署其中一個最佳化版本,而無需先自行最佳化模型。
最佳化技術
Amazon SageMaker 支援下列最佳化技術。
推測解碼
推測解碼是一種加快大型 解碼程序的技術LLMs。它可最佳化模型的延遲,而不會犧牲產生的文字品質。
此技術使用較小但較快的模型,稱為草擬模型。草擬模型會產生候選權杖,然後由較大但較慢的目標模型進行驗證。每次迭代時,草稿模型都會產生多個候選權杖。目標模型會驗證權杖,如果發現特定權杖不被接受,則會拒絕權杖並加以重新產生。因此,目標模型會驗證權杖並產生少量權杖。
草擬模型明顯比目標模型快。它會快速產生所有字符,然後將它們的批次傳送到目標模型進行驗證。目標模型會並行評估它們,以加速最終回應。
SageMaker 提供預先建置的草稿模型供您使用,因此您不必自行建置。如果您偏好使用自己的自訂草稿模型, SageMaker 也支援此選項。
量化
量化是一種技術,透過使用較不精確的資料類型來減少權重和啟用的模型硬體需求。使用量化功能最佳化模型後,您可以將模型託管在價格更低且更可用的 上GPUs。不過,量化模型的準確度可能低於您最佳化的來源模型。
SageMaker 支援 的 Activation-aware Weight Quantization (AWQ)GPUs。AWQ 是一項有效LLMs、準確、低位元且僅權重的量化技術。
編譯
編譯會將模型最佳化,以在所選硬體類型上獲得最佳可用效能,而不會損失準確性。您可以套用模型編譯來LLMs最佳化加速硬體,例如 AWS Trainium 或 AWS Inferentia。
當您使用編譯功能最佳化模型時,您將受益於 ahead-of-time編譯。您可以縮短模型的部署時間和自動擴展延遲,因為模型權重在模型部署至新執行個體時不需要 just-in-time編譯。
推論效能評估的指標參考
成功評估最佳化模型的效能後,Studio 中的評估詳細資訊頁面會顯示下列指標。
延遲指標
延遲區段顯示下列指標
- 並行數量
-
評估模擬同時叫用端點的並行使用者數量。
- 到第一個權杖的時間 (毫秒)
-
傳送請求到收到串流回應的第一個權杖之間經過的時間。
- 互換延遲 (毫秒)
-
為每個請求產生輸出權杖的時間。
- 用戶端延遲 (毫秒)
-
從傳送請求到收到整個回應的請求延遲。
- 輸入權杖/秒 (計數)
-
所有請求中產生的輸入字符總數除以並行的總持續時間秒數。
- 輸出權杖/秒 (計數)
-
所有請求中產生的輸出權杖總數,除以並行的總持續時間秒數。
- 用戶端叫用 (計數)
-
並行傳送至所有使用者端點的推論請求總數。
- 用戶端叫用錯誤 (計數)
-
在指定的並行中,在所有使用者之間傳送至端點的推論請求總數,導致調用錯誤。
- Tokenizer 失敗 (計數)
-
權杖化器無法剖析請求或回應的推論請求總數。
- 空推論回應 (計數)
-
導致零輸出權杖或權杖化器無法剖析回應的推論請求總數。
輸送量指標
輸送量區段顯示下列指標。
- 並行數量
-
評估模擬同時叫用端點的並行使用者數量。
- 輸入權杖/秒/請求 (計數)
-
每個請求每秒產生的輸入權杖總數。
- 輸出權杖/秒/請求 (計數)
-
每個請求每秒產生的輸出權杖總數。
- 輸入權杖 (計數)
-
每個請求產生的輸入權杖總數。
- 輸出權杖 (計數)
-
每個請求產生的輸出權杖總數。
價格指標
價格區段顯示下列指標。
- 並行數量
-
評估模擬同時叫用端點的並行使用者數量。
- 每百萬輸入權杖的價格
-
處理 1M 輸入權杖的成本。
- 每百萬輸出權杖的價格
-
產生 1M 輸出權杖的成本。
支援的模型參考
下表顯示 SageMaker 支援推論最佳化的模型,並顯示支援的最佳化技術。
模型名稱 | JumpStart 模型 ID | 支援量化 | 支援推測解碼 | 使用 SageMaker 草稿模型進行推測解碼 |
---|---|---|---|---|
Falcon | huggingface-llm-falcon-40b-bf16 | 是 | 是 | 否 |
huggingface-llm-falcon-40b-instruct-bf16 | 是 | 是 | 否 | |
huggingface-llm-falcon-180b-chat-bf16 | 否 | 是 | 否 | |
huggingface-llm-falcon-180b-bf16 | 否 | 是 | 否 | |
huggingface-llm-amazon-falconlite | 是 | 是 | 否 | |
huggingface-llm-amazon-falconlite2 | 是 | 是 | 否 | |
huggingface-llm-tiiuae-falcon-rw-1b | 是 | 是 | 否 | |
huggingface-llm-falcon-7b-bf16 | 是 | 是 | 否 | |
huggingface-llm-falcon-7b-instruct-bf16 | 是 | 是 | 否 | |
huggingface-llm-falcon2-11b | 是 | 是 | 否 | |
gpt-neox | huggingface-textgeneration2-gpt-neoxt-chat-base-20b-fp16 | 是 | 是 | 否 |
huggingface-textgeneration2-gpt-neox-20b-fp16 | 是 | 是 | 否 | |
LLaMA | meta-textgeneration-llama-3-70b-instruct | 是 | 是 | 是 |
meta-textgeneration-llama-3-70b | 是 | 是 | 是 | |
meta-textgeneration-llama-3-8b | 是 | 是 | 是 | |
meta-textgeneration-llama-3-8b-指示 | 是 | 是 | 是 | |
meta-textgeneration-llama-2-7b | 是 | 是 | 是 | |
meta-textgeneration-llama-2-7b-f | 是 | 是 | 是 | |
meta-textgeneration-llama-2-13b | 是 | 是 | 是 | |
meta-textgeneration-llama-2-13b-f | 是 | 是 | 是 | |
meta-textgeneration-llama-2-70b | 是 | 是 | 是 | |
meta-textgeneration-llama-2-70b-f | 是 | 是 | 是 | |
meta-textgeneration-llama-codellama-7b | 是 | 是 | 是 | |
meta-textgeneration-llama-codellama-7b-指示 | 是 | 是 | 是 | |
meta-textgeneration-llama-codellama-7b-python | 是 | 是 | 是 | |
meta-textgeneration-llama-codellama-13b | 是 | 是 | 是 | |
meta-textgeneration-llama-codellama-13b-指示 | 是 | 是 | 是 | |
meta-textgeneration-llama-codellama-13b-python | 是 | 是 | 是 | |
meta-textgeneration-llama-codellama-34b | 是 | 是 | 是 | |
meta-textgeneration-llama-codellama-34b-指示 | 是 | 是 | 是 | |
meta-textgeneration-llama-codellama-34b-python | 是 | 是 | 是 | |
meta-textgeneration-llama-codellama-70b | 是 | 是 | 是 | |
meta-textgeneration-llama-codellama-70b-指示 | 是 | 是 | 是 | |
meta-textgeneration-llama-codellama-70b-python | 是 | 是 | 是 | |
meta-textgeneration-llama-guard-7b | 是 | 是 | 是 | |
Bloom | huggingface-textgeneration-bloom-1b7 | 是 | 是 | 否 |
huggingface-textgeneration-bloom-1b1 | 是 | 是 | 否 | |
huggingface-textgeneration-bloom-560 公尺 | 是 | 是 | 否 | |
huggingface-textgeneration-bloomz-560 公尺 | 是 | 是 | 否 | |
huggingface-textgeneration-bloomz-1b1 | 是 | 是 | 否 | |
huggingface-textgeneration-bloomz-1b7 | 是 | 是 | 否 | |
huggingface-textgeneration1-bloomz-7b1-fp16 | 是 | 是 | 否 | |
huggingface-textgeneration1-bloom-7b1 | 是 | 是 | 否 | |
huggingface-textgeneration1-bloomz-3b-fp16 | 是 | 是 | 否 | |
huggingface-textgeneration1-bloom-3b | 是 | 是 | 否 | |
huggingface-textembedding-bloom-7b1 | 是 | 是 | 否 | |
huggingface-textembedding-bloom-7b1-fp16 | 是 | 是 | 否 | |
Cohere | huggingface-llm-cohereforai-c4ai-command-r-plus | 是 | ||
Gemma | huggingface-llm-gemma-7b | 是 | 是 | 否 |
huggingface-llm-gemma-7b-指示 | 是 | 是 | 否 | |
huggingface-llm-gemma-2b | 是 | 是 | 否 | |
huggingface-llm-gemma-2b-指示 | 是 | 是 | 否 | |
huggingface-llm-zephyr-7b-gemma | 是 | 是 | 否 | |
gpt2 | huggingface-textgeneration-gpt2 | 是 | 否 | 否 |
huggingface-textgeneration-distilgpt2 | 是 | 否 | 否 | |
混合 | huggingface-llm-mistral-7b | 是 | 是 | 是 |
huggingface-llm-mistral-7b-指示 | 是 | 是 | 是 | |
huggingface-llm-mistral-7b-openorca-gptq | 是 | 是 | 是 | |
huggingface-llm-amazon-mistrallite | 是 | 是 | 是 | |
huggingface-llm-thebloke-mistral-7b-openorca-awq | 是 | 是 | 是 | |
huggingface-llm-huggingfaceh4-mistral-7b-sft-beta | 是 | 是 | 是 | |
huggingface-llm-huggingfaceh4-mistral-7b-sft-alpha | 是 | 是 | 是 | |
huggingface-llm-teknium-openhermes-2-雜交-7b | 是 | 是 | 是 | |
huggingface-llm-nousresearch-yarn-雜交-7b-128k | 是 | 是 | 是 | |
huggingface-llm-dolphin-2-2-1-mistral-7b | 是 | 是 | 是 | |
huggingface-llm-cultrix-mistraltrix-v1 | 是 | 是 | 是 | |
混合 | huggingface-llm-mixtral-8x7b-指示 | 是 | 是 | 是 |
huggingface-llm-mixtral-8x7b-instruct-gptq | 是 | 是 | 是 | |
huggingface-llm-mixtral-8x7b | 是 | 是 | 是 | |
huggingface-llm-mistralai-mixtral-8x22B-instruct-v0-1 | 是 | 是 | 是 | |
huggingface-llm-dolphin-2-5-mixtral-8x7b | 是 | 是 | 是 | |
huggingface-llm-dolphin-2-7-mixtral-8x7b | 是 | 是 | 是 | |
Phi | huggingface-llm-phi-2 | 是 |
預先最佳化 JumpStart 模型
以下是具有預先最佳化組態的 JumpStart 模型。
Meta
-
Llama 3 8B 指示
-
Llama 3 8B
-
Llama 3 70B 指示
-
Llama 3 70B
-
Llama 2 70B 聊天
-
Llama 2 7B 聊天
-
Llama 2 13B 聊天
HuggingFace
-
混合 8x7B 指示
-
混合 8x7B
-
混合 7B 指示
-
雜音 7B
預先編譯的 JumpStart 模型
對於某些模型和組態, SageMaker 會提供針對特定 AWS Inferentia 和 AWS Trainium 執行個體預先編譯的模型。對於這些,如果您建立編譯或最佳化任務,並選擇 ml.inf2.48xlarge 或 ml.trn1.32xlarge 作為部署執行個體類型, 會 SageMaker 擷取編譯成品。因為任務使用已編譯的模型,所以它會快速完成,而不會從頭開始執行編譯。
以下是 SageMaker 具有預先編譯 JumpStart 模型的模型:
Meta
-
Llama3 8B
-
Llama3 70B
-
Llama2 7B
-
Llama2 70B
-
Llama2 13B
-
程式碼 Llama 7B
-
程式碼 Llama 70B
HuggingFace
-
雜音 7B