NeMo Curator 是 NVIDIA 的数据整理工具包,用于为 LLM 训练准备高质量数据。其核心价值是把网络爬取或多模态原始数据,经过质量过滤、去重、脱敏和分类器筛选,整理成可用于训练的数据集。
主要能力:
文本整理:提供 30 多种启发式过滤器,例如词数过滤(WordCountFilter)、重复行过滤(RepeatedLinesFilter)、URL 比例过滤(UrlRatioFilter)、非字母数字过滤(NonAlphaNumericFilter),并可与 ScoreFilter 组合使用。
去重:支持精确去重(ExactDuplicates)、基于 MinHash + LSH 的模糊去重(FuzzyDuplicates,官方称在 GPU 上快 16 倍)、基于嵌入的语义去重(SemanticDuplicates,使用 Sentence Transformers 模型和余弦相似度阈值)。
PII 脱敏:使用 PIIRedactor 对邮箱、电话、人名、地点等实体执行替换或删除。
分类器过滤:例如 QualityClassifier 可按质量分数筛选文档。
多模态:图像侧提供美学评分、NSFW 检测和 CLIP 嵌入;视频侧提供场景检测、片段提取和 InternVideo2 嵌入;音频侧提供 ASR 转写、WER 过滤和时长过滤。
使用方式:先安装,例如 uv pip install "nemo-curator[text_cuda12]"、"nemo-curator[all_cuda12]" 或 CPU 版 "nemo-curator[cpu]"。然后以 DocumentDataset 载入 Parquet、JSONL 或 CSV 数据,把过滤器与去重模块按阶段串联,最后输出为 Parquet 或 JSONL。也支持多 GPU 分布式处理:通过 get_client 与 dask_cuda 的 LocalCUDACluster 初始化集群,在多个 GPU 节点上运行。
性能:文档给出基准包括 8TB RedPajama v2 模糊去重从 CPU 256 核的 120 小时降至 8×A100 的 7.5 小时;1TB 精确去重从 64 核 8 小时降至 4×A100 的 0.5 小时;100GB 质量过滤从 32 核 2 小时降至 2×A100 的 0.2 小时。成本示例显示 GPU 方案相对 CPU 方案可节省约 89%。
适用场景:从 Common Crawl 等 Web 爬取数据构建训练集;需要快速模糊去重的大规模语料;多模态数据整理;低质量或有毒内容过滤;跨 GPU 集群扩展数据处理。官方称 NeMo Curator 曾用于准备 Nemotron-4 训练数据,并整理 RedPajama v2、The Pile 等开源数据集。
限制与注意:GPU 加速依赖 CUDA 环境;CPU 模式可用但速度较慢。文档建议在纯 CPU 数据处理或通用 ML 数据流水线场景考虑 datatrove、dolma 或 Ray Data 等替代方案。输入支持 Parquet、JSONL、CSV,多模态可使用 WebDataset TAR 归档。项目采用 Apache 2.0 许可证,版本 0.4.0+,代码托管于 GitHub(https://github.com/NVIDIA/NeMo-Curator),文档见 https://docs.nvidia.com/nemo-framework/user-guide/latest/datacuration/。