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与我联系。

社区

注册登录 评论