datajuicer / data-juicer
datajuicer/data-juicer
面向基础模型的数据处理工具,支持多种数据格式,提供高效清洗、转换和增强功能,助力模型训练与优化。
项目概览
项目概述
Data-Juicer 是一个面向基础模型(Foundation Models)的数据处理系统,旨在将原始数据转化为 AI 就绪的高质量数据。它提供模块化的数据处理算子(Operators),支持文本、图像、音频、视频及多模态数据的清洗、过滤、去重、合成与分析。项目由阿里巴巴通义实验室发起,与阿里云 PAI、Anyscale(Ray 团队)、中山大学、NVIDIA(NeMo 团队)等合作开发,采用 Apache-2.0 许可证。
核心功能
- 200+ 数据处理算子:涵盖文本、图像、音频、视频和多模态数据的过滤、映射、去重、聚合、选择等操作。
- 可复现的数据菜谱(Recipe):基于 YAML 配置的流水线,支持版本化、共享和复用。
- 全谱系数据智能:支持预训练、微调、强化学习、智能体(Agent)数据、RAG 索引构建等场景。
- 生产级性能:支持单机到千节点集群的扩展,具备算子融合、自适应并行、CUDA 加速等优化。
- 可观测性:内置追踪、日志和作业管理工具,便于调试和审计。
- 服务化接口:提供 API 服务和 MCP 服务器,支持与外部系统集成。
适用与不适用场景
适用场景:
- 大规模预训练语料的清洗与去重。
- 指令微调、RLHF 数据的构建与优化。
- 智能体交互数据的整理与质量评估。
- RAG 知识库的构建与数据增强。
- 多模态数据(图像、视频、音频)的处理与合成。
- 数据质量分析与可视化。
不适用场景:
- 实时流式数据处理(Data-Juicer 主要面向离线批处理)。
- 需要图形化界面进行数据标注的场景(项目未提供标注工具)。
- 非 Python 生态的数据处理需求(项目为 Python 库)。
技术架构与依赖
- 核心语言:Python
- 分布式计算:基于 Ray,支持多机集群部署。
- 数据格式:支持 JSONL、JSON、Parquet、CSV、TSV、TXT 等,以及 HuggingFace 数据集。
- 依赖管理:使用
uv和pyproject.toml,支持按需延迟加载依赖。 - 主要依赖库:HuggingFace Datasets、Apache Arrow、Ray、PyAV、FFmpeg 等(具体版本见
pyproject.toml)。 - 可选集成:阿里云 PAI、ModelScope、HuggingFace Hub、S3、HDFS 等。
安装与快速开始
安装:
uv pip install py-data-juicer
快速开始:
dj-process --config demos/process_simple/process.yaml
Python 方式:
from data_juicer.core.data import NestedDataset
from data_juicer.ops.filter import TextLengthFilter
from data_juicer.ops.mapper import WhitespaceNormalizationMapper
ds = NestedDataset.from_dict({
"text": ["Short", "This passes the filter.", "Text with spaces"]
})
res_ds = ds.process([
TextLengthFilter(min_len=10),
WhitespaceNormalizationMapper()
])
for s in res_ds:
print(s)
典型使用方法
配置数据菜谱(YAML):
process:
- text_length_filter:
min_len: 10
max_len: 1000
- whitespace_normalization_mapper: {}
运行处理:
dj-process --config config.yaml
数据分析:
dj-analyze --config config.yaml
分布式处理(Ray):
ray start --head
dj-process --config config.yaml --executor_type ray
配置与部署要点
- 缓存管理:支持基于 HuggingFace 的缓存,可通过
use_cache、cache_compress等配置优化。 - 检查点与恢复:
ray_partitioned执行器支持断点续跑,通过--resume恢复。 - 导出配置:支持分片导出、并行导出、S3 导出等。
- 环境变量:可配置缓存目录、临时目录、模型缓存等。
- 分布式部署:需安装
.[dist]依赖,并启动 Ray 集群。 - 安全注意:设置
temp_dir时避免指向系统关键目录。
限制、风险与许可证
- 许可证:Apache-2.0。
- 限制:部分算子依赖外部模型(如 HuggingFace 模型),可能需要 GPU 和网络下载;分布式模式需要 Ray 集群。
- 风险:数据隐私与合规性需用户自行评估;算子可能引入额外依赖,需注意版本兼容性。
- 引用:若使用本项目,请引用相关论文(见 README)。
官方链接
- GitHub 仓库:https://github.com/datajuicer/data-juicer
- 文档:https://datajuicer.github.io/data-juicer/
- PyPI:https://pypi.org/project/py-data-juicer
- Docker:https://hub.docker.com/r/datajuicer/data-juicer
- 最新版本:v1.5.5(2026-08-07)
信息来源和分析时间
- 信息来源:GitHub 仓库 README、文档(docs/ 目录)、发布说明。
- 分析时间:2026-08-07(基于仓库最新发布版本)。