标签: 模型训练

  • 英伟达开源MoE微调加速工具,一行import让微调提速3.7倍

    英伟达开源MoE微调加速工具,一行import让微调提速3.7倍

    MoE(混合专家)架构已经成为当前大模型的主流选择。从DeepSeek-V3到Qwen3,再到Google的Gemini,几乎所有最新发布的顶尖模型都在用MoE。但MoE有个麻烦——训练起来比普通Transformer麻烦得多,专家并行、通信融合、kernel优化,这些工程细节没有一个省心的。

    英伟达6月底开源了一个工具,试图让这件事变得简单。叫NeMo AutoModel,基本思路是:站在HuggingFace Transformers v5的肩膀上,不改你原来的代码API,只加一行import,就能把MoE模型的微调速度提升3.7倍,同时把GPU显存占用降低近三分之一。

    英伟达MoE微调加速工具概念图
    英伟达NeMo AutoModel通过一行import实现MoE模型微调加速

    3.7倍加速是怎么来的

    具体数字挺直观的。在单节点8张H100 80GB GPU上,用Qwen3-30B-A3B做微调,原来的Transformers v5每秒每GPU能处理3075个token,换成NeMo AutoModel之后直接拉到11340,提升3.69倍。显存这边,峰值占用从68.2GiB降到48.1GiB,省了29%。

    英伟达 team还测了Nemotron 3 Nano 30B-A3B,结果类似:吞吐提升3.4-3.7倍,显存降低32%。他们甚至拿550B参数的Nemotron 3 Ultra做了全参数微调测试——16个H100节点、128张GPU——这时候Transformers v5已经直接爆显存了,连对比的机会都没有。

    显存省下来的部分不是白给的——你可以拿它去跑更大的batch size,或者处理更长的序列。对于本来就卡显存的大模型训练来说,这两个操作直接决定了你能不能把模型训出来。

    核心技术:三板斧

    NeMo AutoModel在Transformers v5的基础上加了三样东西:专家并行(EP)、DeepEP、TransformerEngine。每一样都针对MoE训练的一个具体瓶颈。

    专家并行解决的是显存问题。MoE模型虽然每次推理只激活部分专家,但训练的时候,所有专家的参数都得放在GPU显存里。专家并行把这些参数分散到多张GPU上,8张GPU就每张只持1/8的专家参数。Qwen3测下来,这项技术能把MoE层的显存占用直接从68.2GiB压到48.1GiB。

    DeepEP解决的是通信开销。MoE训练的时候,每个token得先被路由到对应的专家,这个过程需要跨GPU通信。传统做法是”先分发、再计算”,DeepEP把它融合成了一个优化的GPU内核,”分发”和”计算”在时间上重叠了起来,通信的时间就被藏掉了。

    TransformerEngine提供的是基础运算加速。注意力机制、线性层、RMSNorm这些,都有专门的融合kernel实现。不只加速MoE层,普通Transformer层也能占到好处。

    一行import怎么做到

    用法确实简单。如果你原来就在用Transformers v5,切换到NeMo AutoModel只需要在文件开头加一行:

    • from transformers import AutoModelForCausalLM改成from nemo_automodel import AutoModelForCausalLM
    • 原来的训练代码几乎不用动
    • API完全兼容HuggingFace的接口约定

    这个设计思路很聪明。它不搞”全新框架”,而是在现有生态上做增强。这样用户的迁移成本几乎为零,英伟达那边也能持续从HuggingFace的生态里受益——相当于”我帮你提速,你继续用HuggingFace的接口”。


    为什么这件事值得关注

    MoE架构的普及速度比很多人预期的快。2026年上半年,几乎所有主流大模型发布都用了MoE或者类MoE的稀疏激活架构。原因很简单:在相同参数规模下,MoE的推理成本远低于稠密模型,但训练成本却高得多——因为所有专家的参数都得加载进显存,通信开销也大。

    英伟达这笔账算得很清楚:如果MoE是未来,那么控制MoE训练的工具链,就等于在AI训练基础设施里多插了一脚。HuggingFace占据了模型使用的入口,英伟达则通过NeMo AutoModel占据了”高性能训练”的入口——而且是以兼容HuggingFace的方式,用户几乎没有理由拒绝。

    代码、配置文件和基准测试脚本都已经放在GitHub上了(github.com/NVIDIA-NeMo/AutoModel),文档也在docs.nvidia.com上线了。感兴趣的人现在就能去试试,看看那3.7倍加速在自己的模型上能不能复现。

  • Hugging Face Transformers – 161K+ Stars,现代AI开发的基石框架,统一百万预训练模型调用标准

    Hugging Face Transformers – 161K+ Stars,现代AI开发的基石框架,统一百万预训练模型调用标准

    Hugging Face Transformers

    GitHub OpenGraph Preview

    🤗 项目简介

    Hugging Face Transformers 是现代AI开发的基石框架,为文本、视觉、音频和多模态模型提供统一的模型定义标准,支持推理与训练全流程。只需掌握3个核心类,即可调用Hugging Face Hub上超过100万个预训练模型检查点。

    161K+
    GitHub Stars
    1M+
    预训练模型
    500+
    模型架构
    3
    核心类

    ⚙️ 安装要求与过程

    环境要求:

    • Python 3.10+
    • PyTorch 2.4+(或 JAX/TensorFlow 2.0+)
    • CUDA(可选,用于GPU加速)

    快速安装:

    # 使用 pip 安装(推荐)
    pip install "transformers[torch]"
    
    # 使用 uv 安装(更快)
    uv pip install "transformers[torch]"
    
    # 从源码安装最新版
    git clone https://github.com/huggingface/transformers.git
    cd transformers
    pip install '.[torch]'

    验证安装:

    import transformers
    print(transformers.__version__)  # 输出版本号即成功

    🚀 核心功能

    1. 统一的模型定义框架 🏗️

    Transformers 提供了统一的模型定义标准,只要模型被支持,就能兼容绝大多数训练框架(Axolotl、Unsloth、DeepSpeed等)、推理引擎(vLLM、SGLang、TGI等)以及相邻建模库(llama.cpp、mlx等)。

    2. 极简API设计 🎯

    只需学习 AutoModelAutoTokenizerPipeline 三个核心类,即可使用Hugging Face Hub上超过100万个预训练模型,覆盖NLP、CV、音频、多模态等任务。

    3. 跨框架无缝切换 🔄

    支持在PyTorch、JAX、TensorFlow 2.0之间随意切换模型,可针对不同阶段(训练、评估、生产)选择最合适的框架,3行代码即可训练前沿模型。

    4. 全模态Pipeline支持 🎨

    提供高层推理API Pipeline,支持文本生成、图像分类、音频识别、视频理解等多模态任务,自动处理输入预处理并返回对应输出。

    5. 高度可定制与可复现 🔬

    提供每个架构的官方结果复现示例,模型内部结构尽可能统一暴露,模型文件可脱离库独立使用,方便快速实验和研究。

    💡 典型使用场景

    场景一:快速原型开发 🏃

    使用Pipeline API,3行代码即可完成文本分类、命名实体识别、文本生成、图像分类等任务。无需关心模型架构细节,直接调用SOTA模型进行推理。

    from transformers import pipeline
    
    # 文本生成
    generator = pipeline("text-generation", model="gpt2")
    result = generator("AI will", max_length=50)
    
    # 图像分类
    classifier = pipeline("image-classification", model="google/vit-base-patch16-224")
    result = classifier("cat.jpg")

    场景二:模型微调与训练 🎓

    基于预训练模型进行下游任务微调,利用Hugging Face Trainer API或Accelerate库,轻松实现分布式训练和混合精度训练,大幅降低计算成本。

    from transformers import AutoModelForSequenceClassification, Trainer, TrainingArguments
    
    model = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased")
    training_args = TrainingArguments(output_dir="./results", num_train_epochs=3)
    trainer = Trainer(model=model, args=training_args, train_dataset=dataset)
    trainer.train()

    🌟 推荐理由

    Hugging Face Transformers 是现代AI开发的”基础设施”,几乎每个AI开发者都或多或少用过它。它不仅提供了统一的模型定义标准,更重要的是构建了一个庞大的生态系统——Hugging Face Hub上超过100万个预训练模型,覆盖了从BERT到GPT、从ViT到CLIP、从Whisper到Llama的所有主流模型。

    作为一个AI开发者,掌握Transformers库是必修课。它的API设计非常优雅,只需3个核心类就能玩转绝大多数SOTA模型。而且,它对PyTorch/JAX/TF的跨框架支持,让你可以在不同场景下灵活选择最合适的后端。无论你是做研究还是做应用,Transformers都是不可或缺的工具。

    📄 许可证:Apache License 2.0(允许商业使用)
    💻 主要语言:Python
    🏢 开发方:Hugging Face Team