## 项目概述

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 等。

## 安装与快速开始

**安装：**
```bash
uv pip install py-data-juicer
```

**快速开始：**
```bash
dj-process --config demos/process_simple/process.yaml
```

**Python 方式：**
```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）：**
```yaml
process:
  - text_length_filter:
      min_len: 10
      max_len: 1000
  - whitespace_normalization_mapper: {}
```

**运行处理：**
```bash
dj-process --config config.yaml
```

**数据分析：**
```bash
dj-analyze --config config.yaml
```

**分布式处理（Ray）：**
```bash
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（基于仓库最新发布版本）。