Amazon SageMaker 上 Llama 2 的基準測試

釋出於 2023 年 9 月 26 日
在 GitHub 上更新

Latency

部署大型語言模型(LLM)和其他生成式 AI 模型可能具有挑戰性,因為它們對計算資源和延遲有較高要求。為了向希望在 Amazon SageMaker 上使用 Hugging Face LLM 推理容器 部署 Llama 2 的公司提供有用的建議,我們建立了一個全面的基準測試,分析了 Llama 2 超過 60 種不同的部署配置。

在此基準測試中,我們評估了不同大小的 Llama 2 在一系列 Amazon EC2 例項型別上,在不同負載水平下的表現。我們的目標是測量延遲(每令牌毫秒數)和吞吐量(每秒令牌數),以找到三種常見用例的最佳部署策略:

  • 最具成本效益的部署:適用於尋求低成本下良好效能的使用者
  • 最佳延遲部署:最大限度地減少即時服務的延遲
  • 最佳吞吐量部署:最大限度地提高每秒處理的令牌數

為了確保本次基準測試的公平性、透明度和可復現性,我們分享了所有使用的資產、程式碼和收集的資料:

我們希望能夠幫助客戶根據其用例高效、最佳化地使用 LLM 和 Llama 2。在深入瞭解基準測試和資料之前,讓我們先了解一下我們使用的技術和方法。

什麼是 Hugging Face LLM 推理容器?

Hugging Face LLM DLC 是一個專門為在安全且託管的環境中輕鬆部署 LLM 而構建的推理容器。該 DLC 由 Text Generation Inference (TGI) 提供支援,TGI 是一個用於部署和提供 LLM 的開源、專用解決方案。TGI 利用張量並行和動態批處理技術,為最流行的開源 LLM(包括 StarCoder、BLOOM、GPT-NeoX、Falcon、Llama 和 T5)實現高效能文字生成。VMware、IBM、Grammarly、Open-Assistant、Uber、Scale AI 等眾多公司已在使用 Text Generation Inference。

什麼是 Llama 2?

Llama 2 是 Meta 的一系列大型語言模型(LLM),在 2 萬億個令牌上進行訓練。Llama 2 有三種尺寸——7B、13B 和 70B 引數——與 Llama (1) 相比,Llama 2 引入了關鍵改進,例如更長的上下文長度、商業許可,以及透過強化學習最佳化聊天能力。如果您想了解更多關於 Llama 2 的資訊,請檢視這篇 部落格文章

什麼是 GPTQ?

GPTQ 是一種用於壓縮 LLM(如 GPT)的訓練後量化方法。GPTQ 透過將模型中儲存每個權重的位元數從 32 位減少到僅 3-4 位來壓縮 GPT(解碼器)模型。這意味著模型佔用更少的記憶體,並且可以在更少的硬體上執行,例如用於 13B Llama2 模型的單個 GPU。GPTQ 分別分析模型的每一層並近似權重以保持整體準確性。如果您想了解更多資訊以及如何使用它,請檢視 使用 GPTQ 和 Hugging Face Optimum 最佳化開源 LLM

基準測試

為了對 Llama 2 的實際效能進行基準測試,我們測試了 3 種模型尺寸(7B、13B、70B 引數)在四種不同例項型別和四種不同負載水平下的效能,從而產生了 60 種不同的配置:

  • 模型:我們評估了所有當前可用的模型尺寸,包括 7B、13B 和 70B。
  • 併發請求:我們測試了 1、5、10 和 20 個併發請求的配置,以確定在不同使用場景下的效能。
  • 例項型別:我們評估了不同的 GPU 例項,包括由 NVIDIA A10G GPU 驅動的 g5.2xlarge、g5.12xlarge、g5.48xlarge,以及由 NVIDIA A100 40GB GPU 驅動的 p4d.24xlarge。
  • 量化:我們比較了有無量化時的效能。我們使用了 GPTQ 4 位量化技術。

我們使用的指標是吞吐量和延遲,定義如下:

  • 吞吐量(令牌/秒):每秒生成的令牌數量。
  • 延遲(毫秒/令牌):生成單個令牌所需的時間。

我們利用這些指標來評估 Llama 在不同設定下的效能,從而理解其優勢和權衡。如果您想自己執行基準測試,我們建立了一個 Github 倉庫

您可以在 Amazon SageMaker 基準測試:TGI 1.0.3 Llama 2 表格中找到完整的基準測試資料。原始資料可在 GitHub 上獲取。

如果您對所有細節感興趣,我們建議您深入研究提供的原始資料。

建議和見解

根據基準測試,我們根據您對所有 Llama 2 模型尺寸在成本、吞吐量和延遲之間的優先順序,為最佳 LLM 部署提供了具體建議。

注意:這些建議基於我們測試的配置。未來,其他環境或硬體產品(例如 Inferentia2)可能更具成本效益。

最具成本效益的部署

最具成本效益的配置關注於效能(延遲和吞吐量)與成本之間的最佳平衡。目標是最大限度地提高每美元的產出。我們考察了 5 個併發請求下的效能。我們可以看到 GPTQ 提供了最佳的成本效益,允許客戶在單個 GPU 上部署 Llama 2 13B。

模型 量化 例項 併發請求 延遲(毫秒/令牌)中位數 吞吐量(令牌/秒) 按需成本(美元/小時)在 us-west-2 生成 1M 令牌所需時間(分鐘) 生成 1M 令牌的成本(美元)
Llama 2 7B GPTQ g5.2xlarge 5 34.245736 120.0941633 $1.52 138.78 $3.50
Llama 2 13B GPTQ g5.2xlarge 5 56.237484 71.70560104 $1.52 232.43 $5.87
Llama 2 70B GPTQ ml.g5.12xlarge 5 138.347928 33.33372399 $7.09 499.99 $59.08

最佳吞吐量部署

最佳吞吐量配置可最大限度地提高每秒生成的令牌數量。這可能會導致整體延遲有所降低,因為您可以同時處理更多令牌。我們關注了在 20 個併發請求下的最高每秒令牌數效能,併兼顧了例項成本。Llama 2 13B 在 ml.p4d.24xlarge 例項上實現了最高吞吐量,達到 688 令牌/秒。

模型 量化 例項 併發請求 延遲(毫秒/令牌)中位數 吞吐量(令牌/秒) 按需成本(美元/小時)在 us-west-2 生成 1M 令牌所需時間(分鐘) 生成 1M 令牌的成本(美元)
Llama 2 7B ml.g5.12xlarge 20 43.99524 449.9423027 $7.09 33.59 $3.97
Llama 2 13B ml.p4d.12xlarge 20 67.4027465 668.0204881 $37.69 24.95 $15.67
Llama 2 70B ml.p4d.24xlarge 20 59.798591 321.5369158 $37.69 51.83 $32.56

最佳延遲部署

最佳延遲配置可最大限度地減少生成一個令牌所需的時間。低延遲對於即時用例和為客戶提供良好體驗(例如聊天應用程式)至關重要。我們考察了 1 個併發請求下的每令牌中位數延遲。Llama 2 7B 在 ml.g5.12xlarge 例項上實現了最低的整體延遲,為 16.8 毫秒/令牌。

模型 量化 例項 併發請求 延遲(毫秒/令牌)中位數 吞吐量(令牌/秒) 按需成本(美元/小時)在 us-west-2 生成 1M 令牌所需時間(分鐘) 生成 1M 令牌的成本(美元)
Llama 2 7B ml.g5.12xlarge 1 16.812526 61.45733054 $7.09 271.19 $32.05
Llama 2 13B ml.g5.12xlarge 1 21.002715 47.15736567 $7.09 353.43 $41.76
Llama 2 70B ml.p4d.24xlarge 1 41.348543 24.5142928 $37.69 679.88 $427.05

結論

在此基準測試中,我們測試了 Amazon SageMaker 上 Llama 2 的 60 種配置。對於成本效益型部署,我們發現帶有 GPTQ 的 13B Llama 2 在 g5.2xlarge 上可達到 71 令牌/秒的吞吐量,每小時成本為 1.55 美元。對於最大吞吐量,13B Llama 2 在 ml.g5.12xlarge 上達到了 296 令牌/秒,每百萬令牌成本為 2.21 美元。而對於最低延遲,7B Llama 2 在 ml.g5.12xlarge 上實現了每令牌 16 毫秒的延遲。

我們希望本次基準測試能幫助公司根據自身需求最佳化 Llama 2 的部署。如果您想開始在 Amazon SageMaker 上部署 Llama 2,請查閱 推出適用於 Amazon SageMaker 的 Hugging Face LLM 推理容器在 Amazon SageMaker 上部署 Llama 2 7B/13B/70B 部落格文章。


感謝您的閱讀!如果您有任何問題,請隨時透過TwitterLinkedIn與我聯絡。

社群

註冊登入 評論

© . This site is unofficial and not affiliated with Hugging Face, Inc.