趋近智
即使是经过优化的模型,其内存容量和计算吞吐量 (throughput)也可能超出单个加速器设备(如 GPU)的能力。在部署真正的大型语言模型或追求极高的推理 (inference)吞吐量时,将工作负载分布到多个设备上是必需的。分布式推理策略可以并行化计算,使得过大的模型可以在一个设备上运行,或者通过多个加速器的组合资源来加快处理速度。
有几种既定的方法可以将推理工作负载进行划分:
张量并行(通常指层内模型并行)侧重于将单个层(或更准确地说,层内的大型矩阵乘法)的执行拆分到多个设备上。与在一个设备上计算整个操作 不同,权重 (weight)矩阵 在 个设备上按列()或按行( 水平拆分)进行划分。
在 Transformer 模型中,张量并行通常应用于前馈网络 (FFN) 层中的权重矩阵以及注意力机制 (attention mechanism)的查询、键、值和输出投影矩阵。
张量并行:输入
X在设备 0(使用权重分片W0)和设备 1(使用W1)上同时处理。部分结果通过 All-Reduce 或连接操作组合。
优点:
缺点:
流水线并行采用不同的方式,它将模型按层划分到多个设备上。每个设备(或阶段)包含模型层的一个子集。例如,在 4 个设备的设置中,设备 0 可能包含第 1-10 层,设备 1 包含第 11-20 层,以此类推。
输入数据按顺序流经这些阶段。设备 0 处理输入并将其输出(中间激活)传递给设备 1,设备 1 进一步处理并将其传递给设备 2,持续进行直到最后一个设备产生输出。
简单的实现会造成设备利用率低(“流水线气泡”),因为大多数设备在等待上一阶段的数据时处于空闲状态。为了减轻这种情况,输入批次通常被分割成更小的微批次。一旦设备 0 完成处理第一个微批次,它就会将结果发送到设备 1,并立即开始处理第二个微批次。这使得多个微批次可以在流水线阶段中同时进行,从而提高硬件利用率。
流水线并行:微批次(微批次1、微批次2等)按顺序流经各个阶段(设备 0、1、... N)。设备
i在收到来自设备i-1的激活后开始处理微批次k。
优点:
缺点:
张量并行将层内的张量拆分,流水线并行将层拆分到设备上,而序列并行则侧重于沿着序列长度维度划分输入序列本身。这项技术对注意力机制 (attention mechanism)特别有效,因为注意力机制的计算复杂度随序列长度呈二次方增长()。
在标准的张量并行中,整个序列的激活通常需要在所有张量并行设备上,这对于非常长的序列来说可能成为内存瓶颈。序列并行允许拆分 LayerNorm、dropout 和注意力计算的特定部分等操作,使得每个设备只处理序列长度的一个片段。
例如,在注意力计算 中,操作通常可以重新设计,使得通信(例如,部分和或部分 softmax 计算)沿着序列维度发生,从而允许设备并行处理不同的序列块,而无需整个序列的完整中间激活张量。这通常需要修改标准层实现。
优点:
缺点:
在实践中,部署最大的模型通常涉及组合这些策略。常见的配置是在节点内使用张量并行(借助 NVLink 等快速节点内互连),并在节点间使用流水线并行(互连带宽通常较低)。
例如,一个模型可以被拆分为 8 个流水线阶段(流水线并行度 = 8)。在每个阶段内,层可以使用张量并行(张量并行度 = 8)进一步并行化到 8 个 GPU 上。这导致总共使用了 64 个 GPU。如果上下文 (context)长度非常大,还可以在此基础上添加序列并行。
策略的选择在很大程度上取决于具体的模型架构、硬件配置(设备数量、节点内和节点间带宽)以及主要的优化目标(延迟或吞吐量 (throughput))。
任何分布式策略有效性的一个重要因素是通信开销。
最小化数据传输量并将通信与计算重叠是 PyTorch Fully Sharded Data Parallel (FSDP)、DeepSpeed、Megatron-LM 等分布式训练和推理 (inference)框架以及 NVIDIA Triton 等具有多 GPU 后端的推理服务器或 vLLM 中实现的重要优化技术。
了解这些分布策略对于将LLM推理扩展到超出单个设备限制的范围、支持部署大型模型以及实现应用程序所需的吞吐量 (throughput)非常重要。虽然框架抽象了部分实现细节,但了解其基本原理有助于选择合适的策略并调试性能瓶颈。
这部分内容有帮助吗?
© 2026 ApX Machine LearningAI伦理与透明度•