datajuicer/data-juicer
Data processing for and with foundation models! 🍎 🍋 🌽 ➡️ ➡️🍸 🍹 🍷
Data‑Juicer:面向 AI 的数据操作系统
它是什么 – Data‑Juicer (DJ) 是一个开源库,将基础模型的数据准备视为可组合的、云原生的流程。它附带一个 Python 包(py-data-juicer)和一个 CLI(dj‑process),让您可以使用 200 多个可重用操作符(过滤器、映射器、分析器)构建流水线,涵盖文本、图像、音频、视频和多模态数据。
为什么重要 – 现代 LLM 或多模态模型训练需要数十亿个高质量样本。清理、去重、分块和注释这些数据是一项巨大的工程。DJ 将这些步骤抽象为可重用的、可版本化的 YAML 配方和可扩展的执行引擎(基于 Ray),该引擎可以在笔记本电脑或数千节点的集群上运行,无需自定义粘合代码。
主要特性
- 模块化操作符 – 超过 200 个内置操作;您还可以通过 pip 插件添加第三方操作。
- 配方优先的流水线 – YAML 文件描述操作符链;它们可共享且可复现。
- 可扩展执行 – Ray 分区执行器、自动 GPU/CPU 资源规划、MinHash 去重和 CUDA 加速映射器。据报道,在 50 个节点上可在 2 小时内处理 700 亿个样本。
- 可观测性 – 内置跟踪、统计收集和可视化分析 UI。
- 领域特定扩展 – 代理(DJ Copilot)、用于自然语言驱动清理的“Juicer”模型,以及用于 RAG、RL 风格数据策展和具身 AI 视频流水线的配方。
- 集成 – 与 Hugging Face、ModelScope、阿里云 PAI、HDFS、S3、Delta Lake、LanceDB、Ray 以及许多其他数据平台兼容。
典型工作流程
- 加载数据集(本地文件、HDFS、S3、Hugging Face hub 等)。
- 定义 YAML 或直接使用 Python 定义流水线,例如:
- op: TextLengthFilter # 丢弃短句子 min_len: 10 - op: WhitespaceNormalizationMapper - op: MinHashDeduplicator - 运行使用
dj-process --config my_pipeline.yaml或通过 Python API(NestedDataset.process([...]))。 - 分析使用内置统计或 Web UI 分析输出;导出为 JSONL、Parquet 等格式。
入门 – 使用 uv pip install py-data-juicer 安装(或拉取 Docker 镜像)。提供 JupyterLab 游乐场和“Ask DJ Copilot”Web UI,用于零安装探索。
社区与采用 – 在阿里云内部使用,集成到产品中,并被多家行业合作伙伴(字节跳动、NVIDIA、京东等)引用。该项目积极维护(每月发布,最近为 v1.6.x 系列),欢迎通过 good-first-issues、插件或新操作符配方做出贡献。
TL;DR – Data‑Juicer 是一个生产级、可扩展的数据处理框架,用于构建、扩展和审计支撑现代基础模型训练和 RAG 系统的大规模数据流水线。
相关
- 项目
- 项目
- 项目
- 项目
- 项目