Agent Model: Nemotron - Data Recipe

Liao Jiayi Liao Jiayi #AI#大模型#Data

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 为例:

  1. Common Crawl 后 -> 使用 JustText 进行正文抽取
  2. FastText 做语言识别,清除掉 perplexity 较大的的数据(最低置信度 0.3)
  3. Exact Document Dedup(通过正文/url 的 MD5 来实现去重)
  4. MinHash/LSH fuzzy Dedup(之前提到过的 MinHashLSH 算法,默认使用 char 24-gram, 20 bands,每个 band 13 个 hash,按 5 bands 来做去重)
  5. Exact Substring Dedup,这里使用 Google 的 deduplicate-text-datasets(一种近似去重的方式,前缀匹配重复度),按 100GB/chunk 来处理
  6. 质量分类:用 FineWebNemotronEdu、FinWebMixtraEdu、fasttext-oh-eli5 三个 classifier,按 5-95 percentile 划成 20 个 bucket,做一个质量分;(这里面的模型有开源和 fine-tune 后的,可以看看 fineweb-edu-classifier 的 recipe)
  7. 对高质量数据做 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 类:

  1. 多环境 RLVR/GRPO: 一个 Batch 在 6 个环境里训练,math_with_judge、code_gen、mcqa、instruction_following、workplace_assistant、structured_outputs_json。不同环境分别用标砖答案 judge、选项匹配、约束验证、任务完成度等作为 reward;
  2. GenRM RLHF: 每 prompt 16 responses、circular comparison,把 O(N^2) 两两比较复杂度降到 O(N),加上 length 和 format 的惩罚;
  3. 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 Nemotron 3.5 Lightning Delivers Fast, Accurate Specialized Task Execution for Long-Running Agents

  • 这是 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 数据集基础上进行改进:

  1. 复用:Chat、InfiniByte、formal proofs
  2. 换 Teacher Model 重建:竞赛数学题、多语言、工具调用,使用 DeepSeek-v3.2/Kimi K2 等
  3. 新增: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 2

Pretraining

阶段 主要任务 可训练模块 上下文 样本量 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 顺序:

  1. MPO preference optimization: OpenGVLab/MMPR,先校正视觉回答质量与偏好;
  • OpenGLLab/MMPR 是「多模态推理偏好」数据集,
  • MPO 是 Mixed Preference Optimization,其中包括了 DPO 和 BCO(Binary Classifier Optimization,让回答有好坏标签)
  1. Text RL: 复用 Nano 的 RL Blend;
  2. Vision RL: OpenGVLab/MMPR-Tiny,使用可验证的视觉任务提升模型 Grounding 能力;
  • 如 看图作答的任务