Llama 2 在 Amazon SageMaker 上的基準測試

Hugging Face 發布了一份全面的基準測試,分析了 Llama 2 在 Amazon SageMaker 上超過 60 種部署配置。這項分析為企業提供了數據驅動的建議,讓他們可以根據優先考慮成本效益、最大吞吐量或最低延遲來優化其生成式 AI 部署。

部署基礎設施與方法論

此基準測試使用了 Hugging Face LLM Inference Container,其核心技術為 Text Generation Inference (TGI)。TGI 是一個開源解決方案,透過動態批處理 (dynamic batching) 和張量並行 (Tensor Parallelism) 實現高性能文本生成。

基準測試參數

為了評估真實世界的性能,Hugging Face 針對以下變量測試了三種 Llama 2 模型大小(7B、13B 和 70B 參數):

  • 執行個體類型 (Instance Types): NVIDIA A10G GPU (g5.2xlarge, g5.12xlarge, g5.48xlarge) 和 NVIDIA A100 40GB GPU (p4d.24xlarge)。
  • 負載水平 (Load Levels): 併發請求量分別為 1、5、10 和 20。
  • 量化 (Quantization): 使用標準權重與 GPTQ 4-bit 量化進行性能對比。GPTQ 將模型權重從 32 bits 降低到 3-4 bits,顯著降低了記憶體需求,並允許在單個 GPU 上運行更大的模型(例如 Llama 2 13B)。

性能指標

性能使用兩個主要指標進行衡量:

  • 吞吐量 (Throughput): 每秒生成的 token 數量。
  • 延遲 (Latency): 生成單個 token 所需的時間(以每 token 毫秒數衡量)。

最佳部署建議

根據基準測試結果,Hugging Face 根據業務目標確定了三種主要的部署策略。

最具成本效益的部署

對於優先考慮最低每 token 成本的用戶,GPTQ 量化是最有效的策略。這使得在單個 GPU 執行個體上部署 Llama 2 13B 成為可能。

模型 量化 執行個體 併發請求 延遲 (ms/token) 吞吐量 (tokens/sec) 成本 ($/h) 每 1M Tokens 成本
Llama 2 7B GPTQ g5.2xlarge 5 34.25 120.09 $1.52 $3.50
Llama 2 13B GPTQ g5.2xlarge 5 56.24 71.71 $1.52 $5.87
Llama 2 70B GPTQ ml.g5.12xlarge 5 138.35 33.33 $7.09 $59.08

最佳吞吐量部署

為了最大化每秒處理的 token 數量,需要更高階的 GPU 執行個體和更高的併發量。記錄到的最高總吞吐量是在 ml.p4d.12xlarge 執行個體上,Llama 2 13B 達到 688 tokens/sec。

模型 量化 執行個體 併發請求 延遲 (ms/token) 吞吐量 (tokens/sec) 成本 ($/h) 每 1M Tokens 成本
Llama 2 7B None ml.g5.12xlarge 20 44.00 449.94 $7.09 $3.97
Llama 2 13B None ml.p4d.12xlarge 20 67.40 668.02 $37.69 $15.67
Llama 2 70B None ml.p4d.24xlarge 20 59.80 321.54 $37.69 $32.56

最佳延遲部署

對於聊天介面等即時應用,最小化生成單個 token 的時間至關重要。最低延遲是由 ml.g5.12xlarge 上的 Llama 2 7B 實現的。

模型 量化 執行個體 併發請求 延遲 (ms/token) 吞吐量 (tokens/sec) 成本 ($/h) 每 1M Tokens 成本
Llama 2 7B None ml.g5.12xlarge 1 16.81 61.46 $7.09 $32.05
Llama 2 13B None ml.g5.12xlarge 1 21.00 47.16 $7.09 $41.76
Llama 2 70B None ml.p4d.24xlarge 1 41.35 24.51 $37.69 $427.05

結論

基準測試表明,在 Amazon SageMaker 上部署 Llama 2 的效率很大程度上取決於量化方式和執行個體類型的選擇。GPTQ 4-bit 量化顯著降低了成本效益型部署的門檻,而為了實現最大吞吐量,則需要高性能的 NVIDIA A100 執行個體。

Sources