百万级超长序列大模型训练如何加速,硬核解读MindSpeed方案

💡 原文中文,约4000字,阅读约需10分钟。
📝

内容提要

MindSpeed开发了一种优化训练大型模型的解决方案,特别是长序列。他们改进了并行算法、计算效率、内存使用和通信,以支持使用数百万个长序列进行训练。他们的解决方案包括支持三种并行算法,FlashAttention用于高效计算注意力,内存优化技术和P2P通信优化。MindSpeed旨在加速大型模型的分布式训练。

🔎

延伸解读

长序列训练为何成为大模型刚需

文章指出,自Gemini 1.5 Pro发布后,大模型序列长度迅速增长,处理超长上下文已成为主流开源和闭源大模型的重要能力。在模型规模不变时,增大序列长度可显著提升模型效果。同时,多模态大模型需处理视频、语音等超长时序信号,上下文窗口需持续增大。目前主流大模型均已支持128K及以上序列长度输入,长序列训练成为预训练和微调中的常见环节。

上下文并行方案的局限与选择

为降低长序列训练的设备负载,业界提出上下文并行方案,如DeepSpeed的Ulysses和Megatron的Ring Attention。但两者各有局限:Ulysses切分注意力头,在4D并行中CP维度受注意力头数限制,影响上下文窗口扩展;Ring Attention虽理论上可无限扩展,但P2P通信需序列足够大才能被计算掩盖,且带宽利用有限,对位置编码、注意力掩码等泛化能力较弱。MindSpeed同时支持三种方案,并兼容专家并行,为不同场景提供更多选择。

内存优化:掩码压缩的实际收益

长序列训练中注意力掩码内存开销巨大,例如256K序列的完整掩码存储成本过高。MindSpeed针对ALiBi和Reset Attention Mask提供压缩方案:ALiBi场景下通过拆分不连续块,利用内核分片生成小块掩码,完全节省掩码矩阵内存;Reset Attention Mask场景下保留Token文档ID,分片计算掩码,将内存开销从O(S^2)降至O(S^2/P),P为上下文并行维度。这些优化直接降低了长序列训练的内存压力。

通信优化:P2P分流并发的价值

Ring Attention中的P2P通信在序列长度不足时难以被计算掩盖,且带宽利用不如集合通信。MindSpeed采用send/recv分流并发的思想优化P2P通信,充分利用设备间带宽,减少未被计算掩盖的通信时长。文章通过优化前后的执行流图对比显示,优化后未掩盖通信部分减少,从而提升整体训练效率。这一优化对于跨节点长序列训练尤为重要。

❓

Q&A

MindSpeed的主要功能是什么?

MindSpeed主要用于优化大型模型的长序列训练效率,支持百万级长序列训练。

长序列训练面临哪些挑战?

长序列训练面临内存和计算量非线性增长的挑战,导致训练开销巨大。

MindSpeed如何优化内存使用?

MindSpeed通过ALiBi和Reset Attention Mask技术实现内存优化,降低内存开销。

MindSpeed支持哪些并行算法?

MindSpeed支持Ulysses、Ring Attention和混合上下文并行算法。

FlashAttention在MindSpeed中的作用是什么?

FlashAttention提升了整体注意力计算效率,优化了长序列训练的计算性能。

MindSpeed如何提升训练效率?

MindSpeed通过优化P2P通信和并行算法,提升整体训练效率。

🏷️

标签

➡️

继续阅读