想象一下,你正在试图建造一座庞大且极其复杂的乐高城堡(大型语言模型)。城堡越大,所需的积木就越多,建造时间也越长。在人工智能领域,建造这些“城堡”既昂贵又缓慢,耗资数百万美元,并需要超级计算机运行数月。
为了加快速度,研究人员一直在尝试使用“智能捷径”。其中一个流行的捷径是低秩瓶颈。你可以将其想象为使用一种更薄、更轻的特殊积木来建造城堡。你不再为墙的每一部分都使用巨大的重型积木块,而是使用一条薄而高效的条带,它能完成同样的工作,但占用空间更小,移动速度更快。
问题:交通堵塞
论文指出,虽然这些“薄积木”(低秩模型)在节省空间和计算方面表现出色,但当你试图让一群工人(GPU)协作建造城堡时,它们会引发一个新问题。
想象你有一个由 4 名工人组成的团队。在标准设置中,他们互相传递装满积木的大而重的箱子,以保持工作流畅。
- 旧方法(原生并行): 当团队尝试使用“薄积木”时,他们仍然沿用旧有的传递箱子的方法。但由于积木现在被排列成一种奇怪且狭窄的形状,工人们不得不停下来传递更多的箱子,而且这些箱子对于狭窄的通道来说仍然太大了。这导致了交通堵塞。工人们花在互相沟通上的时间比实际建造的时间还要多。
- 结果: 由于大量时间浪费在沟通上,“薄积木”方法实际上变得比“重型积木”方法更慢。
解决方案:BOOST
作者创建了一个名为BOOST(瓶颈优化可扩展训练框架)的新框架。你可以将 BOOST 想象为一套新的施工规则,它重新组织了工人们传递“薄积木”的方式。
以下是 BOOST 使用的四个主要技巧,简单解释如下:
“窄桥”策略(感知瓶颈的张量并行):
BOOST 不再在每一步都传递沉重的箱子,而是等到积木到达最薄点(即“瓶颈”)时,才将它们传递给下一位工人。
- 类比: 想象一场接力赛。在旧方式中,跑步者在每次交接时都传递一根巨大而沉重的接力棒。而在 BOOST 中,他们等到接力棒缩小成一根微小且轻便的小棍时再进行传递。这意味着跑步者花在手握接力棒上的时间更少,而花在奔跑上的时间更多。
“群聊”技巧(在线 RMSNorm):
有时,工人们在继续之前需要检查一条全局规则(例如“确保墙壁是直的”)。在旧方式中,他们会停下来,召开会议,检查规则,然后继续。这很慢。
- 类比: BOOST 允许工人们在传递接力棒的同时检查规则。他们同时做两件事。他们不会让流水线停下来,只是在奔跑时低声传达规则。这节省了大量时间。
“捆绑”方法(线性层分组):
有时工人必须连续执行几个小任务。旧的方法是执行任务 A,停下来,执行任务 B,停下来,执行任务 C。
- 类比: BOOST 说:“让我们把这些任务捆绑起来。”工人不再停顿三次,而是抓起执行 A、B 和 C 所需的所有工具,一气呵成地完成它们。这减少了他们必须停止和启动的次数。
“内存节省器”(低秩检查点):
在建造巨大的城堡时,你有时不得不扔掉笔记以节省空间,如果出错,稍后再重建它们。这种“重建”通常非常耗时,并且需要来回传递笔记。
- 类比: 由于 BOOST 使用“薄积木”,重建所需的笔记非常小。此外,由于采用了“窄桥”策略,他们不需要将这些笔记传递给其他工人来重建。他们可以立即自己完成。这节省了巨大的内存和时间。
结果
论文在不同规模的 AI 模型(从小型到巨型)上测试了这个新系统。
- 速度: 与旧的“薄积木”方法相比,BOOST 使训练速度提高了1.5 到 2.3 倍。
- 与重型积木相比: 即使重型积木通常是速度的标准,BOOST 也比使用传统重型积木快1.5 到 1.9 倍。
- 效率: 工人们(GPU)大部分时间实际上都在忙于工作,而不是在交通堵塞中等待。
总结
论文认为,仅仅使用“薄积木”(低秩模型)是不够的;你必须改变团队如何协作以匹配这些积木。BOOST 就是这套新规则。它重新安排了工作流程,使团队减少沟通时间,增加建造时间,从而使训练巨型 AI 模型的速度比以往更快,成本更低。
技术摘要:BOOST:面向低秩大语言模型的瓶颈优化可扩展训练框架
1. 问题陈述
大语言模型(LLM)的预训练正日益受到计算和通信成本的制约。虽然低秩瓶颈架构(如 CoLA、LORO、LaX)通过矩阵分解减少了参数量、内存占用和计算需求,提供了一种有前景的算法解决方案,但在应用于大规模分布式训练时,它们面临着显著的可扩展性障碍。
核心问题在于,标准的三维并行策略(数据并行、流水线并行和张量并行) 最初是为全秩模型设计的,当直接应用于低秩瓶颈架构时表现不佳。具体而言:
- 通信爆炸:瓶颈架构具有更深的结构和更多的同步点。将原生张量并行(TP)应用于这些结构会在全维激活上触发过多的 all-reduce 操作,导致通信开销比全秩基线高出 5–6.5 倍。
- GPU 利用率低下:原生 TP 沿低秩维度(r)进行分片,导致通用矩阵乘法(GEMM)核的归约维度较小。这降低了算术强度,使执行进入内存受限模式,无法饱和 GPU 计算单元,从而侵蚀了理论上的算法效率增益。
2. 方法论:BOOST 框架
作者提出了 BOOST,这是一个专为大规模低秩瓶颈架构设计的训练框架。该框架将一种新颖的并行策略与多种系统级优化相结合,以实现端到端的加速。
2.1 感知瓶颈的张量并行(BTP)
核心创新是 BTP,它重新定义了 TP 分块的划分方式,以与瓶颈结构对齐。
- 策略转变:与将一对低秩层(d×r 和 r×d)视为单个分块的原生 TP 不同,BTP 移动了分块边界。它将上投影(r×d)作为列并行执行,将随后的下投影(d×r)作为行并行执行,中间操作在分片激活上执行。
- 通信减少:通过将集合通信(all-reduce)放置在狭窄的瓶颈维度(r)而非隐藏维度(d),BTP 将负载大小从 [b,s,d] 减少到 [b,s,r]。与原生低秩 TP 相比,这减少了约 5.7 倍的通信量。
- 计算优化:BTP 沿大的隐藏维度(d)而非低秩维度(r)进行分片。这保留了更大的 GEMM 归约维度,增加了算术强度,确保内核保持计算受限状态,从而提高了 GPU 利用率。
2.2 系统级优化
为了进一步提高效率,BOOST 集成了三项具体优化:
- 在线 RMSNorm(Online-RMSNorm):标准 RMSNorm 是“分片不安全”的,因为它需要全局统计信息。BTP 将 RMSNorm 放置在 TP 分块内部。为了避免昂贵的同步,作者引入了 Online-RMSNorm,它计算局部统计信息,推迟全局归一化,并将统计信息交换与随后的 TP all-reduce 融合。这消除了独立的、小负载的集合操作,同时保持了数学等价性和数值稳定性。
- 线性层分组:为了减少内核启动开销和冗余数据移动,该框架对并行线性层进行分组。对于下投影(共享相同的输入),权重被拼接。对于上投影(不同的输入),使用批处理 GEMM。这增加了有效带宽和算术强度。
- 无通信低秩激活检查点:TP 中的标准激活检查点在重前向传播期间通常会引入额外的通信。BTP 将检查点边界与 TP 分块边界对齐,确保重前向路径完全位于单个分块内。这消除了反向传播期间的额外同步点,使检查点变为无通信。
3. 主要贡献
论文将其贡献总结如下:
- 理论分析:量化了瓶颈架构分布式训练中的算术强度和通信量,揭示了原生设计在扩展性方面的局限性。
- BTP 策略:一种新颖的张量并行策略,优化了权重矩阵的划分,以促进低秩激活上的高效通信并提高 GEMM 计算强度。
- BOOST 框架:一个高性能分布式训练实现,具备在线 RMSNorm、层分组和低秩激活检查点功能。
- 实证验证:在多种低秩架构和模型规模上证明了加速效果和效率提升。
4. 实验结果
评估在 NERSC-Perlmutter 超级计算机上进行,使用了 LLaMA-2 系列模型(10 亿至 400 亿参数)和各种低秩架构(CoLA、SVD、LaX)。
- 加速比:与全秩模型基线相比,BOOST 实现了 1.46–1.91 倍的加速;与使用原生集成三维并行(原生 TP)的低秩模型相比,实现了 1.87–2.27 倍的加速。
- 通信效率:BTP 显著减少了通信量,与原生 TP 相比,通信时间快达 5.3 倍,甚至在某些场景下优于全秩 TP。
- 硬件利用率:通过保持更高的算术强度,BOOST 保持了显著优于原生 TP 的 GPU 利用率,后者受限于内存受限的执行。
- 可扩展性:该框架展示了从 10 亿到 400 亿参数的强扩展性,并由于减少了内存占用而支持更大的微批次大小。
- 通用性:该方法在不同的低秩分解方法(SVD、CoLA、LaX)上得到了验证,表明无论具体的瓶颈结构如何,都能带来一致的改进。
5. 意义与主张
论文声称,BOOST 弥合了低秩算法的理论效率与大规模分布式训练的实际现实之间的差距。通过解决将标准张量并行应用于瓶颈架构时的特定低效问题,该框架实现了:
- 实际可扩展性:使得预训练大规模低秩基础模型成为可能,而无需受限于此前阻碍其采用的通信和利用率惩罚。
- 资源效率:在保持模型精度的同时,显著减少了训练时间和内存使用。
- 系统 - 算法协同设计:证明了算法效率(低秩分解)必须与系统级协同设计(BTP、在线 RMSNorm)相结合,才能在分布式环境中实现全部潜力。
作者将 BOOST 定位为低秩 LLM 预训练的实用、可扩展解决方案,并指出虽然目前的重点是密集瓶颈架构,但通过移动 TP 边界以窄化激活的基本原理,在未来工作中可能扩展到其他架构,如混合专家模型(MoE)。
每周获取最佳 machine learning 论文。
受到斯坦福、剑桥和法国科学院研究人员的信赖。
请查收邮箱确认订阅。
出了点问题,再试一次?
无垃圾邮件,随时退订。