AWS Trainium & Inferentia 文档

Llama 在 AWS Inferentia2 上的性能(延迟和吞吐量)

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

Llama 在 AWS Inferentia2 上的性能(延迟和吞吐量)

Llama 在 Inferentia2 上有多快?让我们来一探究竟!

本次基准测试将使用 LLama 2 7B 和 13B 模型,采用不同配置。

模型类型 核心数量 批处理大小
Llama2 7B - L(延迟) 24 1
Llama2 7B - T(吞吐量) 24 4
Llama2 13B - L(延迟) 24 1
Llama2 13B - T(吞吐量) 24 4

注意:所有模型均以 2048 的最大序列长度进行编译。

所有模型都已编译,以充分利用 `inf2.48xlarge` 实例上可用的所有核心。

注意:有关可用实例的详细信息,请参阅 inferentia2 产品页面

我们为 `llama2 7B` 和 `llama2 13B` 模型创建了两种“延迟”配置,它们一次只能处理一个请求,但速度全开;另外两种“吞吐量”配置可以并行处理多达四个请求。

为了评估模型,我们生成令牌直到总序列长度达到 1024,从 256 个输入令牌开始(即我们生成 256、512 和 768 个令牌)。

编码时间(首个令牌生成时间)

编码时间或首个令牌生成时间是处理输入令牌并生成第一个输出令牌所需的时间。这是一个非常重要的指标,因为它对应于用户在流式传输生成令牌时直接感知到的延迟。

我们测试了不同上下文大小的编码时间,其中 256 个输入令牌大致对应于典型的问答场景,而 768 个则更典型地用于检索增强生成 (RAG) 用例。

编码时间以表示。

Llama2 inferentia2 encoding-time

我们可以看到,所有部署的模型都表现出出色的响应时间,即使对于长上下文也是如此。

端到端延迟

端到端延迟是指达到 1024 个令牌序列长度所需的时间总量。

因此,它包括编码时间和生成时间。

延迟以表示。

Llama2 inferentia2 end-to-end latency

所有部署在高端实例上的模型都表现出良好的延迟,即使是那些实际配置为优化吞吐量的模型也是如此。

吞吐量

我们采用与其他基准测试相同的约定来评估吞吐量,即将端到端延迟除以输入和输出令牌的总和。换句话说,我们将端到端延迟除以 `batch_size * sequence_length`,以获得每秒生成的令牌数。

吞吐量以**令牌/秒(tokens/second)**为单位。

Llama2 inferentia2 throughput

同样,部署在高端实例上的模型具有非常好的吞吐量,即使是那些为延迟优化的模型也是如此。