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 兼容端点) |
坑与注意
- uv 是必须的(非可选):标准 pip 无法安装 GPU 文本管线,CUDA 12 路径强制 uv;即使装 CPU 版也推荐 uv。
- overrides 文件版本锁定:cu129 路径 + vLLM 0.22.0 的 RAPIDS 兼容组合固定在 overrides 文件中,不要手动改版本。
- 视频/音频依赖系统编解码器:裸机安装需手动装 ffmpeg 等;容器镜像已预装,推荐优先用 NGC 容器。
- Python 版本:以
pyproject.toml为准;README 不重复声明版本号,避免漂移,建议装前查 PyPI 页面。 - 模糊去重显存:大.batch_size 模糊去重显存消耗高,官方建议 ≥16GB 显存;显存不足可减小
device_memory_utilization。 - 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