Chapter 01

项目背景与定位

📌 本章基于 NVIDIA-NeMo/NeMo · commit 2ea3e0f05b24 (2026-05-26)。

1.1 一句话定位

NeMo 是 NVIDIA 出品的、端到端的多模态生成式 AI 工具箱。它涵盖大语言模型、自动语音识别(ASR)、文本转语音(TTS)、计算机视觉等多种模态,把训练、对齐、量化、部署这一整条工业流水线全装在一个仓库里。在 LLM 这条线上,它的底座是 NVIDIA 自家的 Megatron-Core,做的是"把 Megatron 的并行能力包成 Hydra / PyTorch Lightning 风格的开箱产品"。

如果说 Megatron-LM 像 NVIDIA 的"原料车间",NeMo 就是用这些原料做出的"工业整机"——客户拿到能直接生产。

1.2 为什么会有 NeMo

NVIDIA 的 ASR / TTS 团队(OpenSeq2Seq → NeMo 1.0)和 LLM 团队(Megatron)原本是两条线。2022 年之后,企业客户出现强烈需求:"我希望一个框架就能把语音、视觉、语言全训了,最好结尾还能直接吐 TensorRT 引擎给我部署。" 这正是 NeMo 2.x 之后逐渐成为的样子。

它的核心驱动力是商业化:

1.3 它在 NVIDIA 训练栈里的位置

名字角色
底层算子 TransformerEngine、cuBLAS、cuDNNFP8 / fused / softmax 加速
通信 NCCL GPU 间通信
并行库 Megatron-Core TP/PP/SP/EP/CP 实现
训练框架 Megatron-LM 直接基于 Core 的 GPT 训练脚本
端到端框架 NeMo Hydra 配置 + Lightning + 多模态 + 部署
部署 TensorRT-LLM + Triton推理引擎 + 服务

经验法则:如果你只想"训 GPT,用最少抽象",用 Megatron-LM;如果你想"配置一次跑完 SFT → LoRA → DPO → TRT 部署",用 NeMo。

1.4 设计哲学:配置驱动 + 与 NV 生态共生

  1. Hydra 配置 + PyTorch Lightning 训练循环。基本上你不用写训练 Python 代码,只需要:
    python megatron_gpt_pretraining.py \
      --config-path=conf --config-name=megatron_gpt_config \
      model.num_layers=32 model.hidden_size=4096
    YAML + 命令行 override 的组合,把"调参体验"做到了极致。
  2. 深度绑定 NVIDIA 生态。FP8 默认走 TransformerEngine,量化默认走 ModelOpt,推理默认导出到 TensorRT-LLM。

代价是:对非 NVIDIA 硬件几乎没考虑;仓库巨大(~50 万行),跨语言、跨模态;版本迭代快,旧文档容易过期。

1.5 它适合用来做什么、不适合做什么

判断典型场景
✅ 适合企业 / 实验室有 NVIDIA 集群,要做端到端从训练到部署
业务横跨多模态(语言 + 语音 + 视觉),不想拼框架
需要 SteerLM、Reward Model、DPO 这些 NV 实现的对齐流程
需要训练完直接出 TensorRT-LLM 推理引擎
❌ 不适合想用很少卡训小模型 —— 体量太重
不在 NVIDIA 卡上跑
学习"分布式训练底层原理"——它把底层都封装起来了
需要快速 fork 改代码 —— 仓库太大

1.6 本书将怎么带你走完这趟旅程

NeMo 体量大,本书会只取 LLM 主线

1.7 NeMo 2.x:仓库已分家(重要)

2024 年下半年起,NVIDIA/NeMo 仓库做了一次战略性重组。如今你看到的本仓库(v2.8+):

现在仓库含什么访问方式
NVIDIA/NeMo(本仓库) ★ 语音 / ASR / TTS / 多模态语音 LLM(SALM、Canary、Parakeet) nemo/collections/{asr,tts,audio,speechlm2,common}
NVIDIA/NeMo-Framework ★ 纯 LLM 预训练 / SFT / DPO / GRPO / multimodal-VLM 独立仓库 NVIDIA/NeMo-Framework
NVIDIA/NeMo-RL ★ 强化学习专用(PPO / GRPO / DPO 大规模) 独立仓库 NVIDIA/NeMo-RL
NVIDIA/NeMo-Curator ★ 数据预处理 / 去重 / quality filter 独立仓库
NVIDIA/Megatron-Bridge ★ Megatron ↔ HF / NeMo ↔ HF 互转 独立仓库

本书定位:第 1–5、12、13 章覆盖历史上一直延续的 NeMo + Hydra + Megatron 集成模式(NeMo 1.x),同时也是 NeMo-Framework v2 的底座;第 6–8、10、11 章里 LLM 训练 / DPO / TRT-LLM 那部分,真实代码现已迁到 NeMo-Framework 与 NeMo-RL 仓库,本书在内容上保留是因为整体架构思路依旧适用,但 import path 和文件位置在新仓库里会变。

第 9 章和本书附录会基于当前 nemo/ 仓库(语音版)给真实文件路径——即 collections/speechlm2/collections/asr/collections/tts/ 那条线。

1.8 2024–2026 大事件时间线

时间事件
2024-Q3 NeMo 2.0 发布:抽出 nemo/lightning/ + 推出 fdl_runner / nemo-run launcher
2024-Q4 NeMo-Framework 独立仓库立项(LLM 内容)
2025-Q1 NeMo-RL 独立仓库(GRPO / 大规模 PPO)
2025-Q2 SALM(Speech-Audio-Language Model)发布;Canary / Parakeet 新 ASR 系列
2025-Q3 FSDP2 / DTensor 在 speechlm2 落地;纯 PyTorch 不依赖 Megatron 的训练路径
2025-Q4 nemo-automodel:HF transformers 模型免迁移直接用 NeMo 训
2026-Q1 NeMo Voice Agent 全栈(streaming STT + LLM + TTS)