NeMo Curator 是 NVIDIA 提供的 GPU 加速数据整理工具包,用于为 LLM 准备高质量训练数据。
用途
当需要从网页抓取数据(如 Common Crawl)准备 LLM 训练数据、需要快速去重(比 CPU 快 16 倍)、整理多模态数据集(文本、图像、视频、音频)、过滤低质量或有毒内容、在 GPU 集群上扩展数据处理时,可使用 NeMo Curator。若不需要 GPU 加速,可考虑替代方案:datatrove(基于 CPU 的开源数据处理)、dolma(Allen AI 的数据工具包)、Ray Data(通用 ML 数据处理,不专注数据整理)。
主要能力
- 质量过滤:提供 30+ 启发式过滤器,如 WordCountFilter、RepeatedLinesFilter、UrlRatioFilter、NonAlphaNumericFilter、SymbolToWordRatioFilter、LanguageIdentificationFilter 等。
- 去重:支持精确去重(ExactDuplicates)、模糊去重(FuzzyDuplicates,基于 MinHash + LSH,GPU 上快 16 倍)、语义去重(SemanticDuplicates,基于嵌入与余弦相似度阈值)。
- PII 脱敏:PIIRedactor 支持 EMAIL_ADDRESS、PHONE_NUMBER、PERSON、LOCATION 等实体,可替换或删除。
- 分类器过滤:QualityClassifier(如 nvidia/quality-classifier-deberta)、NSFWClassifier 等。
- 多模态整理:图像(AestheticFilter、NSFWFilter、CLIPEmbedder)、视频(SceneDetector、ClipExtractor、InternVideo2Embedder)、音频(ASRInference、WERFilter、DurationFilter)。
- 分布式处理:通过 get_client 与 dask_cuda 的 LocalCUDACluster 实现多 GPU 集群处理。
使用方式
安装:
- 文本整理(CUDA 12):uv pip install "nemo-curator[text_cuda12]"
- 全部模态:uv pip install "nemo-curator[all_cuda12]"
- 仅 CPU(较慢):uv pip install "nemo-curator[cpu]"
基本文本整理流程:加载数据为 DocumentDataset,使用 ScoreFilter 进行质量过滤,使用 ExactDuplicates 去重,最后 to_parquet 保存。
典型流水线(以 Common Crawl 为例):读取 Parquet 数据后依次执行质量过滤(WordCountFilter、RepeatedLinesFilter、SymbolToWordRatioFilter、UrlRatioFilter)、语言过滤(LanguageIdentificationFilter)、去重(ExactDuplicates、FuzzyDuplicates)、PII 脱敏(PIIRedactor)、NSFW 过滤(NSFWClassifier),最后保存为 Parquet。
分布式处理:使用 LocalCUDACluster(n_workers=8) 与 get_client 初始化集群,读取大规模数据集(如 s3:// 路径)后执行去重等操作,最后关闭 client 与 cluster。
适用场景
- 生产部署:NVIDIA 使用 NeMo Curator 准备 Nemotron-4 训练数据。
- 开源数据集整理:RedPajama v2、The Pile。
性能与成本
性能基准:
- 模糊去重(8TB RedPajama v2):CPU(256 核)120 小时,GPU(8× A100)7.5 小时,加速 16 倍。
- 精确去重(1TB):CPU(64 核)8 小时,GPU(4× A100)0.5 小时,加速 16 倍。
- 质量过滤(100GB):CPU(32 核)2 小时,GPU(2× A100)0.2 小时,加速 10 倍。
成本对比(8TB):CPU 方案(AWS c5.18xlarge × 10)约 4,320 美元;GPU 方案(AWS p4d.24xlarge × 2)约 491.55 美元,节省约 89%。
限制与格式
支持输入格式:Parquet、JSONL、CSV;输出格式:Parquet(推荐)、JSONL;多模态可使用 WebDataset(TAR 归档)。
版本 0.4.0+,许可证 Apache 2.0。GitHub:https://github.com/NVIDIA/NeMo-Curator;文档:https://docs.nvidia.com/nemo-framework/user-guide/latest/datacuration/。