Agent Model: Nemotron - Data Recipe
NVIDIA 开源的好东西,Training、Data 全开源,非常值得一看。
内容很多,对于大部分产业实践来讲,Data Recipe 上的思考大差不差,里面开源了很多 Pipeline 还有不同 Stage 里 Data 设计的思路,非常值得借鉴和学习。 Link: Nemotron
Data Library
这里是 Nemotron 里各模型共用的 Data 处理逻辑。
Pretraining
Pretraining 对于不同数据源都有类似的 Pipeline。其中包括预训练数据处理和样本的前置处理:
1. 数据来源:Common Crawl / Github / PDF / HF datasets / 内部数据
2. 抽取 -> 清洗 -> 去重 -> 质量分类 -> 合成/改写
这里以 Nemotron-CC 的 Web 文本预训练生产 Pipeline 为例:
- Common Crawl 后 -> 使用 JustText 进行正文抽取
- FastText 做语言识别,清除掉 perplexity 较大的的数据(最低置信度 0.3)
- Exact Document Dedup(通过正文/url 的 MD5 来实现去重)
- MinHash/LSH fuzzy Dedup(之前提到过的 MinHashLSH 算法,默认使用 char 24-gram, 20 bands,每个 band 13 个 hash,按 5 bands 来做去重)
- Exact Substring Dedup,这里使用 Google 的 deduplicate-text-datasets(一种近似去重的方式,前缀匹配重复度),按 100GB/chunk 来处理
- 质量分类:用 FineWebNemotronEdu、FinWebMixtraEdu、fasttext-oh-eli5 三个 classifier,按 5-95 percentile 划成 20 个 bucket,做一个质量分;(这里面的模型有开源和 fine-tune 后的,可以看看 fineweb-edu-classifier 的 recipe)
- 对高质量数据做 SDG(Synthetic Data Generation),只取上面的 18/19 最高质量的数据,产出 Diverse-QA 数据、Knowledge 等,同时利用 Teacher 模型如 Qwen3-30B-A3B;
3. nemotro.data_prep(样本预处理)
流程:Plan -> Download -> Tokenize / Pack / JSONL shard,这个流程本不需要这么复杂,甚至可以 offload 一些计算逻辑到 Torch 的 DataLoader 里,但实际上考虑到海量数据的训练效率(减少 GPU 等待),很多公司会这样做。(如字节:Teaching the Old Dog New Tricks: Building Efficient Data Pipelines for Large-Scale LLM Pre-Training (Operational Systems) )
- Plan: 根据训练策略对原始数据做 shard 划分,等于提前做好数据分片;
- Download: 根据分片下载(这里主要是为了 HF 的 Dataset)
- Tokenize / Pack / JSONL shard
- 这里直接把数据做 tokenize 后,存到 .bin(token 后的二进制文件) 和 .idx(每个 row 的 index),训练时如果要做随机读就直接定位到对应数据,最后输出一个 blend.json,示例:
{ "datasets": [ { "name": "my-dataset", "path": "hf://org/dataset", "subset": "config-name", "split": "train", "weight": 2.0 } ]}4. Megatron-Bridge: 训练时混读数据,固定长度取样,rollout
Model Data Recipe
接下来介绍各个模型的具体 Data Recipe。
| 模型 | 参数规模 | 模型定位 | 用途 |
|---|---|---|---|
| Nemotron 3 Nano 30B-A3B | 标称总参数 30B,激活参数 3B 级 | 轻量通用推理模型,强调计算效率与较低部署成本 | 通用问答、代码生成、数学推理、工具调用,以及对成本敏感的 Agent 应用 |
| Nemotron 3.5 Lightning 30B-A3B | 总参数 30B,激活参数 3B | 高速任务执行模型,强调低延迟与高吞吐,并提供加速解码方案 | 高频工具调用、交互式编程助手、批量任务处理,以及需要快速连续执行的 Agent 工作流 |
| Nemotron 3 Super 120B-A12B | 总参数 120B,激活参数 12B | 面向生产的高性能 Agent 模型,兼顾推理能力与运行效率 | 多 Agent 协作、企业流程自动化、IT 工单处理、复杂代码任务与多步骤工具调用 |
| Nemotron 3 Ultra 550B-A55B | 总参数 550B,激活参数 55B | 旗舰级大模型,面向推理难度最高、准确率要求较高的任务 | 复杂多步骤 Agent、长上下文分析、高难度编程、数学与科学推理 |
| Nemotron 3 Nano Omni | 模型卡标注约 31B,每 token 激活约 3B;采用 Nano 语言骨干并接入视觉、音频编码器 | 多模态理解与推理模型,支持文本、图像、音频和视频输入,输出文本 | 文档 OCR 与图表理解、语音转写、会议摘要、视频问答、GUI 界面理解 |
注:B = 10 亿参数;A 表示每个 token 激活的参数量。型号数字采用取整标称,例如 Nano 的官方模型卡实际列出约 3.5B 激活参数。
Nemotron 3 Nano 30B-A3B
Pretraining
数据总共用了 25T tokens,分为两段:
- Phase 1: 23.5T,主要强调来源和多样性
- Pase 2: 1.5T,提供 high-quality、high-quality synthetic、STEM/专项数据、去除低质量 Web
NVIDIA 自己的数据家族介绍:
| 数据家族 | 主要内容 | 在预训练中的作用 |
|---|---|---|
| Nemotron-CC:v2 + v2.1 | 清洗后的英文网页,以及网页改写、问答化、翻译数据 | 提供语言能力、常识和广泛的世界知识 |
| Nemotron-CC-Code-v1 | 网页里的编程教程、代码示例、API 文档和技术解释 | 学习代码与自然语言解释之间的联系 |
| Nemotron-Pretraining-Code:v1 + v2 | GitHub 源代码,以及基于代码生成的问答、评审、改写等 | 学习真实代码结构、编程模式和问题求解 |
| 数学语料,包括 Nemotron-CC-Math-v1 | 保留公式结构的数学网页,以及相关合成数学内容 | 建立数学概念、符号表达和推导基础 |
| Nemotron-Pretraining-Specialized-v1 | STEM 推理、科学计算、跨领域编程、数学教材等合成数据 | 增强复杂推理和专业知识应用能力 |
| SFT-style 数据家族 | 数学、代码、科学及一般任务的“问题—解答”示范 | 在预训练中提前学习解题和指令响应方式 |
| Academic、Wikipedia、Crawl++、Multilingual | 学术文本、百科、补充网络语料和多语言文本 | 补充专业知识、事实知识、表达方式和语言覆盖 |
Mid-Training / SFT
-
Long-Context Mid-Training: 在主要的 Pretraining 后用 121B tokens 将上下文拓展到 1M,目的不是再做一次广泛知识学习,而是让 Model 适应超长输入、同时用高质量短数据做数据配比防止 drift。
-
SFT: SFT 里主要涵盖的是下游应用层面上的各种子任务,比如 Math、Code、STEM QA、Tool Use 等,利用高质量数据一次性教会 Pretraining 基础模型之上的各种能力,方便后续做 RL。
RL
完整方法包括 3 类:
- 多环境 RLVR/GRPO: 一个 Batch 在 6 个环境里训练,math_with_judge、code_gen、mcqa、instruction_following、workplace_assistant、structured_outputs_json。不同环境分别用标砖答案 judge、选项匹配、约束验证、任务完成度等作为 reward;
- GenRM RLHF: 每 prompt 16 responses、circular comparison,把 O(N^2) 两两比较复杂度降到 O(N),加上 length 和 format 的惩罚;
- DPO for tool hallucination:用 perference pair 降低不需要的工具调用,RL 主链之后做专项行为修正;
除此之外,还对 10% 的样本做了 strip reasoning(去除 reasoning),3% 的 reasoning traces 做了随机的 budget 预算截断,训练模型即使在 reasoning 关闭、或者是 token budget 有限的时候,还能保持一个正常状态。(也不是所有的数据都需要以 long thinking 为目标)
Nemotron 3.5 Lightning 30B-A3B
- 这是 NVIDIA 推出的专门给 Long-Running Agent 的模型
Pretraining
Text 数据沿用了 Nano 的几个大数据集,以及 “先多样性,后高质量“的搞法。整体还是和 Nano 比较类似的。
RL
Agent 部分要重点看 RL,首先和 Nano 相同点是 GRPO、GenRM 和 DPO 的 Recipe 类似,不同点在于:
Agentic Terminal Pivot
这是一种把长程轨迹切成许多”中间决策点训练样本“的数据构造形式,NVIDIA 的数据集可以参考 Agentic-Terminal-Pivot, 他的数据主要是 Terminal 相关任务(类似 Terminal-Bench),然后用 GLM-5.1 生成轨迹,再将有效 assistant 回合拆成多条样本。
示例:
完整轨迹:任务 → 查看目录 → 阅读代码 → 运行测试 → 修改代码 → 验证成功
截取决策点:输入:任务 + 查看目录的历史及结果参考:阅读代码
输入:任务 + 此前历史 + 测试失败信息参考:修改代码
输入:任务 + 此前历史 + 修改结果参考:运行测试PTQ(Post-Training Quantization) + QAD(Quantization-Aware Distillation)
流程图:
已经训练好的 BF16 模型 │ ├──────────────────────────┐ ↓ ↓ PTQ:低精度量化 保留 BF16 教师 ↓ 冻结参数 量化后的学生 │ │ │ └──── QAD:对齐输出分布 ────┘ ↓ 导出低精度模型Nemotron 3 Super 120B-A12B
Super 的定位是一个大型模型,用于复杂场景。(多 Agent 协作、企业流程自动化、IT 工单处理、复杂代码任务与多步骤工具调用)
Pretraining
预训练的 Token 量同样是 25T(和 Nano 一样,但是模型 size 从 30B -> 120B),所以我们要来重点看下数据的配比情况。
| 对比项 | Nemotron 3 Nano | Nemotron 3 Super |
|---|---|---|
| 主预训练总量 | 25T tokens | 25T tokens |
| 数据阶段 | 23.5T + 1.5T | 20T + 5T |
| 基础数据体系 | CC、代码、数学、百科、学术、多语言、SFT-style 等 | 延续 Nano 体系 |
| 明确增加的内容 | Specialized-v1 | FinePDFs、Specialized-v1.1 |
| 末期调整重点 | 明显提高数学、STEM 和代码解题示范比例 | 明显增加高质量 PDF 数据 |
| 主训练序列长度 | 8K | 8K |
可以看到,主要差别在于 Phase2 的 5T 数据,明显要高于 Nano 的 1.5T 数据,所以我们来看一下 Phase2 的数据差异:
| 数据类别 | Nano:Phase 1 → Phase 2 | Super:Phase 1 → Phase 2 |
|---|---|---|
| Code | 14.0% → 14.0% | 14.0% → 14.0% |
| Math | 6.4% → 12.5% | 6.4% → 6.4% |
| STEM-SFT-style | 11.1% → 22.3% | 11.1% → 11.8% |
| Code-SFT-style | 3.3% → 6.7% | 3.3% → 3.9% |
| Multilingual | 5.0% → 5.0% | 5.0% → 5.0% |
| FinePDFs | 未列为独立类别 | 6.1% → 14.3%,第二阶段使用高质量子集 |
注意这里不是所有高质量数据都加权,部分 synthesis data 权重反而下降,预算给了 FinePDF 和专业数据,说明 Phase2 的目标是改善最终能力分布,而不是单一 quality score 最大化。
Long-Context Mid-Training
在 Phase 2 的基础上加入 Nemotron-Pretraining-Long-Context-v1(这个数据集现在找不到了),占比 20%,另外 80% 是 P2 的高质量数据。
- Stage 1: 34B tokens,1M context
- Stage 2: 17B tokens, 1M context 到 4K context 互相切换,目的是修复 1M context 训练造成的 Math 相关 Benchmark 回退(由此可见 Benchmark 是多么的重要)
SFT
SFT 的数据是在 Nano 数据集基础上进行改进:
- 复用:Chat、InfiniByte、formal proofs
- 换 Teacher Model 重建:竞赛数学题、多语言、工具调用,使用 DeepSeek-v3.2/Kimi K2 等
- 新增:SWE、搜索、Terminal、Long Context 等
RL
Super 专注长程任务,对于 RL 会比 Lightening 更加严格和复杂,有严格的 6 段 curriculum:
SFT|RLVR1 -> RLVR2 -> RLVR3|SWE1 -> SWE2|GenRM RLHF- RLVR1-3: 有 21 个 reward environment 和 37 个 dataset,先过滤掉太容易的 prompt(用 SFT checkpoint 执行后如果通过率太高就干掉),再由易到难切换 blend.json,训练 math/code/MCQA/instruction following/tool/structured output,并且加入 low-effort reasoning(禁止没必要 reasoning 的时候 thinking 太多!)
- SWE1: 较为通用的 software-engineering pivot,让模型熟悉 repo 浏览、编辑、执行、测试闭环等
- SWE2: 面向 SWE benchmark 的 sandbox 和完整的执行,用真正的执行结果来做 RL
- 这也是和 Lightening 相比的好处,有 e2e 的软件开发 RL(Lightening 更多是分步的学习,任务较简单)
- RLHF: GenRM circular comparison + KL/length control,修正风格和长度等格式问题
Nemotron 3 Ultra 550B-A55B 的 RL 进一步强化
这里专门讲一下另一个更大模型(Nemotron 3 Ultra 550B-A55B)在 RL 的优化:
Ultra 增加了 MOPD,多教师在线策略蒸馏:
- 训练 十多个领域专用教师。
- Ultra 自己生成回答或动作轨迹。(这里是和蒸馏的本质区别,让 student 自己 rollout 然后靠近 teacher model)
- 对应教师提供 token 级指导。
- 进行两轮教师与学生的迭代训练。
Nemotron 3 Nano Omni
这是 Omni 的全模态模型,也挺有意思(详见 https://research.nvidia.com/labs/nemotron/files/NVIDIA-Nemotron-3-Omni-report.pdf)。涉及到多个模态的对齐,每个模态的训练都可能会导致其他模态能力下降,训练过程还是挺复杂的:
已有语言模型 + 已有视觉编码器 + 已有音频编码器 → 视觉投影器对齐 → 视觉与语言联合 SFT → 音频投影器对齐 → 音频编码器与投影器训练 → 16K 全模态联合 SFT → 48K 长音视频联合 SFT → 256K 长文档 SFT → MPO → Text RL 1 → Image RL → Omni RL → Text RL 2Pretraining
| 阶段 | 主要任务 | 可训练模块 | 上下文 | 样本量 | Tokens |
|---|---|---|---|---|---|
| Stage 0 | Vision 对齐 | Vision Projector | 16K | 9.35M | 15.5B |
| Stage 1 | Vision+Text SFT | LLM 主干、Vision Encoder 与 Projector 联合训练 | 16K | 86.3M | 214.8B |
| Stage 2 | Audio 对齐 | Audio Projector | 16K | 59.2M | 11.4B |
| Stage 3 | 听觉理解 | 音频编码器与投影器 | 16K | 242.0M | 100.5B |
| Stage 4 | 全模态联合 SFT | 全部模块 | 16K | 30.5M | 57.3B |
| Stage 5 | 长音视频与推理 | 全部模块 | 48K | 6.08M | 33.5B |
| Stage 6 | 超长文档与文本 | 除音频编码器、音频投影器之外的模块 | 256K | 623K | 34.0B |
- Stage0: 训 Vision Projector,先固定主干与编码器,让视觉投影器学习怎样把图像特征映射到语言模型的输入空间
- Stage1: 扩大训练范围,开始学习视觉问答、文档、图表、GUI 和视觉推理
- Stage2: 使用 Granary v1.1 ASR 数据对齐音频投影器
- Stage3: Stage 3 解冻音频编码器,扩展四类音频任务
- Stage4: 全参数训练,任务横跨视觉、文本、音频、视频、音视频联合问答和安全。按论文 Table 3 的 token 比例,视觉占 53.4%,一般音频占 16.9%,短视频占 11.0%,文本占 6.1%;其余包括推理、ASR、Omni 和安全数据
- Stage5: Context 扩到 48K,并降低短样本比重
- Stage6: 专攻长文本的 Long Context,这个和上面 LLM 就没有区别
RL
Omni 的 RL 顺序:
- MPO preference optimization: OpenGVLab/MMPR,先校正视觉回答质量与偏好;
- OpenGLLab/MMPR 是「多模态推理偏好」数据集,
- MPO 是 Mixed Preference Optimization,其中包括了 DPO 和 BCO(Binary Classifier Optimization,让回答有好坏标签)
- Text RL: 复用 Nano 的 RL Blend;
- Vision RL: OpenGVLab/MMPR-Tiny,使用可验证的视觉任务提升模型 Grounding 能力;
- 如 看图作答的任务