NVIDIA-NeMo/Curator · 上手攻略

  • 仓库:NVIDIA-NeMo/Curator
  • 链接:https://github.com/NVIDIA-NeMo/Curator
  • 分类:ai
  • 作者:Tom
  • 更新:2026-08-19

是什么

NeMo Curator 是 NVIDIA 出品的大规模多模态数据预处理与清洗工具包,专门为 LLM(及其他基础模型)预训练数据构建可复用的 GPU 加速流水线。覆盖文本、图像、视频、音频四种模态,核心能力包括:质量过滤、去重(精确/模糊/子串)、语言检测、分类、合成数据生成(SDG)。它由 RAPIDS(cuDF/cuML/cuGraph)+ Ray 驱动,支持单机多卡到多节点 GPU 集群的水平扩展。

Nemotron-4(15B)等 NVIDIA 自研模型的预训练数据即由 NeMo Curator 处理——在 8+ 万亿 token 多语言网页语料上完成质量过滤与去重。Nemotron-CC 数据集亦完全基于 NeMo Curator 端到端复现,有配套开源配方。

⚠️ 注意:文本 GPU 管线(text_cuda12)不支持标准 pip install,必须用 uv pip install 并附带 text_cuda12-overrides.txt 覆盖文件(cu129 路径、vLLM RAPIDS Numba 兼容问题)。纯 CPU 管线(text_cpu)可标准 pip 安装。

解决什么问题

  • 去重效率:RedPajama v2 子集模糊去重,CPU 基线 10.7 小时 → NeMo Curator 单节点 0.65 小时(约 16× 加速),3× H100 80GB 节点总拥有成本降低约 40%
  • GPU 流水线:嵌入、分类、推理等 GPU 密集型阶段与 CPU 阶段流式重叠,实测 GPU 利用率 >99%(热身后)
  • 多模态统一:文本/图像/视频/音频各自独立路径,但共用同一套 Pipeline + Executor 抽象,代码复用率高
  • 可复现性:不是一次性脚本,而是声明式阶段组合,任何人都能用相同配方复现 Nemotron 数据集

快速安装

依赖前提

  • Linux x86_64
  • CUDA 12 工具链 + 支持 CUDA 12 的 NVIDIA 驱动
  • 推荐 ≥16 GB GPU 显存(用于 GPU 管线)
  • Hugging Face 网络访问(下载模型权重)

安装 uv(必需)

curl -LsSf https://astral.sh/uv/install.sh | sh

Path A:CPU 烟雾测试(无需 GPU)

uv venv && source .venv/bin/activate
uv pip install "nemo-curator[text_cpu]"
python -c "import nemo_curator; print(nemo_curator.__version__)"

Path B:GPU 文本管线(CUDA 12,必用 uv)

uv venv && source .venv/bin/activate
curl -O https://raw.githubusercontent.com/NVIDIA-NeMo/Curator/main/requirements/text_cuda12-overrides.txt
uv pip install \
  --override text_cuda12-overrides.txt \
  --torch-backend cu129 \
  --extra-index-url https://wheels.vllm.ai/0.22.0/cu129 \
  "nemo-curator[text_cuda12]"

⚠️ 不能用 pip install nemo-curator[text_cuda12],cu129 与 RAPIDS 的 Numba 存在冲突,必须用上述 uv 方案并加载 overrides 文件。

Docker 容器(视频/音频推荐)

# NGC 上有预配置的容器镜像,包含系统编解码器
# https://catalog.ngc.nvidia.com/orgs/nvidia/containers/nemo-curator
docker pull nvcr.io/nvidia/nemo-curator:26.04

核心用法

流水线架构

NeMo Curator 流水线由阶段(Stage) 串联组成,每阶段处理一种离散任务(load / filter / dedupe / classify / transform / write),由可插拔 Executor 执行。XennaExecutor(Cosmos-Xenna)是生产默认。

输入数据 → LoadStage → FilterStage → DedupeStage → ClassifyStage → TransformStage → WriteStage → 输出数据

运行 GPU 快速入门

# 启动 Ray + 下载 HF 模型 + GPU 情感分类流水线
python tutorials/quickstart.py

自定义流水线示例(文本去重)

from nemo_curator.pipeline import Pipeline
from nemo_curator.stages import (
    TextCleanStage,
    FuzzyDuplicatesStage,
    ExactDuplicatesStage,
    QualityFilterStage,
)
from nemo_curator.executors import XennaExecutor

pipeline = Pipeline([
    TextCleanStage(...),
    ExactDuplicatesStage(...),
    FuzzyDuplicatesStage(...),
    QualityFilterStage(...),
], executor=XennaExecutor(...))

pipeline.execute()

多节点 Slurm 部署

# 参考:https://docs.nvidia.com/nemo/curator/latest/admin/deployment/slurm-multi-node-ray
# 使用 Slurm 编排在 HPC 集群上运行多节点 Ray 流水线
sbatch run_curator_slurm.sh

Nemotron-CC 端到端配方(参考实现)

# 从 Common Crawl 提取 → 语言识别 → 精确/模糊/子串去重 → 质量分类 → SDG
# 配方路径:https://github.com/NVIDIA-NeMo/Nemotron/tree/main/src/nemotron/recipes/data/curation/nemotron-cc
# SDG 教程:https://github.com/NVIDIA-NeMo/Curator/blob/main/tutorials/synthetic/nemotron_cc

典型适用场景

场景 推荐配置
预训练语料去重(TB 级文本) text_cuda12 + FuzzyDuplicatesStage + XennaExecutor
图像美学过滤 + NSFW 检测 image_cuda12 + AestheticFilter + NSFWDetector
视频场景检测 + 剪辑提取 video_cuda12 + SceneDetectionStage
音频 ASR 转写 + WER 过滤 audio_cuda12 + ASRStage
多节点集群规模化 Slurm + multi-node Ray
合成数据生成(SDG) text_cuda12 + Inference Server(OpenAI 兼容端点)

坑与注意

  1. uv 是必须的(非可选):标准 pip 无法安装 GPU 文本管线,CUDA 12 路径强制 uv;即使装 CPU 版也推荐 uv。
  2. overrides 文件版本锁定:cu129 路径 + vLLM 0.22.0 的 RAPIDS 兼容组合固定在 overrides 文件中,不要手动改版本。
  3. 视频/音频依赖系统编解码器:裸机安装需手动装 ffmpeg 等;容器镜像已预装,推荐优先用 NGC 容器。
  4. Python 版本:以 pyproject.toml 为准;README 不重复声明版本号,避免漂移,建议装前查 PyPI 页面。
  5. 模糊去重显存:大.batch_size 模糊去重显存消耗高,官方建议 ≥16GB 显存;显存不足可减小 device_memory_utilization
  6. Ray 集群启动开销:单机短时任务 Ray 启动有 ~30s 开销,不适合秒级即完成的小任务。

与同类对比

工具 优势 劣势
NeMo Curator GPU 加速 16×、多模态统一、NASA 背书 Nemotron 仅 NVIDIA 生态、文档偏向 CUDA/Linux
Datatrove 高度可定制、灵活性强 文档相对少、GPU 加速不如 Curator
FineWeb-Edu 管线 开源配方完整、专注教育数据 只能文本、定制需改源码
webdataset 图像/视频流式处理强 去重/质量过滤能力弱

NeMo Curator 在模糊去重速度端到端多模态覆盖上有明显优势;Datatrove 在定制灵活性上更胜;FineWeb-Edu 适合参考配方但不够通用。

一句话推荐结论

如果你在跑基础模型预训练、需要对 TB 级语料做质量过滤和去重、且有 NVIDIA GPU 资源,NeMo Curator 是目前最快、最完整的开源方案——尤其是文本模糊去重和端到端多模态管线。


  • 官方文档:https://docs.nvidia.com/nemo/curator/latest
  • NGC 容器:https://catalog.ngc.nvidia.com/orgs/nvidia/containers/nemo-curator
  • 最新版本:26.04(2026-04)
  • 许可证:Apache 2.0