数据工程观察 · Vol.22

预训练数据管线的工程实践:从 datatrove 到 NeMo Curator,构建万亿 Token 级数据工厂的架构设计与工具选型

系统解读构建万亿 token 级预训练数据管线的工程全景——五大开源管线框架(datatrove/NeMo Curator/Dolma Toolkit/DCLM/DataFlow)的架构对比、Nemotron-CC 的分类器集成+合成回收范式、FineWeb2 的多语言自适应管线、Dolma 3 的三阶段数据策略、以及 NVIDIA 'Data, Data Everywhere' 的管线消融实验揭示的工程优先级

data pipeline datatrove NeMo Curator Dolma DCLM DataFlow Nemotron-CC FineWeb2 engineering architecture GPU acceleration deduplication quality filtering 管线工程 工具选型

本期主题:当数据策展从「研究课题」变成「工程系统」

前 21 期我们系统覆盖了预训练数据工程的几乎所有维度——去重、过滤、配比、合成、安全、治理、评估、多模态、token 级操作。但如果你回头看这些工作的落地载体,一个有趣的事实浮现了:

绝大多数论文只描述了”做什么”,而没有描述”怎么跑起来”。

一篇论文说”我们用 MinHash 去重”,但不会告诉你:在 100 个 Common Crawl 快照、几十 TB 原始数据上跑 MinHash,你需要什么样的计算集群?数据怎么分片?中间状态怎么管理?管线跑到一半挂了怎么恢复?质量过滤的分类器推理成本和数据处理吞吐量怎么平衡?

这些”怎么跑起来”的问题,就是数据管线工程——预训练数据工程中最不性感但最关键的一层。

2024-2026 年间,五大开源框架的成熟彻底改变了这个局面:

预训练数据管线工程的演进:

2020-2022(手工脚本时代):
  → 每个团队自己写 Python 脚本
  → 用 Spark/MapReduce 做大规模处理
  → 管线代码是一次性的,不可复用
  → "我们的管线跑了 3 个月,中间挂了 17 次"

2023(框架萌芽期):
  → Dolma Toolkit(Allen AI):Rust 编写,高性能文本处理
  → datatrove(HuggingFace):Python,模块化管线
  → NeMo Data Curator(NVIDIA):GPU 加速去重
  → 开始有了"标准化管线"的概念

2024-2025(框架成熟期):
  → NeMo Curator 1.0-1.1:四模态支持(文本/图像/视频/音频)
  → DCLM(多机构联盟):首个数据策展竞赛平台
  → FineWeb/FineWeb2:datatrove 构建的万亿级参考管线
  → Nemotron-CC:NeMo Curator 构建的 6.3T 生产管线
  → DataFlow(北大 DCAI):LLM 驱动的可视化管线
  → Dolma 3:5.9T 三阶段数据策略

2026(生产化时代):                    ← 当前
  → 不再需要从零搭建管线
  → 选择框架 → 组装模块 → 调参部署
  → 数据管线成为"基础设施"而非"研究项目"

本期不讨论”做什么”——前 21 期已经覆盖了。本期聚焦”怎么做”:五大框架的架构设计与选型、三条生产级管线的工程细节、以及管线各步骤的优先级排序。


一、五大开源管线框架横评

1.1 框架全景

框架组织语言核心优势计算模型模态生产案例GitHub
datatroveHuggingFacePython模块化、平台无关、社区活跃CPU + SLURM/本地文本FineWeb (15T), FineWeb2 (20TB)3.6k★
NeMo CuratorNVIDIAPythonGPU 加速、多模态、工业级GPU + RAPIDS + Ray文本/图像/视频/音频Nemotron-CC (6.3T)1.5k★
Dolma ToolkitAllen AIRust + Python极致性能、可审计CPU + 多线程文本Dolma 3 (5.9T), OLMo 31.0k★
DCLM多机构联盟Python竞赛平台、标准化评估CPU + Ray文本DCLM-Baseline0.5k★
DataFlow北大 DCAIPythonLLM 驱动、可视化、200+ 算子CPU + LLM API文本6 领域验证0.9k★

1.2 架构设计理念对比

五大框架的设计哲学:

datatrove(HuggingFace):
  "像搭乐高一样搭管线"
  ┌───────────────────────────────┐
  │ Pipeline = [Reader, Filter,  │
  │  Processor, Deduplicator,    │
  │  Writer]                     │
  │                              │
  │ Executor = Local / SLURM     │
  └───────────────────────────────┘
  → 每个 Block 独立、可替换
  → 执行器与处理逻辑解耦
  → 零 GPU 依赖,纯 CPU 即可运行
  → 适合:资源有限但追求灵活性的团队

NeMo Curator(NVIDIA):
  "用 GPU 碾压一切"
  ┌───────────────────────────────┐
  │ cuDF DataFrame 为核心数据结构 │
  │ → RAPIDS 加速数据操作         │
  │ → Ray 分布式调度              │
  │ → 内置 30+ 启发式过滤器       │
  │ → Nemotron-CC 管线可复现      │
  └───────────────────────────────┘
  → 去重速度比 CPU 快 16 倍
  → 总拥有成本降低 40%
  → 多模态一站式(文本/图像/视频/音频)
  → 适合:拥有 GPU 集群的大型团队

Dolma Toolkit(Allen AI):
  "用 Rust 写高性能,用 Python 写接口"
  ┌───────────────────────────────┐
  │ 核心处理引擎:Rust            │
  │ → 多线程 + 零拷贝             │
  │ Python CLI:用户接口          │
  │ → taggers / mixers / dedup   │
  └───────────────────────────────┘
  → 极致的单机吞吐量
  → 数据血缘追踪(每个文档记录处理历史)
  → 适合:追求性能和可审计性的研究团队

DCLM(多机构联盟):
  "标准化的数据策展竞赛平台"
  ┌───────────────────────────────┐
  │ 固定模型 + 固定评估 = 比数据  │
  │ → 240T token 原始池           │
  │ → 标准化提交接口              │
  │ → 自动训练 + 评估 + 排行榜   │
  └───────────────────────────────┘
  → 首个让"数据策展"可公平比较的平台
  → 适合:需要 benchmark 验证策展方法的研究

DataFlow(北大 DCAI):
  "用自然语言描述你要什么管线"
  ┌───────────────────────────────┐
  │ DataFlow-Agent                │
  │ → 自然语言 → 算子合成         │
  │ → 流水线规划 → 迭代验证       │
  │ 200+ 可复用算子               │
  │ 6 大领域预设管线              │
  └───────────────────────────────┘
  → LLM 参与数据生成与变换闭环
  → 10K 数据超越 1M Infinity-Instruct
  → 适合:快速原型、SFT 数据准备

1.3 选型决策树

你该选哪个框架?

Q1: 你有 GPU 集群吗?
  ├── Yes → Q2
  └── No  → Q3

Q2: 你需要处理多模态数据吗?
  ├── Yes → NeMo Curator(唯一支持图像/视频/音频)
  └── No  → 数据规模 > 10T token?
              ├── Yes → NeMo Curator(GPU 去重快 16x)
              └── No  → datatrove 或 Dolma Toolkit

Q3: 你的主要需求是什么?
  ├── 预训练数据策展 → datatrove(FineWeb 验证)
  │                    或 Dolma Toolkit(Dolma 3 验证)
  ├── SFT/指令数据准备 → DataFlow(LLM 驱动,快速迭代)
  ├── 策展方法 benchmark → DCLM(标准化对比平台)
  └── 需要最大灵活性 → datatrove(模块化 + 社区生态)

Q4: 团队技术栈?
  ├── Python 优先 → datatrove / DataFlow
  ├── 性能优先 → Dolma Toolkit(Rust 核心)
  └── NVIDIA 生态 → NeMo Curator

二、三条万亿级生产管线的工程解剖

前一节是框架。这一节看框架之上搭建的真实生产管线——它们是预训练数据工程”最佳实践”的活样本。

2.1 Nemotron-CC:NVIDIA 的 6.3T Token 管线

“Nemotron-CC: Transforming Common Crawl into a Refined Long-Horizon Pretraining Dataset” (NVIDIA / ACL 2025)

Nemotron-CC 是目前公开文档最详细的万亿级预训练数据管线。它的核心创新不在于某一步做得比别人好,而在于整体管线的设计哲学。

Nemotron-CC 管线全景:

┌─────────────────────────────────────────────────┐
│                Common Crawl                      │
│          (100 个快照, ~200TB WARC)               │
└──────────────────────┬──────────────────────────┘
                       │
          ┌────────────┴────────────┐
          │  Step 1: 文本提取       │
          │  → trafilatura          │
          │  → 保留文档结构信息     │
          └────────────┬────────────┘
                       │
          ┌────────────┴────────────┐
          │  Step 2: 轻量启发式过滤 │
          │  → 减少启发式依赖       │
          │  → 只保留必要的规则     │
          │     (语言检测/极短文档)  │
          └────────────┬────────────┘
                       │
          ┌────────────┴────────────┐
          │  Step 3: 分类器集成     │  ← 核心创新 ①
          │  → 多个质量分类器投票   │
          │  → 比单分类器更鲁棒     │
          │  → 留存率显著高于       │
          │    FineWeb-Edu/DCLM     │
          └────────────┬────────────┘
                       │
              ┌────────┴────────┐
              │                 │
    ┌─────────┴─────┐  ┌───────┴──────────┐
    │  高质量文档    │  │ 中低质量但有价值  │
    │  → 直接保留   │  │ → 合成数据回收    │  ← 核心创新 ②
    │  (4.4T token)  │  │   (LLM 改写)     │
    └───────────────┘  │  → 1.9T token     │
                       └───────┬──────────┘
                               │
          ┌────────────────────┴────────────┐
          │  Step 4: 去重                    │
          │  → NeMo Curator GPU MinHash      │
          │  → 跨快照去重                    │
          └────────────────────┬────────────┘
                               │
          ┌────────────────────┴────────────┐
          │  最终输出: 6.3T token            │
          │  (4.4T 真实 + 1.9T 合成回收)    │
          │  唯一真实 token = DCLM 的 4 倍   │
          └─────────────────────────────────┘

两个关键工程决策:

① 分类器集成取代单分类器。 FineWeb-Edu 用一个 fastText 分类器,DCLM 用一个 fastText 分类器——它们的过滤率都超过 90%。Nemotron-CC 的洞察是:单分类器的假阴性(误杀好数据)不可忽视,而多分类器投票可以显著降低误杀率。结果:在保持 MMLU 比 DCLM +5.6 的同时,数据留存率大幅提升。

② 合成数据回收(Synthetic Data Reclamation)。 被分类器判为”中低质量”的文档不是直接丢弃,而是用 LLM 改写后回收。这产出了 1.9T token 的合成数据——占总量的 30%。这是一个非常激进的设计选择,但实验证明它对长 horizon 训练至关重要:当训练到 15T token 时,6.3T 的总量(含合成回收)让模型看到足够多的唯一 token,避免了过度重复。

工程经验:

Nemotron-CC 最大的工程教训是不要过度过滤。FineWeb-Edu 和 DCLM 通过激进过滤在短 horizon(1-2T token)训练中取得了出色的 benchmark 分数,但当训练延长到 10T+ token 时,数据多样性不足的问题就暴露了。Nemotron-CC 的分类器集成 + 合成回收范式,在”质量”和”数量”之间找到了更好的帕累托前沿。

2.2 FineWeb2:自动适配 1000+ 语言的管线

“FineWeb2: One Pipeline to Scale Them All” (HuggingFace / 2025)

如果说 Nemotron-CC 解决的是”如何在英语上做到极致”,FineWeb2 解决的是一个更难的工程问题:如何让一条管线自动适配所有语言?

指标FineWeb (v1)FineWeb2
语言仅英语1000+ 语言
快照数~96 个~100 个
数据规模15T token50 亿文档 / 20TB
过滤策略手工设计自动适配
构建工具datatrovedatatrove

核心工程创新:数据驱动的语言自适应

传统的多语言管线需要为每种语言手工调整过滤阈值——中文的”好文档”标准和阿拉伯语的”好文档”标准完全不同。FineWeb2 的做法是:

  1. 消融驱动的设计:在 9 种多样化语言上系统性消融每个管线步骤的参数,找到可泛化的规律
  2. 自适应阈值:过滤阈值根据语言特性自动调整,而非人工逐语言设定
  3. 评估任务选择方法论:用可量化标准筛选评估基准——避免”在不可靠的 benchmark 上调参”
  4. 质量感知再平衡:联合考虑重复度和质量两个因素来重新平衡各语言数据
FineWeb2 的多语言适配流程:

┌─────────────────────────────────┐
│   Common Crawl (~100 snapshots)  │
└──────────────┬──────────────────┘
               │
   ┌───────────┴───────────┐
   │ 语言检测 + 分流       │
   │ → 1000+ 语言桶        │
   └───────────┬───────────┘
               │
   ┌───────────┴───────────┐
   │ 自适应过滤            │
   │ → 不同语言不同阈值    │
   │ → 参数自动调整        │
   │ → 无需人工逐语言调参  │
   └───────────┬───────────┘
               │
   ┌───────────┴───────────┐
   │ 跨语言去重            │
   └───────────┬───────────┘
               │
   ┌───────────┴───────────┐
   │ 质量感知再平衡        │
   │ → 重复度 × 质量 联合  │
   │ → 低资源语言保护      │
   └───────────┬───────────┘
               │
   ┌───────────┴───────────┐
   │ 50 亿文档 / 20 TB     │
   │ 1000+ 语言             │
   └───────────────────────┘

工程经验:

FineWeb2 的最大贡献不是数据集本身,而是证明了”一条管线可以服务所有语言”。此前,做多语言预训练数据的团队要么为每种语言单独建管线(工程成本极高),要么用英语管线粗暴套用到其他语言(效果差)。FineWeb2 的数据驱动自适应方法提供了第三条路。

2.3 Dolma 3:三阶段数据策略

Dolma 3 (Allen AI / 2025) 为 OLMo 3 系列模型构建,其最有价值的不是管线工具,而是数据策略。

数据集规模阶段目标
Dolma 3 Mix5.9T token预训练通用能力
Dolma 3 Dolmino Mix100B token中训练数学/代码/QA/指令/思维链
Dolma 3 Longmino Mix50B token长上下文训练65K context

三个关键工程决策:

① 质量上采样(Quality Upsampling)。 高质量数据源在 mix 中被赋予更高的采样权重——高质量数据被看到多次,低质量数据只看一次。这是一个比”过滤掉低质量数据”更精细的策略:不丢弃任何数据,而是通过采样频率来反映质量差异。

② 能力导向的中训练数据。 Dolmino Mix 明确瞄准 5 个能力维度——数学、代码、QA、指令遵循、思维链。这与 Vol.12 讨论的 CPT 方法论高度一致:中训练不是”更多的预训练”,而是有靶向的能力注入。

③ 长上下文专项数据。 单独构建 50B 的长上下文数据集(Longmino Mix),而不是简单地在预训练数据上拉长序列。这意味着长上下文能力需要专门的数据工程——随机截取长文档是不够的。

完全可复现:Dolma 3 的全部数据构建流程(代码 + 配置)以 Apache-2.0 开源,这在万亿级数据集中极为罕见。


三、管线步骤的优先级:哪些步骤最值得投入?

3.1 “Data, Data Everywhere” 的消融实验

“Data, Data Everywhere: A Guide for Pretraining Dataset Construction” (NVIDIA / EMNLP 2024 Oral)

这篇论文是预训练数据管线的”缺失手册”——它首次对管线的每个步骤进行了系统性消融实验,量化了各步骤对下游性能的贡献。

核心发现:不是所有步骤都同等重要

管线步骤的 ROI 排序(从消融实验推断):

投入产出比
  ↑
  │  ★★★★★ 质量过滤(模型分类器)
  │  → 对下游性能影响最大
  │  → 投入:训练一个分类器(几天)
  │  → 收益:MMLU 等基准大幅提升
  │
  │  ★★★★  去重
  │  → 跨文档去重对训练稳定性至关重要
  │  → 投入:计算密集但工具成熟
  │  → 收益:减少记忆化,提升泛化
  │
  │  ★★★   文本提取质量
  │  → 从 HTML 中提取干净文本
  │  → 差的提取器会引入大量噪声
  │  → 投入:选对工具即可
  │
  │  ★★    启发式过滤
  │  → 文档长度、特殊字符、重复度等规则
  │  → 边际收益递减——加太多规则反而误杀
  │
  │  ★     高级后处理(PII 移除等)
  │  → 对安全必要,但对性能影响有限
  │
  └─────────────────────────────→ 工程复杂度

论文还引入了四维属性标注来精炼数据:

属性维度作用
毒性(Toxicity)识别和移除有害内容
质量(Quality)区分高质量和低质量文档
语言类型(Type of Speech)文本体裁/语体分类
领域(Domain)主题/知识领域标注

3.2 五大管线的工程共识

纵观 Nemotron-CC、FineWeb2、Dolma 3、DCLM 和 DataFlow 的管线设计,有几个跨框架的工程共识正在形成:

共识 1:模型分类器 > 启发式规则

所有顶级管线都在从”规则过滤”转向”模型过滤”。FineWeb-Edu 用 fastText 教育质量分类器,DCLM 用 fastText 质量分类器,Nemotron-CC 用分类器集成。原因很简单:启发式规则的天花板是”不犯明显错误”,而模型分类器可以学到更细粒度的质量信号。

共识 2:不要过度过滤

FineWeb-Edu 和 DCLM 都过滤掉了 90%+ 的数据,这在短 horizon 训练中表现优异,但在长 horizon 训练中导致数据多样性不足。Nemotron-CC 的”分类器集成 + 合成回收”范式(留存率显著更高)在 15T token 训练中超越了这两者。

共识 3:去重是非可选步骤

每个顶级管线都包含去重,且去重对训练稳定性的影响被反复验证(Vol.10 详细讨论过)。分歧在于去重粒度——文档级 MinHash 是共识,子串级和语义级是否值得额外计算成本仍有争论。

共识 4:管线必须可复现

FineWeb2 和 Dolma 3 都全量开源了管线代码和配置,DCLM 提供了标准化的提交接口。管线的可复现性不再是”加分项”,而是”准入条件”——你无法在不可复现的管线上做严肃的消融实验。


四、NeMo Curator 1.1:多模态数据管护的工程细节

值得单独展开讨论的是 NeMo Curator 的最新版本(v1.1,2026 年 2 月),因为它是目前唯一支持四模态数据管护的框架,且在工程化水平上远超其他选项。

4.1 GPU 加速的实际收益

指标数值对比基线
模糊去重速度16 倍CPU 方案
总拥有成本降低 40%CPU 方案
扩展性(1→4 H100 节点)2.05h → 0.50h近线性扩展
测试数据集8TB RedPajama v2 (1.78T token)—

这些数字的工程含义:在 CPU 上跑 MinHash 去重一个 10T token 的数据集可能需要几天到一周。用 NeMo Curator + 4 个 H100 节点,几小时就能完成。对于需要快速迭代管线参数的团队,这个差异是质的变化。

4.2 四模态处理能力

NeMo Curator 1.1 四模态管线:

📝 文本模态:
  ├── 30+ 启发式过滤器(文档长度/重复度/特殊字符/...)
  ├── GPU 加速分类器(领域/质量/安全/内容类型)
  ├── 语言检测(fastText + GPU 推理)
  ├── 三级去重(精确/MinHash 模糊/语义去重)
  ├── PII 检测与移除
  └── Nemotron-CC 合成数据管线(改写/摘要/提取)

🖼️ 图像模态:
  ├── 美学评分过滤
  ├── NSFW 内容检测
  ├── CLIP 嵌入生成
  └── 图像去重

🎬 视频模态:
  ├── TransNetV2 场景检测
  ├── 片段提取与运动过滤
  ├── GPU H.264 编码
  └── Cosmos-Embed1 嵌入 + 去重

🔊 音频模态:
  ├── ASR 自动转录
  ├── WER 质量评估
  ├── 时长分析
  └── 质量过滤

对实践的启示:

如果你的团队正在从文本预训练扩展到多模态预训练(Vol.19 详细讨论了多模态数据工程的挑战),NeMo Curator 是目前唯一能在单一框架内处理文本、图像、视频和音频的选择。其他框架(datatrove、Dolma Toolkit)专注于文本模态,多模态数据需要自己搭建管线。


五、DataFlow:LLM 驱动的管线自动化

5.1 新范式:用自然语言描述管线

“DataFlow: An LLM-Driven Framework for Unified Data Preparation” (北大 DCAI 团队 / 2025)

DataFlow 代表了一种不同于前四个框架的设计哲学:不是让人写代码搭管线,而是让 LLM 理解你的需求后自动搭建。

核心机制——DataFlow-Agent 的三步自动化:

  1. 算子合成(Operator Synthesis):根据自然语言描述,自动选择或生成合适的数据处理算子
  2. 流水线规划(Pipeline Planning):将选定的算子组合成完整的管线
  3. 迭代验证(Iterative Verification):在样本数据上运行管线,评估输出质量,必要时回退修正

5.2 惊人的数据效率

DataFlow 最引人注目的实验结果:

对比数据量性能
DataFlow 生成10K 样本基础模型超越 1M 对照
Infinity-Instruct1M 样本基线

10K 样本超越 100 万样本——这意味着 DataFlow 的数据准备质量极高,每一条数据的信息密度远超批量采集的数据。

5.3 定位差异

需要明确的是,DataFlow 的主要定位与其他四个框架不同:

维度datatrove / NeMo Curator / DolmaDataFlow
主要用途预训练数据策展SFT/指令数据准备
数据来源Common Crawl 等网页爬取LLM 合成 + 清洗
规模万亿 token万~百万条
管线构建方式代码 / CLI自然语言 + Agent

DataFlow 不是 datatrove 的替代品——它们解决不同阶段的问题。但 DataFlow 的 LLM 驱动管线自动化思路,与 Vol.21 讨论的 DataEvolve 的 AI 自主进化策展策略,共同指向一个趋势:数据管线的设计和优化正在从人工走向自动化。


本期思考

回顾本期讨论的五大框架和三条生产管线,一个宏观认知正在清晰化:预训练数据管线正在从”研究副产品”升级为”独立工程学科”。

第一,工具标准化消除了基础门槛。 两年前,搭建一条万亿 token 级数据管线需要几个月的工程开发。今天,用 datatrove 或 NeMo Curator,一周内就能搭建起可用的管线——FineWeb 和 Nemotron-CC 的管线代码都是开源的,可以直接复用。竞争的焦点从”能不能搭管线”转移到了”管线的每个参数是否最优”。

第二,“Data, Data Everywhere” 的消融实验给出了明确的优先级。 如果你只有有限的工程资源:先投入模型分类器做质量过滤(ROI 最高),再做去重(非可选),然后是文本提取质量。启发式过滤和高级后处理的边际收益较低——不要在这里过度投入。

第三,过度过滤正在被修正。 FineWeb-Edu/DCLM 的”丢弃 90%“范式在短 horizon 训练中有效,但 Nemotron-CC 的”分类器集成 + 合成回收”范式证明了:保留更多数据 + 改写中低质量数据,在长 horizon 训练中表现更好。这对正在规划数据管线的团队是一个重要信号——不要盲目追求过滤率。

第四,多模态是下一个战场。 NeMo Curator 1.1 是目前唯一的多模态数据管护框架。随着多模态预训练成为主流(Vol.19),图像/视频/音频数据的策展工具需求会快速增长。这是一个明显的基础设施空白。

给数据工程团队的行动清单:

  1. 本周可做:评估你当前的数据管线用了什么工具。如果还在用一次性脚本,选择一个框架迁移——datatrove(最灵活)或 NeMo Curator(最强性能)
  2. 本月可做:在你的管线中加入模型分类器做质量过滤。从 fastText 开始——FineWeb-Edu 的分类器是开源的,可以直接用或在此基础上微调
  3. 本季度规划:评估 Nemotron-CC 的”合成回收”策略是否适用于你的场景。克隆 NeMo Curator 仓库,在你的中低质量数据上测试 LLM 改写 + 重新过滤的效果
  4. 长期关注:多模态数据管线工具的演进。如果你的 roadmap 包含 VLM 或多模态模型训练,现在就开始评估 NeMo Curator 的图像/视频管线模块

下期预告:代码数据的策展方法论——当预训练语料中代码占比越来越大,代码数据的质量评估、去重、安全审计和配比优化有哪些独特挑战?