更轻松、高效、经济的LLaMA训练——开源大模型训练框架Megatron-LLaMA

本文涉及的产品
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: 9月12日,淘天集团联合爱橙科技正式对外开源大模型训练框架——Megatron-LLaMA,旨在让技术开发者们能够更方便地提升大语言模型训练性能,降低训练成本,并保持和LLaMA社区的兼容性。测试显示,在32卡训练上,相比HuggingFace上直接获得的代码版本,Megatron-LLaMA能够取得176%的加速;在大规模的训练上,Megatron-LLaMA相比较32卡拥有几乎线性的扩展性,且对网络不稳定表现出高容忍度。目前Megatron-LLaMA已在开源社区上线。开源地址:https://github.com/alibaba/Megatron-LLaMA

大语言模型的卓越表现一次又一次地超出了人们的想象。


过去几个月,LLaMA及LLaMA2向开源社区的全面放开,使想训练一个自己的大语言模型的人们多了一种很好的选择。在开源社区中,已有非常多的基于LLaMA产出的模型,包括进行续训/SFT(如Alpaca、Vicuna、WizardLM、Platypus、StableBegula、Orca、OpenBuddy、Linly、Ziya等)和从零开始训练(Baichuan、QWen、InternLM、OpenLLaMA)的工作。这些工作不仅在目前各种大模型能力客观评测榜单上表现卓越,同时展现了在长文本理解、长文本生成、代码编写、数学求解等实用场景的优秀性能。更进一步,业界出现了很多有意思的产品,例如LLaMA结合Whisper的语音聊天机器人、LLaMA结合Stable Diffusion的绘画软件、医学/法律领域的辅助咨询机器人等。

尽管从HuggingFace上可以拿到LLaMA的模型代码,但用自己的数据训一个LLaMA模型对个人用户或中小型组织并不是一件低成本且简单的工作。大模型的体积和数据的规模,使得在普通的计算资源上无法完成有效的训练,算力和成本成为严重的瓶颈。Megatron-LM社区的用户在这方面的诉求非常急迫。

image.png

淘天集团和爱橙科技在大模型应用上有着广阔的场景,并在大模型高效训练上进行了大量投入。LLaMA的问世,在数据处理、模型设计、微调及强化学习反馈调整方面给予了业界非常多的启示,并帮助许多业务取得了新突破。因此,为了回馈整个LLaMA开源社区,促进中文预训练大模型开源社区的发展,让开发者们能够更方便地提升大语言模型的训练性能,降低训练成本,淘天集团联合爱橙科技将部分内部优化技术开源,发布了Megatron-LLaMA,期望与每一位合作者、爱好者共建Megatron及LLaMA生态。

Megatron-LLaMA提供了一套标准的Megatron-LM实现的LLaMA,并提供了与HuggingFace格式自由切换的工具方便与社区生态工具兼容。Megatron-LLaMA重新设计了Megatron-LM的反向流程,使得无论在节点数较少需要开较大梯度聚合(Gradient Accumulation, GA)、或是节点数较多必须使用小GA的场景,都能够取得卓越的训练性能。测试显示:

  • 在32卡训练上,相比HuggingFace上直接获得的代码版本,Megatron-LLaMA能够取得176%的加速;即便是采用DeepSpeed及FlashAttention优化过的版本,Megatron-LLaMA仍然能减少至少19%的训练时间。
  • 在大规模的训练上,Megatron-LLaMA相比较32卡拥有着几乎线性的扩展性。例如使用512张A100复现LLaMA-13B的训练,Megatron-LLaMA的反向机制相对于原生Megatron-LM的DistributedOptimizer能够节约至少两天的时间,且没有任何精度损失。
  • Megatron-LLaMA对网络不稳定表现出高容忍度即便是在现在性价比较高的4x200Gbps通信带宽的8xA100-80GB训练集群(这种环境通常是混部环境,网络只能使用一半的带宽,网络带宽是严重的瓶颈,但租用价格相对低廉)上,Megatron-LLaMA仍然能取得0.85的线性扩展能力,然而在这个指标上Megatron-LM仅能达到不足0.7。


Megatron-LM技术带来的高性能LLaMA训练机会

LLaMA是目前大语言模型开源社区中一项重要工作。LLaMA在LLM的结构中引入了BPE字符编码、RoPE位置编码、SwiGLU激活函数、RMSNorm正则化以及Untied Embedding等优化技术,在许多客观和主观评测中取得了卓越的效果。LLaMA提供了7B、13B、30B、65B/70B的版本,适用于各类大模型需求的场景,也受到广大开发者的青睐。同诸多开源大模型一样,官方只提供了推理版的代码,如何以最低成本开展高效训练,并没有一个标准的范式。

Megatron-LM是一种优雅的高性能训练解决方案。Megatron-LM中提供了张量并行(Tensor Parallel,TP,把大乘法分配到多张卡并行计算)、流水线并行(Pipeline Parallel,PP,把模型不同层分配到不同卡处理)、序列并行(Sequence Parallel, SP,序列的不同部分由不同卡处理,节约显存)、DistributedOptimizer优化(类似DeepSpeed Zero Stage-2,切分梯度和优化器参数至所有计算节点)等技术,能够显著减少显存占用并提升GPU利用率。Megatron-LM运营着一个活跃的开源社区,持续有新的优化技术、功能设计合并进框架中。

然而,基于Megatron-LM进行开发并不简单,在多卡机上调试及功能性验证更是十分昂贵的。淘天集团和爱橙科技推出的Megatron-LLaMA,首先提供了一套基于Megatron-LM框架实现的LLaMA训练代码,支持各种规模的模型版本,并且可以很简单地适配LLaMA的各类变种,包括对HuggingFace格式的Tokenizer的直接支持。因此,Megatron-LLaMA可以很便捷地应用在已有的离线训练链路中,无需进行过多的适配。在中小规模训练/微调LLaMA-7b和LLaMA-13b的场景,Megatron-LLaMA能够轻松达到业界领先的54%及以上的硬件利用率(MFU)。


Megatron-LLaMA的反向流程优化

DeepSpeed ZeRO Stage-2

image.png

DeepSpeed ZeRO是微软推出的一套分布式训练框架,有着非常深远的技术影响。DeepSpeed ZeRO Stage-2(后文简称ZeRO-2)是其中一项重要技术,能够节约显存占用,且不增加额外计算量和通信量。如上图所示,由于计算需要,每个Rank都需要拥有全部的参数。但对于优化器状态而言,每个Rank只需负责其中一部分即可,不必所有Rank同时执行完全重复的操作。于是ZeRO-2提出将优化器状态均匀地切分在每个Rank上(注意,这里并不需要保证每个变量被均分或完整保留在某个Rank上),每个Rank在训练进程中只负责对应部分的优化器状态和模型参数的更新。在这种设定下,梯度也可以按此方式进行切分。默认情况下,ZeRO-2在反向时在所有Rank间使用Reduce方式聚合梯度,而后每个Rank只需要保留自身所负责参数的部分,既消除了冗余的重复计算,又降低了显存占用。


Megatron-LM DistributedOptimizer

image.png

原生Megatron-LM通过DistributedOptimizer实现了类似ZeRO-2的梯度和优化器状态切分,以减少训练中的显存占用。如上图所示,DistributedOptimizer在每次获得预设的梯度聚合过的所有梯度后,通过ReduceScatter算子,将之前累积的全部梯度分发到不同的Rank。每个Rank只获得自己需要处理的部分梯度,而后进行优化器状态的更新和对应参数的更新。最后各个Rank通过AllGather的方式从其他节点上获取更新过的参数,最终取得全部的参数。实际训练的结果显示,Megatron-LM的梯度和参数通信与其他计算串行进行,对于大规模预训练任务,为了保证总批数据大小不变,通常无法开启较大的GA。于是通信占比会伴随机器增加上升,这时候串行通信的特点导致扩展性很弱。在社区内,这方面的需求也很迫切。

image.png


Megatron-LLaMA OverlappedDistributedOptimizer

为了解决上述问题,Megatron-LLaMA改进了原生Megatron-LM的DistributedOptimizer,使其梯度通信的算子能够可以和计算相并行。特别的,相比于ZeRO的实现,Megatron-LLaMA在并行的前提下,通过巧妙的优化优化器分区策略,使用了更具有具有扩展性的集合通信方式来提升扩展性。OverlappedDistributedOptimizer的主要设计保证了如下几点:

  • 单一集合通信算子数据量足够大,充分利用通信带宽;
  • 新切分方式所需通信数据量应等于数据并行所需的最小通信数据量;
  • 完整参数或梯度与切分后的参数或梯度的转化过程中,不能引入过多显存拷贝。

image.png

具体而言,Megatron-LLaMA改进了DistributedOptimizer的机制,提出了OverlappedDistributedOptimizer,用于结合新的切分方式优化训练中的反向流程。如上图所示,在OverlappedDistributedOptimizer初始化时,会预先给所有参数分配其所属的Bucket。Bucket中的参数是完整的,一个参数仅属于一个Bucket,一个Bucket中可能有多个参数。逻辑上,每个Bucket将会被连续等分成P(P为数据并行组的数量)等份,数据并行组中的每个Rank负责其中的一份。Bucket被放置在一个本地队列(Local grad bucket queue)中,从而保证通信顺序。在训练计算的同时,数据并行组间以Bucket为单位,通过集合通讯交换各自需要的梯度。Megatron-LLaMA中Bucket的实现尽可能采用了地址索引,只在有需要值更改时才新分配空间,避免了显存浪费。

上述的设计,再结合大量的工程优化,使得在大规模训练时,Megatron-LLaMA可以充分使用硬件,实现了比原生Megatron-LM更好的加速。从32张A100卡扩展到512张A100卡的训练,Megatron-LLaMA在常用混部的网络环境中仍然能够取得0.85的扩展比。

Megatron-LLaMA的未来计划

目前Megatron-LLaMA在淘天集团和爱橙科技内部已有广泛的应用,开源后团队也将持续维护推进。随着越来越多开发者涌入开源社区交流贡献,相信未来在训练框架层面会有更多的挑战和机会。Megatron-LLaMA将会紧密关注社区的发展,与广大开发者共同探索以下方向:

  • 自适应最优配置选择
  • 更多模型结构或局部设计改动的支持
  • 在更多不同类硬件环境下的极致性能训练解决方案

欢迎试用Megatron-LLaMA,一起开启高效驯养LLaMA的精彩旅程!

相关文章
|
9月前
|
人工智能 前端开发 调度
基于大模型的领域场景开发:从单智能体到多智能体的React框架设计与实现
本文介绍了基于大模型的领域场景开发演进过程,从提示词工程、RAG到流程编排,再到React模式的智能体架构升级。团队通过层级指挥模式实现单智能体自主规划与工具调用,并探索多智能体协作框架,提升复杂任务处理效率与灵活性。
1545 19
基于大模型的领域场景开发:从单智能体到多智能体的React框架设计与实现
|
9月前
|
机器学习/深度学习 人工智能 机器人
黑箱与具身之间的因子框架( Prompt大模型的自我描述 系列五)
本文探讨大模型的“量子式黑箱”困境,指出其虽强大却缺乏可解释性。作者提出“因子框架”,以结构性推理替代概率坍缩,实现因果可控;并重新定义多模态,从“模态互通”走向“因子统一”。最终指向具身智能的真正起点:让AI在逻辑中融合感知,走出语言,迈向真实世界。
334 9
|
9月前
|
负载均衡 并行计算 异构计算
大模型训练推理优化(5): FlexLink —— NVLink 带宽无损提升27%
本期我们将介绍蚂蚁集团ASystem团队在大模型通信优化上的新工作FlexLink,旨在通过动态聚合多路通信(NVLink,PCIe,RDMA),在H800等典型硬件上将典型通信算子如(AllReduce, All Gather)吞吐提升最高达27%,尤其适合大模型长序列推理(Prefill阶段),及训练等通信密集的带宽bound场景。方案对精度无影响。
|
9月前
|
人工智能 JavaScript 测试技术
Cradle:颠覆AI Agent 操作本地软件,AI驱动的通用计算机控制框架,如何让基础模型像人一样操作你的电脑?
Cradle 是由 BAAI‑Agents 团队开源的通用计算机控制(GCC)多模态 AI Agent 框架,具备视觉输入、键鼠操作输出、自主学习与反思能力,可操作各类本地软件及游戏,实现任务自动化与复杂逻辑执行。
1096 6
|
9月前
|
机器学习/深度学习 人工智能 算法
GSPO:Qwen让大模型强化学习训练告别崩溃,解决序列级强化学习中的稳定性问题
这是7月份的一篇论文,Qwen团队提出的群组序列策略优化算法及其在大规模语言模型强化学习训练中的技术突破
1841 0
GSPO:Qwen让大模型强化学习训练告别崩溃,解决序列级强化学习中的稳定性问题
|
10月前
|
机器学习/深度学习 人工智能 测试技术
【ICML2025】大模型后训练性能4倍提升!阿里云PAI团队研究成果ChunkFlow中选
近日,阿里云 PAI 团队、通义实验室与中国科学院大学前沿交叉科学学院合作在机器学习顶级会议 ICML 2025 上发表论文 Efficient Long Context Fine-tuning with Chunk Flow。ChunkFlow 作为阿里云在变长和超长序列数据集上高效训练解决方案,针对处理变长和超长序列数据的性能问题,提出了以 Chunk 为中心的训练机制,支撑 Qwen 全系列模型的长序列续训练和微调任务,在阿里云内部的大量的业务上带来2倍以上的端到端性能收益,大大降低了训练消耗的 GPU 卡时。
|
10月前
|
人工智能 前端开发 机器人
10+热门 AI Agent 框架深度解析:谁更适合你的项目?
选型Agent框架不等于追热门!要选真正能跑得稳、适配团队能力与业务需求的框架。架构选错,轻则性能差,重则项目难推进。本文详解10大热门框架对比、5大新兴框架推荐及四步选型法,助你高效落地AI应用。
|
8月前
|
人工智能 Java 开发者
阿里出手!Java 开发者狂喜!开源 AI Agent 框架 JManus 来了,初次见面就心动~
JManus是阿里开源的Java版OpenManus,基于Spring AI Alibaba框架,助力Java开发者便捷应用AI技术。支持多Agent框架、网页配置、MCP协议及PLAN-ACT模式,可集成多模型,适配阿里云百炼平台与本地ollama。提供Docker与源码部署方式,具备无限上下文处理能力,适用于复杂AI场景。当前仍在完善模型配置等功能,欢迎参与开源共建。
3005 58
阿里出手!Java 开发者狂喜!开源 AI Agent 框架 JManus 来了,初次见面就心动~
|
8月前
|
机器学习/深度学习 算法 数据可视化
从零开始训练推理模型:GRPO+Unsloth改造Qwen实战指南
推理型大语言模型兴起,通过先思考再作答提升性能。本文介绍GRPO等强化学习算法,详解其原理并动手用Qwen2.5-3B训练推理模型,展示训练前后效果对比,揭示思维链生成的实现路径。
1133 2
从零开始训练推理模型:GRPO+Unsloth改造Qwen实战指南
|
8月前
|
机器学习/深度学习 算法
Proximal SFT:用PPO强化学习机制优化SFT,让大模型训练更稳定
本文介绍了一种改进的监督微调方法——Proximal Supervised Fine-Tuning (PSFT),旨在解决传统SFT易过拟合、泛化能力差及导致“熵坍塌”的问题。受PPO强化学习算法启发,PSFT通过引入参数更新的稳定性机制,防止模型在训练中变得过于确定,从而提升探索能力与后续强化学习阶段的表现。实验表明,PSFT在数学推理、模型对齐及泛化能力方面均优于传统SFT。
811 3
Proximal SFT:用PPO强化学习机制优化SFT,让大模型训练更稳定