过去几年,Transformer虽稳坐AI架构「铁王座」,但其二次方复杂度带来的算力消耗和长序列处理瓶颈,限制了大模型在推理阶段处理长文本。
Mamba凭借「线性复杂度」异军突起,非常适合长序列任务,有望成为Transformer架构的替代品,但在处理全局关系上偏弱。
Mamba+Transformer混合架构可以将二者的优势互补,实现「效率」和「性能」的双丰收。
最近英伟达发布了Nemotron-H系列模型,模型尺寸为8B和56B(蒸馏版本47B),用Mamba-2层替换了Transformer中的自注意力层,关键创新在于对Transformer和Mamba的平衡,实现了高效处理长上下文的同时,还不牺牲模型性能,显著提高了推理速度,并且内存占用更少。
论文链接:https://arxiv.org/pdf/2504.03624
实验结果表明,Nemotron-H模型在准确度上优于同尺寸的开源Transformer模型(例如Qwen-2.5-7B/72B和Llama-3.1-8B/70B),同时在推理速度上提速3倍。
为了进一步提高推理速度并降低推理时所需的内存量,研究人员使用一种剪枝和蒸馏压缩技术MiniPuzzle,将56B尺寸的模型蒸馏为NemotronH-47B-Base,在基准的准确率上与56B模型相当,同时推理速度提升20%
论文中还提出了一种基于FP8的训练方案,使56B模型实现了与BF16训练相当的性能。
Nemotron-H模型由Mamba-2、自注意力层和前馈神经网络(FFN)层组成,其中总层数的8%为自注意力层,均匀分布在模型中。
即,Nemotron-H-8B模型包含52层,其中4层为注意力层;Nemotron-H-56B模型包含118层,其中10层为注意力层,其余层平均分配为FFN层和Mamba-2层。
为了与标准Transformer模块的结构一致,研究人员提出三条设计准则:模型的第一层必须是Mamba-2层,最后一层必须是FFN层,并且自注意力层总是位于FFN层之前。
模型的具体参数
需要注意的是,8B和56B模型在FFN隐藏维度、注意力查询头和状态维度设置上存在差异;
训练过程
数据准备
训练数据从来源上大体上可以分为多语言、网络爬取、学术、代码、维基百科和数学数据,这种数据组合可以全面覆盖通用知识,同时在编程和数学等领域培养强大的专业能力。
其中多语言数据涵盖了九种语言:德语、西班牙语、法语、意大利语、葡萄牙语、中文、日语、韩语和俄语。
研究人员设计数据组合时,确保所有相同质量的数据源权重相似,而高质量的数据源权重会高于低质量的数据源。
在训练56B尺寸的模型时,使用了大约20万亿个token的数据,其中,网页爬取数据占比最大,达到了59%,其次是代码数据,占20%,学术内容占8.8%
在预训练Nemotron-H基础模型时,研究人员采用了分阶段的数据混合方法:
第一阶段,使用一种促进数据多样性的数据组合;在第二和第三阶段,主要使用高质量的数据集(例如维基百科),其中第二阶段为训练进度达到60%时,第三阶段为训练进度达到80%时;第四阶段则使用最后3800亿个训练token在后训练阶段,研究人员调整了数据的分布,更加注重有监督的微调(SFT)样本。
FP8训练策略
Nemotron-H训练的一个创新在于使用8位浮点数(FP8),在降低内存需求和计算成本的同时,还能保持模型的质量,主要包括以下关键点:
采用逐张量(per-tensor)的当前缩放技术,以提高训练的稳定性。
将模型中最初的四个和最后四个矩阵乘法(GEMM)操作保持在BF16精度,以确保关键部分的高精度处理;
在训练过程中,FP8训练逐渐与BF16训练收敛,最终达到类似的性能水平。
实验结果表明,FP8训练在多种基准测试中能够达到或超过BF16训练的性能,不仅提高了训练效率,还通过在MMLU、常识理解、代码生成和GSM8K等基准测试中的表现,证明了其在保持或提升模型质量方面的有效性
模型压缩
为了进一步提高模型部署的效率,研究人员开发了一种新型压缩框架MiniPuzzle的,结合了剪枝、神经架构搜索和知识蒸馏技术。
MiniPuzzle压缩框架的工作流程如下图所示,展示了从预训练模型到压缩模型的转变过程,包括重要性评估、神经架构搜索和蒸馏等步骤。
MiniPuzzle方法包含五个阶段:
1. 重要度估计:分析每一层对模型性能的贡献。
def importance_estimation(model, dataset):
# Compute per-layer importance scores
scores = []for layer in model.layers:
# Zero out layer outputs and measure impact on loss
scores.append(measure_impact_on_loss(model, layer, dataset))return scores
2. 层重要度分析:研究人员需要分析出哪些层对模型性能的贡献最大。
3. 条件神经架构搜索:探索不同压缩架构方案,在每个候选压缩模型中保留不同的层。
4. 内存与性能权衡:根据内存使用量和准确度对模型进行评估,对候选架构的内存负载与基准性能进行权衡。
5. 知识蒸馏:通过训练,使压缩后的模型能够匹配甚至超越原始模型的能力。
通过这一过程,Nemotron-H-56B模型成功被压缩为Nemotron-H-47B模型,参数减少了16%,同时保持了相当的准确度,并将推理吞吐量提高了20%。
实验结果
Nemotron-H模型在性能和效率方面相较于其他基于Transformer的模型取得了显著进步。
推理吞吐量
混合架构使得推理速度大幅提升,尤其是在处理长序列时:
效率提升在处理长序列(例如65,536个token)时尤为明显,突显了Mamba层在输出token时计算复杂度固定的优势。
多基准测试中的准确度
尽管架构发生了变化,但Nemotron-H模型在广泛的基准测试中仍保持了强劲的性能表现。
在评估的17项任务中,Nemotron-H-56B在16项任务中的表现优于Llama-3.1-70B,在数学推理任务上表现尤为出色。
应用与多功能性
Nemotron-H模型可以进行扩展,以适应各种应用场景。
Mamba架构简介
原版Mamba架构
Mamba是一种新型的序列建模架构,通过选择性状态空间模型(Selective State Space Model, SSM)和硬件优化算法,将计算复杂度降低到线性级别O(L),能够高效处理长达百万级的序列长度,推理速度比Transformer快5倍,在短序列任务中也实现了超越Transformer的性能。
选择性SSM的思路是,通过让模型参数依赖于输入内容,实现对信息的选择性传播和遗忘,过滤无关信息,从而提高对密集模态(如语言和基因组)的建模能力。
Mamba中的硬件感知并行算法,可以避免显式存储扩展状态,利用GPU的内存层次结构优化计算过程,实现线性时间复杂度,并显著提升推理速度。
论文链接:https://arxiv.org/pdf/2312.00752
Mamba-2架构
Mamba-2结合了状态空间模型(SSMs)和注意力机制,基于State Space Duality (SSD) 框架,通过结构化矩阵的分解和优化算法,实现了线性扩展的训练效率。
与Mamba相比,Mamba-2对核心层进行了优化,简化了状态转移矩阵的结构,并引入了更大的头维度,从而显著提高了训练效率,速度提高了2-8倍;还引入了多头结构和张量并行等技术,进一步增强了模型的表达能力和并行计算效率,在大规模训练和推理中更加高效。
在实验中,Mamba-2在语言建模和多查询关联回忆任务上均优于Mamba和基于注意力的模型。
论文链接:https://arxiv.org/abs/2405.21060
参考资料:https://arxiv.org/pdf/2504.03624
文章来自微信公众号 “ 新智元 “
【开源免费】n8n是一个可以自定义工作流的AI项目,它提供了200个工作节点来帮助用户实现工作流的编排。
项目地址:https://github.com/n8n-io/n8n
在线使用:https://n8n.io/(付费)
【开源免费】DB-GPT是一个AI原生数据应用开发框架,它提供开发多模型管理(SMMF)、Text2SQL效果优化、RAG框架以及优化、Multi-Agents框架协作、AWEL(智能体工作流编排)等多种技术能力,让围绕数据库构建大模型应用更简单、更方便。
项目地址:https://github.com/eosphoros-ai/DB-GPT?tab=readme-ov-file
【开源免费】VectorVein是一个不需要任何编程基础,任何人都能用的AI工作流编辑工具。你可以将复杂的工作分解成多个步骤,并通过VectorVein固定并让AI依次完成。VectorVein是字节coze的平替产品。
项目地址:https://github.com/AndersonBY/vector-vein?tab=readme-ov-file
在线使用:https://vectorvein.ai/(付费)
【开源免费】XTuner 是一个高效、灵活、全能的轻量化大模型微调工具库。它帮助开发者提供一个简单易用的平台,可以对大语言模型(LLM)和多模态图文模型(VLM)进行预训练和轻量级微调。XTuner 支持多种微调算法,如 QLoRA、LoRA 和全量参数微调。
项目地址:https://github.com/InternLM/xtuner