数据中心/云端

揭开万亿参数大型语言模型 AI 推理部署的神秘面纱

人工智能(AI)正在改变各行各业,解决精准药物发现、自动驾驶汽车开发等重大人类科学挑战,并解决自动创建电子商务产品描述和从法律合同中提取见解等商业问题。

如今,每家企业都在探索大语言模型(LLMs),以创造竞争优势。NVIDIA 云合作伙伴正在介入,为企业的人工智能之旅提供支持。例如,NexGen Cloud 为客户提供通过其按需云平台 Hyperstack 运行proofs-of-concept(PoCs)的机会,然后再致力于大规模的 supercloud 合同。您可以立即试用新一代 NVIDIA GPUs,从而快速采用其他服务层,例如 NVIDIA AI 平台。

在试点项目取得成功后,许多企业正在将这些计划投入生产,以提高利润。这就提出了一个重要问题:企业如何在提供出色用户体验的同时保持强劲的投资回报?

大语言模型(LLM)生成的 tokens 将被映射到自然语言并发送给用户。提高 LLM 部署的 token throughput 可以为更多用户提供服务,从而最大限度地提高 ROI。但是,高 token throughput 部署可能会导致用户交互性降低,关键词语在用户面前的显示速度较慢,从而导致用户体验不佳。

随着 LLM 的发展,在吞吐量和用户交互之间取得适当平衡变得越来越具有挑战性,就像在干草堆中找到一根针一样。

在本文中,我们讨论了不同的部署考虑,例如批处理、parallelization 和 chunking。我们分析了这些不同的部署如何影响混合专家(MoE)模型的推理。例如,GPT MoE 1.8T 参数模型的子网络可以独立执行计算,然后组合结果以生成最终输出。我们还强调了NVIDIA Blackwell 架构和 NVIDIA AI 推理软件,包括NVIDIA NIM,相比上一代 GPUs,可以提高性能。

在生产环境中部署 LLM 的平衡作用

在生产环境中部署 LLM 的企业旨在通过集成类似虚拟助理的功能来创造新的收入来源或增强其产品的吸引力。但是,他们还必须优先考虑投资回报率,并确保提供引人入胜的用户体验。

最大限度地提高投资回报率(ROI)意味着要满足更多用户请求,而不会产生额外的基础设施成本。为了实现这一目标,需要批处理不同的用户请求,并同时处理这些请求。此设置可最大限度地提高 GPU 资源利用率(tokens per GPU per second),使组织能够在尽可能多的用户上充分发挥其 AI 投资。

另一方面,用户体验由用户等待 LLM 回复的时间决定。这是以每位用户每秒的令牌数衡量的。

为了最大限度地提高用户交互性,系统会将较小批量的用户请求提供给 Graphics Processing Unit(GPU),以便更好地分配每个请求的 GPU 资源量。批量越小,分配给每个请求的 GPU 资源就越多。这种方法可以实现计算操作的并行化,加速输出令牌的生成,但可能会导致 GPU资源的利用率不足。

显而易见,这两个目标需要作出权衡。最大限度地提高 GPU 吞吐量会降低用户交互性,反之亦然。

GIF compares the impact of using a batch of multiple user requests to using only one request on GPU utilization during AI inference on a single GPU.
图 1.LLM 部署在更大限度地提高 GPU 吞吐量和更大限度地提高用户交互性之间进行权衡

LLM 模型演变使权衡问题更加复杂

新一代 LLM 具有更多参数和更长的上下文窗口,使其能够在更大的知识库中执行更复杂的认知任务,因此这种权衡变得更加困难。

2018 年 10 月推出的首个 Transformer 模型 (BERT) 具有 3.4 亿个参数、包含 512 个令牌的简短上下文窗口和单个前馈网络。这使其能够适应单个 GPU。

然而,一些最新模型的参数超过 1T,具有超过 128K tokens 的上下文窗口,并且具有可以独立运行的多个 feedforward networks(experts)。这些模型无法在单个图形处理单元(GPU)上运行,这意味着必须将模型分割成较小的块,并跨多个 GPUs 并行化。

探索万亿参数 MoE 模型的推理空间

以包含 16 位专家的 GPT 1.8 T MoE 模型为例,假设固定预算为 64 个 GPU,每个 GPU 都有 192 GB 显存。

使用 FP4 量化时,您需要 0.5 字节来存储每个参数,至少需要 5 个 GPU 来存储参数。但是,为了获得更好的用户体验,您必须在更多 GPU 上分担工作,因此运行工作负载所需的 GPU 数量超过最小值。

以下是为无法在单个 GPU 上运行的大型模型并行推理的主要方法,每种方法都会对 GPU 吞吐量和用户交互产生不同的影响:

  • 数据并行
  • 张量并行性
  • 管道并行
  • 专家并行

数据并行

数据并行 (DP) 方法在不同的 GPU 或 GPU 集群上托管 LLM 模型的多个副本,并在每个模型副本上独立处理用户请求组。

这种方法要求在每个 GPU 或 GPU 集群上复制模型,这不会影响 GPU 吞吐量或用户 interactivity 体验。由于 request groups 之间不需要通信,因此所服务的用户请求数量与所分配的 GPU 资源之间存在 linear scaling 关系。

仅使用 DP 通常不足以处理新一代 LLM,因为其模型权重不适合单个 GPU 显存,并且需要同时使用其他并行方法。

GIF shows how user request groups are channeled to four different GPUs.
图 8.在深度神经网络上应用数据并行性

张量并行性

借助 Tensor Parallelism (TP) 方法,模型的每一层被分割为多个 GPU,用户请求在 GPU 或 GPU 集群之间共享。每个请求的 GPU 计算结果在 GPU 到 GPU 网络上进行分层重新组合。

对于基于 Transformer 的模型 (例如 GPT),TP 可以改善用户交互性,因为每个请求都会分配更多的 GPU 资源,从而加快处理时间。

但是,如果在没有超高带宽 GPU 到 GPU 网络结构的情况下将 TP 扩展到大量 GPU,则可能会导致网络瓶颈对用户交互产生负面影响。

GIF showing how user request groups are channeled to four GPUs.
图 3.在深度神经网络上应用张量并行性
Diagram shows that Increasing tensor parallelism increases user interactivity but results in a decline in GPU throughput.
图 4.张量并行度增加的影响

管道并行

管线并行 (PP) 方法的工作原理是将模型层组分配到不同的 GPU 上。处理管线从一个 GPU 开始,然后通过点对点通信继续到下一个 GPU,按顺序处理集群中所有 GPU 之间的请求。

此方法会降低处理效率,并且无法显著优化用户交互。它有助于分配单个 GPU 无法满足的模型权重。

GIF shows user requests being channeled to four GPUs.
图 5.在深度神经网络上使用管道并行
Chart shows that increasing pipeline parallelism helps with model weight distribution but offers modest improvements to user interactivity.
图 6.管道并行性增加对 GPT 1.8 T MoE 模型从 PP8 到 PP64 的影响

Expert Parallel

专家并行 (EP) 方法将请求路由到 Transformer 块中不同的专家,从而减少参数交互。每个请求都会路由到一组不同的专家。

这极大地减少了每个请求必须与之交互的参数数量,因为跳过了一些专家。在专家处理通过 GPU 到 GPU 互联结构生成高网络多对多通信后,必须将请求重新构建回其原始 GPU。

此方法可能比 TP 更高效,因为您不必将操作拆分成较小的块。

GIF showing user requests being channeled to four GPUs.
图 7.在由四位专家组成的深度神经网络上使用专家并行机制

EP 受模型中专家的数量限制。GPT1.8 T 拥有 16 名专家。鉴于我们只考虑专家并行性和数据并行性,有两种可能的配置:

  • EP8DP8:在单个 GPU 上加载两名专家,并使用 DP 复制配置八次。
  • EP16DP4:在每个 GPU 上加载单个专家,并使用 DP 复制配置 4 次。
Chart shows that increasing expert parallelism increases both throughput and user interactivity without tradeoffs but is bound by the number of experts in the model.
图 8.增加 GPT 1.8 T MoE 模型的专家并行度对从 EP8 到 EP16 的影响

结合并行技术

并行化方法也可以组合使用,这会使权衡问题更加复杂。

您可以使用 64-GPU 预算构建 73 种并行配置来为模型提供服务,每种配置都有不同的吞吐量和用户交互性权衡。

Diagram shows number of GPU options for each parallelism method, which leads to the 73 unique configurations. For example, data parallelism could use 1, 2, 4, or 8 GPUs.
图 9.万亿参数 MoE 模型的张量、管线、专家和数据并行性的可能配置
Chart shows that changing how models are parallelized significantly affects the tradeoff between throughput and user interactivity.
图 10.使用块大小为 384 个令牌的 GPT 1.8 T MoE 上所有可能组合的 GPU 吞吐量和用户交互性

但是,结合使用不同的并行技术可以显著提高性能,而无需进行重大权衡。

例如,与仅使用专家并行性 (EP16DP4 或 EP8DP8) 相比,使用专家并行性和管道并行性 (EP16PP4) 并行化模型可将用户交互性提高 2 倍,GPU 吞吐量仅损失约 10%。

按照同样的思路,使用张量、专家和管线并行 (TP4EP4PP4) 并行化模型可提供比仅使用张量的并行 (TP64) 高 3 倍的 GPU 吞吐量,且不会造成任何用户交互损失。

Chart shows combinations that deliver higher GPU throughput and better user interactivity without significant tradeoffs.
图 11.比较吞吐量和交互性以优化并行性组合

更大限度地提高吞吐量:用于管理预填充和解码阶段要求的策略

当用户向模型提交请求时,模型会经历两个不同的操作阶段:预填充和解码。每个阶段对系统资源的使用方式都各不相同。

在 prefill 期间,系统会处理请求的所有 input tokens,以计算 intermediate states,这对于构建对请求的整体上下文理解至关重要。然后,这些 intermediate states 用于生成第一个 token。此阶段的 computational requirements 非常高,可以 parallelized,从而提高 resource utilization 和 throughput。

在 decode 阶段,系统按顺序生成输出 tokens,并更新在 Prefill 阶段为每个新 token 计算的中间状态。由于中间状态计算的密集型计算已在 Prefill 阶段完成,因此此阶段仅处理上一阶段新生成的 token。因此,计算密集程度较低,而内存带宽密集程度更高,这可能会导致 GPU 计算资源的利用率不足。

GIF shows that the prefill phase is slower than the generation phase but uses GPU resources more efficiently.
图 12.预填充阶段和生成阶段对 GPU 资源使用的影响

传统的推理方法,称为 static batching,需要先按顺序完成所有请求的预填充和解码阶段,然后再进入下一批。由于在解码阶段 GPU 利用率不足,以及在当前所有请求完成之前新请求一直处于停滞状态,用户体验不佳,因此这种方法效率低下。

机上批处理和分块等技术可用于解决以下问题:

  • 机上批处理:即使当前批量未完全完成,您也可以动态插入和移除请求。
  • 分块:您可以将具有长输入序列的请求的预填充阶段分解为较小的块。这有助于防止这些请求的处理成为持续请求令牌生成率的瓶颈。

机上批处理和分块可提高 GPU 利用率,同时提供良好的用户体验。

Chunk size 将影响用户交互性权衡决策。使用 large chunk size 可以减少处理 prefill sequences 所需的迭代次数,从而缩短 time to first token(TTFT)。然而,它也会增加完成正在进行的请求的 decode phase 所需的时间,从而降低 tokens per sec(TPS)。

相反,较小的块大小可以更快地推出令牌,从而提高 TPS,同时也增加 TTFT。

One diagram shows a large rectangle representing chunk size, with an upward arrow (improving time to first token) and a downward arrow (reducing tokens per second). The other diagram shows a smaller chunk size rectangle, with the upward and downward arrows reversed.
图 13.更改块大小会影响 GPU 吞吐量与第一个令牌的时间之间的权衡

回顾先前的使用 64 个 GPU 的 GPT 1.8T 示例,您可以分析 chunking 对 trade-off 问题的影响。首先检查小至 128 个 tokens 的 chunks,然后以 128 或 256 个 tokens 为增量,逐步将其增加到 8192 个 tokens。这将搜索空间从先前的 73 种配置显著扩展到超过 2.7K 种 parallelism 和 chunk-length 组合的可能性。

Scatter plot shows different chunking sizes and parallelism combinations.
图 14.使用 64 个 GPU 的 GPT 1.8 T MoE 的并行性和 40 种不同块大小的所有可能组合

为了更好地了解各种数据块大小对 GPT 1.8 T MoE 模型的 GPU 吞吐量和用户交互性的影响,我们选择了几种不同的数据块大小和并行度配置,并分别对其进行了绘制。

GIF shows 6 charts sequentially. Each chart shows a specific chunk size for 6 different parallelism configurations. The charts correspond to chunk sizes 256.896, 2048, 4096, 6144, and 8192 and display a yellow line that represents a human reading speed of 5-6 words per second.
图 15.更改数据块大小对 GPU 吞吐量和用户交互的影响

给定的平均阅读速度约为每秒 5 – 6 个词 (相当于每秒 15 – 18 个令牌),您可以清楚地看到,使用 TP2EP16PP2 的配置,您可以最大限度地提高 GPU 吞吐量 (块大小为 896 个令牌):

  • 两个 GPU 上的张量并行性
  • 基于 16 个 GPU 的专家并行性
  • 两个 GPU 上的管道并行性

NVIDIA Blackwell:为万亿级参数 LLM 提供支持的新平台

NVIDIA Blackwell是一种采用新变革性技术的 GPU 架构。它简化了万亿参数 LLM (例如 GPT 1.8 T MoE) 优化干扰吞吐量和用户交互的复杂性。

Chart shows that NVIDIA Blackwell delivers orders of magnitude higher throughput gains compared to NVIDIA Hopper without any trade off in user interactivity.
图 16.NVIDIA Blackwell、NVIDIA H100 和 NVIDIA H200 不同并行和分块配置的峰值吞吐量

NVIDIA Blackwell 配备 208B 个晶体管和第二代 transformer 引擎。它支持 NVIDIA 的第五代 NVLink,可以将每个图形处理单元(GPU)的双向吞吐量提高到 1.8TB/s。NVLink 支持多达 72 个 NVIDIA Blackwell GPUs 的域,为在具有并行性组合的 trillion-parameter 模型的多 GPU 部署中发生的 GPU 到 GPU 运算提供无与伦比的加速。

与上一代 NVIDIA H100 Hopper GPU 相比,NVIDIA Blackwell 能够结合使用这些功能,为各种可能的用户交互需求提供高 throughput gains。更具体地说,使用 TP2EP16PP2 和 chunk size 为 896 tokens 的情况下,NVIDIA Blackwell 能以每秒 20 tokens per user per second(5–6 words per second)的速度将 throughput 提高 30 倍。

NVIDIA NIM是易于使用的推理微服务的集合,用于快速生产部署最新的 AI 模型,包括开源社区模型和 NVIDIA AI Foundation 模型。它被许可为 NVIDIA AI Enterprise

NIM 基于 NVIDIA 推理软件构建,包括 TensorRT-LLM 支持先进的多 GPU 和多节点基元。TensorRT-LLM 还提供先进的分块和机上批处理功能。

将 LLM 部署为自定义 AI 工作流一部分的企业可以使用NVIDIA Triton 推理服务器是 NVIDIA NIM 的一部分,用于创建模型集合,将多个 AI 模型和自定义业务逻辑连接到单个工作流中。

后续步骤

现在,组织只需几行代码,即可在模型编译阶段使用数据、张量、流程和专家并行技术并行化万亿参数模型。

结合NVIDIA BlackwellTensorRT-LLM以及NVIDIA Triton Inference Server,无论期望的吞吐量和用户交互组合如何,组织都可以自由探索万亿参数 MoE 模型的整个推理搜索空间,并确定理想的吞吐量和用户交互组合,以满足其服务级别协议。

 

标签