生成式人工智能/大语言模型

NVIDIA NIM 微服务助力大规模 LLM 推理效率优化

随着大型语言模型 (LLMs) 继续以前所未有的速度发展,企业希望构建生成式 AI 驱动的应用程序,以最大限度地提高吞吐量,降低运营成本,并尽可能减少延迟,从而提供卓越的用户体验。

本文将讨论 LLM 的吞吐量和延迟的关键性能指标,探索其重要性以及两者之间的权衡。本文还将探讨吞吐量和延迟如何影响 AI 应用程序的效率和用户体验,以及如何使用 NVIDIA NIM 微服务对其进行优化。

用于衡量成本效率的关键指标

当用户向LLM发送请求时,系统会处理该请求,并通过输出一系列令牌开始生成响应。通常会有多个请求发送到系统,系统会尝试同时处理这些请求,以尽可能缩短每个请求的等待时间。

吞吐量用于衡量单位时间内的成功操作数。吞吐量是企业确定其同时处理用户请求的能力的重要衡量指标。对于 LLM,吞吐量由令牌每秒来衡量。由于令牌是新货币,更高的吞吐量可以降低成本并为企业带来收入。

此外,提高吞吐量可在提供借助 Kubernetes 等软件进行扩展的高性能应用程序方面提供竞争优势,从而降低服务器成本并能够处理更多用户。

延迟是指数据传输之前或之间的延迟,通过第一个令牌的时间(TTFT)和令牌间延迟(ITL)来衡量。延迟对于确保用户体验的流畅性至关重要,同时也能最大限度地提高整体系统的效率。

图 1 显示了在一段时间内 (T_start – T_end) 接收多个并发请求 (L1 – Ln) 的模型,其中每行都表示每个请求的延迟。每行中更多的短行等于提高吞吐量和降低整体延迟。

Diagram showing the timeline of request processing from T_start to T_end, with each shorter line segment L1-Ln​ representing the latency of individual requests. Higher throughput is depicted by more line segments, indicating more tokens produced.
图 1. 从 T_start 到 T_end 的服务器请求处理时间轴,每个较短的线段 L1-Ln​ 表示单个请求的延迟时间

TTFT 用于测量模型在收到请求后生成第一个令牌所需的时间,表明最终用户需要等待多长时间才能看到第一个令牌。这对于从客户支持到电子商务机器人的快速初始响应至关重要。大多数情况下,TTFT 应在几秒钟内完成;越短越好,但这对整体系统吞吐量造成了限制(下一节将详细介绍)。

ITL 指生成连续令牌之间的时间间隔,对于需要流畅和持续文本生成的应用程序至关重要。为了确保流畅的阅读体验,ITL 应该低于人类的阅读速度。

图 2 显示了这些延迟基准测试与用户和推理服务交互的组合。从查询到第一个生成的 TTFT 时间,每个令牌之间的时间为 ITL。

The image illustrates the token generation process in an inference service, highlighting TTFT and ITL. A user's query is sent to the inference service, which then generates and delivers tokens sequentially. TTFT represents the time from query submission to the delivery of the first token, while ITL indicates the time intervals between subsequent tokens. The entire process, from the first token to the last token, is referred to as the "generation time."
图 2. 推理服务中的令牌生成过程,突出了 TTFT 和 ITL 的作用

企业的目标是尽可能减少 ITL 和 TTFT,在保持高吞吐量的同时降低延迟,从而确保整个系统高效运行,个人用户体验流畅。

平衡吞吐量和延迟

吞吐量和延迟之间的权衡由并发请求的数量和延迟预算决定,两者均由应用程序的用例所决定。通过并发处理大量用户请求,企业可以提高吞吐量;然而,这通常会导致每个单独请求的延迟增加。

另一方面,在设定的延迟预算(即最终用户可以接受的延迟量)下,可以通过增加并发请求的数量来最大限度地提高吞吐量。延迟预算可能会限制TTFT或端到端延迟。

图 3 说明了吞吐量和延迟之间的权衡。y 轴是吞吐量,x 轴是延迟(在本例中为 TTFT),每个标记点上的曲线都标记了相应的并发度。这可以用于根据特定用例,在指定的延迟预算内确定最大限度提高吞吐量的点。

Graph showing throughput versus TTFT with concurrency labeled on the markers. The x-axis represents "Single User: time to first token(s)" on a logarithmic scale, ranging from 0.1 to 100 seconds. The y-axis represents "Total System: tokens/s," ranging from 0 to over 1000 tokens per second. The graph shows a series of blue markers connected by a dotted line, illustrating the relationship between throughput and time to first token (TTFT) at different concurrency levels, with concurrencies printed over each marker. As TTFT increases, throughput rises and then plateaus, indicating a saturation point.
图 3.TTFT 与每秒吞吐量令牌之间的关系

随着并发请求数量的增加,可以通过建立模型服务的多个实例来添加更多 GPU。这将保持所需的吞吐量和用户体验水平。例如,在黑色星期五处理购物请求的聊天机器人需要使用多个 GPU 来保持这种峰值并发下的吞吐量和延迟。

通过关注吞吐量和延迟如何随并发用户数量的变化而变化,企业可以根据用例做出明智的决策,以提高其 AI 解决方案的效率。这意味着在吞吐量和延迟之间实现完美平衡,从而避免资源浪费并最大限度地降低服务器成本。

NVIDIA NIM 如何优化吞吐量和延迟

NVIDIA 为企业提供经过优化的解决方案,以保持高吞吐量和低延迟。NVIDIA NIM 是一组微服务,用于优化性能,同时提供安全性、易用性和灵活性,以便在任何地方部署模型。NVIDIA NIM 提供低延迟和高吞吐量的 AI 推理,并利用基础设施资源高效扩展,从而降低总拥有成本(TCO)。

借助 NIM,企业可以通过关键技术(包括运行时优化、智能模型表示以及定制的吞吐量和延迟配置文件)来优化模型性能。NVIDIA TensorRT-LLM 通过利用 GPU 数量和批量大小等参数来优化模型性能。借助 NIM,企业可以自动调整这些参数,以最适合其用例,从而实现最佳的延迟和吞吐量。

作为 NVIDIA AI Enterprise 软件套件的一部分,NIM 经过彻底的调优,以确保每个模型的高性能配置。此外,Tensor Parallelism (图 4) 和动态批处理 (IFB) 等技术通过并行处理多个请求和最大限度地提高 GPU 利用率,从而进一步提高吞吐量和降低延迟。

这些强大的优化技术可以广泛应用于提高人工智能应用程序的性能。此外,随着 NVIDIA 不断优化每个新版本的 NIM,NIM 的性能将随着时间的推移而提升。

Diagram illustrating tensor parallelism (TP) in LLMs. The diagram shows a neural network graph, with the top and bottom half split into two different colors, or sections, demonstrating how Tensor Parallelism optimizes inference across multiple GPUs.
图 4.Tensor Parallelism 展示了如何将模型拆分成多个片段,以跨多个 GPU 利用并行计算,通过并发处理请求来提高吞吐量并最大限度地减少延迟

NVIDIA NIM 性能

使用 NIM 可显著提高吞吐量和延迟。具体来说,与最佳开源替代方案相比,NVIDIA Llama 3.1 8B Instruct NIM 的吞吐量提高了 2.5 倍,TTFT 速度提高了 4 倍,ITL 速度提高了 2.2 倍(图 5)。

This image has three charts that each show the improvement in performance metrics with NIM. With NIM, Llama 3.1 8B Instruct has a throughput of 6372 tokens/sec, TTFT of 1s, and an ITL of 30ms. With NIM Off, Llama 3.1 8B Instruct has a throughput of 2679 tokens/sec, TTFT of 4s, and an ITL of 65ms. The configuration is Llama 3.1 8B Instruct, input token length: 1,000  output token length: 1,000. Concurrent client requests: 200, on  1x NVIDIA H100 SXM.
图 5.使用 Llama 3.1 8B Instruct 提高吞吐量和延迟

图 6 是开启 NIM 与关闭 NIM 的实时演示,其中显示了实时聊天机器人生成。开启 NIM (右) 的输出速度比关闭 NIM 快 2.4 倍 (左)。这种加速是由优化的 Tensort-RT LLM 和前面提到的技术(例如动态批处理和张量并行性)提供的。

This demo shows two chatbots generating responses when queried. It shows the performance difference between the model running with and without NIM. With NIM, the model runs 2.4x faster in terms of inter-token latency.
图 6.Mixtral 8x7B 在启用和不启用 NIM 的情况下实现 2.4 倍 ITL 增益的演示

开始使用

NVIDIA NIM 通过提供出色的性能、易用性和成本效益,在企业 AI 领域树立了新标准。无论您是寻求增强客户服务、简化运营流程,还是在行业中进行创新,NIM 都能提供您所需的可靠、可扩展且安全的解决方案,以满足您的业务需求。

体验 Omniverse 的高吞吐量和低延迟Llama 3 70B NIM.

如需了解有关在您的机器上对 NIM 进行基准测试的更多信息,请查看 NIM LLM 基准测试指南NIM 文档

 

Tags