想象一下,你正在训练一个能够看、听、读的超级智能机器人。要做到这一点,你需要结合两种截然不同的“大脑”:
- 编码器(Encoder):这部分就像一个专业的相机或麦克风。它非常擅长处理图像或声音,但最适合处理特定且固定大小的数据块。
- 大语言模型(LLM):这是庞大的语言大脑。它体积巨大,需要一次性阅读海量文本,并且需要一种截然不同的工作组织方式才能高效运行。
问题:“一刀切”的制服
过去,在训练这些组合机器人时,工程师们强迫这两个大脑穿上完全相同的“制服”(即在多台计算机上分配工作的特定方式)。
这就像一支施工队,其中的水管工和电工被迫以完全相同的队形工作。
- 电工(LLM)需要站成一个巨大的圆圈,以便快速传递电线(这种技术称为张量并行)。
- 水管工(编码器)只需要以小对的形式工作,因为他们的管道短且固定。
如果你强迫水管工站在电工的巨大圆圈里,他们就会把所有时间都花在等待电工传递电线上。他们并没有在修水管,只是站在那里。这会拖慢整个项目的进度。
解决方案:“异构并行”
这篇论文提出了一种组织施工队的新方法,称为异构并行。它不再强迫所有人穿上同一件制服,而是让每个团队穿上最适合他们的制服,即使他们是在同一栋建筑里工作。
该系统允许“编码器”团队和"LLM"团队:
- 以不同的方式拆分工作:LLM 可以使用由大量计算机组成的巨大圆圈,而编码器则使用紧密的配对。
- 自主选择座位:它们可以坐在同一台计算机上(共享硬件),也可以坐在完全不同的计算机上,具体取决于哪种方式最能节省空间和时间。
魔法技巧:“翻译器”
让两个团队以不同方式工作的最困难部分,在于它们之间传递信息。如果编码器以“小对”格式完成工作,而 LLM 期望的是“巨大圆圈”格式,数据就会变得混乱。
作者构建了一个特殊的翻译器(称为边界通信器)。
- 前向传播(交付):当编码器完成工作时,翻译器会立即将数据重塑为 LLM 所需的格式。这就像一名快递员,将一个小包裹重新打包成一个大箱子,然后交给 LLM 团队。
- 反向传播(返回):当 LLM 从错误中学习时,它会发送反馈。翻译器接收该反馈,将其拆解回编码器理解的小格式,然后返还给它。
这确保了即使两个团队以不同的方式工作,他们也不会丢失数据或学习过程的追踪。
两种坐姿:“共置”与“非共置”
论文测试了这两种团队排列方式:
共置(共享同一张桌子):
- 场景:编码器和 LLM 可以容纳在同一组计算机上。
- 优势:系统不再强迫编码器坐在 LLM 低效的圆圈里,而是让编码器在同一台计算机上坐在自己高效的配对中。
- 结果:这就像主厨和副厨在同一间厨房里。主厨切菜(编码器),副厨搅拌汤(LLM)。他们互不干扰,厨房的运行速度最高提升了 49%,因为没有人需要空等。
非共置(分开的房间):
- 场景:编码器过于庞大(或者 LLM 对内存的需求过高),以至于它们无法共享同一组计算机而不耗尽空间。
- 优势:系统将编码器移至一个独立的房间(一组独立的计算机)。这释放了 LLM 的房间,使其可以按照自身需求完美布置,而无需编码器占用空间造成杂乱。
- 结果:这就像将重型机械移至单独的仓库,以便主办公室可以按最高效率进行组织。这使处理单词的总速度最高提升了 13%。
证明
作者并非凭空猜测这会奏效,而是进行了测试。
- 他们证明了“翻译器”不会搞乱数学计算。机器人以与之前完全相同的速度和准确度进行学习,只是更快了。
- 他们表明,对于小型编码器,共享计算机(共置)是最佳方案。
- 他们表明,对于巨型编码器,将它们移至单独的房间(非共置)是最佳方案。
总结
这篇论文旨在停止训练人工智能时采用的“一刀切”方法。通过让人工智能系统的不同部分采用最适合其特定任务的高效工作方式,并构建一个智能翻译器在它们之间传递数据,该系统训练速度更快,且消耗的计算机算力更少。这就像终于让水管工和电工按照他们自然的队形工作,而不是强迫他们步调一致地行进。
技术摘要:面向多模态大语言模型训练的异构并行
1. 问题陈述
随着基础模型训练从纯文本 Transformer 演变为涵盖图像、音频、视频和文档的多模态系统,训练图在模块深度、宽度和上下文大小方面变得日益异构。然而,当前的并行化栈(如 Megatron-LM、DeepSpeed 等)通常在整个端到端图上强制实施单一、共享的并行布局(张量并行、上下文并行、流水线并行、数据并行和专家并行)。
这种“一刀切”的方法在编码器与大语言模型(LLM)需求出现分歧时会产生显著的低效:
- 不必要的通信:大型 LLM 通常需要高张量并行(TP)度。强制小型编码器继承这些 TP 度,会在本地编码器计算周围引入不必要的 All-Reduce 集合通信,其带来的开销超过了内存节省。
- 上下文并行不匹配:上下文并行(CP)对于 LLM 管理长序列的注意力内存至关重要。然而,编码器的序列长度受模态分辨率(例如图像块)限制,而非 LLM 的上下文窗口。继承 LLM 的 CP 分片会固定编码器序列的大小,却无法提供内存缓解;而那些秩(ranks)本可以作为独立的数据并行(DP)副本更高效地处理更多样本。
- 流水线约束:流水线并行(PP)通常将编码器限制在 LLM 流水线的第一阶段。这迫使编码器继承 LLM 的 TP 度,可能导致特定秩过载,从而阻碍 LLM 利用更高效的流水线布局。
核心挑战在于,计算、内存和通信的最佳工作点会随着工作负载参数(编码器规模、上下文长度、Token 密度、世界规模)的变化而转移。静态的共享布局无法适应这些变化。
2. 方法论
作者提出了异构并行,这是一种运行时抽象,允许单个端到端多模态图内的模块选择独立的逻辑布局和物理秩放置。该系统支持两种不同的执行模式:
A. 核心抽象:边界通信器
为了在解耦模块布局的同时保留训练语义,系统引入了边界通信器。这些是附加在模块间边上的感知自动微分(autograd-aware)算子,负责处理不同分布式表示之间的张量转换。
- 前向传播:在目标模块的布局中实例化源激活。
- 后向传播:应用逆变换,将梯度路由回源模块的布局。
- 正确性:系统确保张量语义在独立网格间得到保留。通过严格定义每条边的逻辑批次分片转换(Equal-DP、Fan-in 和 Fan-out),防止了错误的映射。
B. 执行模式
共置执行(Colocated Execution):
- 机制:模块共享相同的物理 GPU,但在不同的逻辑网格下解释它们(例如,具有高 DP 和低 TP 的编码器与具有低 DP 和高 TP 的 LLM 共享秩)。
- 实现:通信器充当共享秩布局算子。它执行本地集合操作(例如 All-Gather 或区间选择),以在不跨秩集移动张量的情况下重新解释数据布局。
- 调度:使用三阶段调度以避免编码器集合通信与交错式 LLM 流水线(1F1B)之间的冲突。
- 阶段 1:编码器前向传播 + 共置前向转换。
- 阶段 2:在转换后的张量上执行分离的 LLM 流水线(1F1B)。
- 阶段 3:共置后向转换 + 编码器后向传播。
- 优势:允许在 LLM 流水线阶段卸载编码器参数,从而提高内存效率。
非共置执行(Non-Colocated Execution):
- 机制:模块占用不相交的秩集(例如,“编码器岛”和"LLM 岛”)。
- 实现:使用确定性的边界领导者(具有规范坐标的秩)之间的显式点对点(P2P)通信。
- 前向:源领导者发送给目标领导者;本地广播实例化数据。
- 后向:梯度通过逆领导者路径路由回去。
- 调度:使用感知图的 1F1B 调度器,在多阶段图中解析边,处理多个编码器流汇入 LLM 时的连接和分支。
- 优势:防止编码器状态(参数、激活、优化器状态)与 LLM 在同一秩上竞争内存,从而允许 LLM 使用更高效的流水线布局。
3. 主要贡献
- 异构并行运行时抽象:一个系统,允许单个 MLLM 图中的模块拥有独立的 TP/CP/PP/DP/EP 布局和物理秩放置,支持共置和非共置执行。
- 边界通信器与调度:引入了感知自动微分的边界通信器以处理布局转换,并配合专用调度器(共置执行采用三阶段调度,非共置执行采用感知图的 1F1B 调度),以维持流水线效率。
- 工作区评估:全面评估了异构性何时有益。研究发现,当内存余量充足但逻辑布局不同时,共置异构性是最优的;而当编码器状态限制 LLM 内存或流水线布局时,非共置异构性则变得更为优越。
- 正确性与开源:通过逐步骤 FP32 检查和 LLaVA 风格的训练扫描,验证了异构布局与同质基线在损失收敛上的等价性。该系统作为 Megatron-LM 的开源扩展发布。
4. 实验结果
该系统在 NVIDIA H100 80GB GPU 上针对各种多模态工作负载(1B–12B 编码器,14B–120B LLM)和上下文长度(8K–128K)进行了评估。
- 共置异构性:
- 在长上下文场景(例如 64K–128K,LLM 需要 CP 而编码器不需要)中,TFLOPS/GPU 最高提升 49.3%。
- 在多种 1B/3B 编码器 + 14B/70B/120B LLM 配置中,通过允许编码器使用更高的 DP 和更低的 TP,吞吐量提升了 12.1%–21.6%。
- 非共置异构性:
- 对于大编码器(6B–12B)+ 120B LLM 工作负载,聚合 Token 吞吐量最高提升 13.0%,TFLOPS/GPU 最高提升 9.6%。
- 当编码器规模(例如 6B+)造成内存压力,从而在共置设置中限制 LLM 的流水线布局时,它成为首选工作点。
- 收敛性:验证了异构布局产生的损失曲线与同质基线完全相同,确认边界通信器正确保留了梯度语义。
5. 意义与主张
该论文主张,异构并行是多模态训练的必经演进,旨在摆脱僵化的模型级布局约束。通过暴露额外的自由度,该系统允许训练基础设施根据工作负载特征(编码器大小、上下文长度、Token 密度)动态调整工作点。
作者强调,这不仅仅是配置变更,而是一种根本性的运行时基础,它在保留端到端训练语义的同时,实现了:
- 共置执行:当模块可以共享硬件但需要不同的逻辑网格时,从固定的 GPU 预算中提取最大吞吐量。
- 非共置执行:当编码器状态否则会限制 LLM 时,解耦内存和调度压力。
这项工作作为 Megatron-LM 的开源扩展呈现,为未来的模块化 MLLM 框架和离散化训练系统提供了可复用的基础。该论文并未声称解决所有多模态挑战,而是专门解决了将异构模块强制纳入单一并行布局所导致的低效问题。
每周获取最佳 machine learning 论文。
受到斯坦福、剑桥和法国科学院研究人员的信赖。
请查收邮箱确认订阅。
出了点问题,再试一次?
无垃圾邮件,随时退订。