大模型数据生成、清洗与准备,一站式搞定
可视化、低代码流水线,支持跨领域和用例的灵活编排。💪
将原始数据转化为高质量的 LLM 训练数据集。🔧
🎉 以更低的成本获得更智能的 LLM —— 在 GitHub 上给我们点个Star ⭐ 以获取最新更新。
初学者友好学习资源(持续更新): [🎬 视频教程] [📚 文字教程]
简体中文 | English
-
[2026-02-02] 🖥️ DataFlow WebUI 正式发布! 通过一条命令
dataflow webui即可启动可视化流水线构建器,在直观的网页界面中构建并运行 DataFlow 流水线。👉 WebUI 文档 -
[2026-01-20] 🌟 DataFlow Awesome Works 上线! 新增板块用于展示基于 DataFlow 的开源项目与研究工作,欢迎提交 Pull Request 分享你的成果!👉 Awesome Works
-
[2025-12-19] 🎉 DataFlow 技术报告正式发布! 欢迎阅读并引用我们的 arXiv 论文:https://arxiv.org/abs/2512.16676
-
[2025-11-20] 🤖 DataFlow 全新 Data Agents 发布! 现在即可体验,并通过 Bilibili 教程快速上手:https://space.bilibili.com/3546929239689711/lists/6761342?type=season
-
[2025-06-28] 🎉 DataFlow 正式开源发布! 我们全新发布的以数据为中心的系统DataFlow已开源 —— 敬请关注后续更新!
DataFlow 是一个专门为从嘈杂来源(PDF、纯文本、低质量 QA)中生成、精炼、评估和过滤高质量 AI 数据而设计的数据准备和训练系统,从而通过针对性训练(预训练、指令微调 SFT、强化学习训练 RL)或 RAG 系统,提升大语言模型 (LLM) 在医疗、金融、法律和学术研究等特定领域的性能。
通过“基于算子 (operator-based)”的设计,DataFlow 将整个数据清洗工作流转化为可重现、可重用且可共享的“流水线 (pipeline)”,为以数据为中心的 AI 社区提供核心基础设施。此外,我们开发了智能化的 DataFlow-agent,能够根据需求通过重新组合现有算子或创建新算子来动态组装新的“流水线”。
-
高质量训练数据生成
- 文本、数学和代码数据生成(参见 DataFlow-Instruct-10K 结果)
- 通过 AgenticRAG 和 Text2SQL 等工具进行数据生成
-
结构化数据提取
- 大规模 PDF → QA 转换
- 大规模书籍 PDF → 视觉 QA 转换
-
科学数据工作流管理
- Text2SQL 工作流管理(被 ICDE 2026 录用)
- 数学数据工作流(被 KDD 2026 录用)
- 10+ 核心算子定义了交互模式和设计原则
- 100+ 特定流水线算子可供重用或参考
- 全面支持创建自定义算子 —— 插件式设计,可通过 GitHub 或 PyPI 轻松封装和分发
- 数据治理算法被封装为算子流水线,实现了不同数据治理策略的可复现性和公平比较(❤️ 研究友好)
- 轻松更换底层大模型复用原有管线,快速分析模型性能与数据质量之间的关系
- 基于 Python 和 Git 生态系统,方便分发、管理和追溯高质量、用户定义的数据治理算子和流水线(❤️ 企业友好)
DataFlow 套件提供了基本的算力设施,以配合 DataFlow 主仓库实现 LLM 数据准备的自动化和规模化。它由四个紧密集成的层组成:
- DataFlow-WebUI – 一个直观的可视化界面,用于通过拖拽式算子工作流构建和管理复杂的数据流水线。
- DataFlow-Agent – 一个由 AI 驱动的助手,根据用户的高层意图动态组合、执行和优化算子及流水线。
- DataFlow-Ecosystem – 一个标准化的算子注册模块化分发层。它允许特定领域的模块(例如 DataFlow-MM、DataFlow-AI4S)在统一的抽象下贡献可扩展库。
- RayOrch – 一个基于 Ray 构建的高性能编排层,为大规模数据任务提供分布式计算调度和资源管理。
这些组件共同构成了一个统一、可扩展的环境,将原始数据转化为模型就绪的智能信息。
数据生成和清洗对于高质量模型至关重要,但对于企业和个人而言,这些任务往往耗时、耗力且成本高昂。DataFlow 提供了一站式解决方案,高效应对这些挑战。 与 Nemo-Curator 和 Data-Juicer 等系统相比,DataFlow 提供:
- 更强的数据合成模块支持 – 无缝集成文本、代码和数学数据生成流水线,用于高质量训练数据集。
- 类 PyTorch 的编程管理 – 清晰的 流水线 (Pipeline) → 算子 (Operator) → 提示词 (Prompt) 分层结构,用于工作流控制。
- 原则化和多类别的算子分类 – 算子被系统地组织到诸如生成、评估、过滤和精炼等多个功能类别中,形成了科学的多维分类法,反映了数据准备的不同阶段,并支持精确的算子选择与组合。
- 用户友好设计,易于调试和上手 – 简化的工作流模式降低了学习曲线,加速了实验进程。
DataFlow 算子的设计秉持简单与清晰的原则。
算子接收结构化输入(JSON, JSONL, CSV),经过智能化处理后产生高质量输出。 每个算子封装了一个特定的数据处理任务,提供简洁且一致的 API,易于理解和集成。类 PyTorch 的设计使其直观且开箱即用,让您可以快速构建、组合和自定义流水线,无需处理复杂的模板代码。
更多详情请参考 算子文档。下面是一个演示如何调用 PromptedGenerator 算子的极简示例:
示例输入数据 (json/jsonl 样式):
// input.json
[
{"problem": "What is 17 + 25?"},
{"problem": "If x = 3, compute 2x^2 + 1."}
]
算子调用代码:
from dataflow.operators.core_text import PromptedGenerator
from dataflow.utils.storage import FileStorage
from dataflow.serving import APILLMServing_request
# 将输入文件设置到全局存储类
storage = FileStorage(first_entry_file_name="./input.json",)
# 配置 LLM 服务(例如 OpenAI API)
# api key 需要通过 `export DF_API_KEY=sk-xxx` 设置
llm_serving = APILLMServing_request(
api_url="https://api.openai.com/v1/chat/completions",
)
prompted_generator = PromptedGenerator(
llm_serving=llm_serving, # 预配置的 LLM 后端
system_prompt="Please solve this math problem."
)
prompted_generator.run(
storage=self.storage.step(), # 数据管理(细节省略)
input_key="problem", # 从该列读取
output_key="solution" # 写入该列
)运行后,算子会将生成的结果追加到 output_key 中。例如,输出数据 (json/jsonl 样式) 变为:
// dataflow_step1.json
[
{"problem":"What is 17 + 25?","solution":"42"},
{"problem":"If x = 3, compute 2x^2 + 1.","solution":"19"}
]
DataFlow 目前包含的流水线如下:
-
📝 文本处理流水线(Text Pipeline):从大规模纯文本(多为网络爬取)中挖掘问答对,用于监督微调和强化学习训练。
-
🧠 推理流水线(Reasoning Pipeline):增强已有问答对,添加 (1) 长链式推理(Chain-of-Thought),(2) 类别标注,(3) 难度估计。
-
🗃️ Text2SQL 流水线:将自然语言问题转化为 SQL 查询,辅以解释、思维链推理和数据库结构上下文信息。
-
📚 知识库清洗流水线:从表格、PDF 和 Word 文档等非结构化数据源中提取并整理知识,将其转化为可用于下游 RAG 或 QA 配对生成的可用条目。
-
🤖 Agent式RAG流水线:从已有问答或知识库中挖掘需要外部知识才能作答的问答对,用于训练 Agentic RAG 模型。
在此框架下,算子被分为基础算子、通用算子、特定领域算子和评估算子等,支持数据处理和评估功能。详情请参考 文档。
- DataFlow Agent: 一个智能助手,能够进行数据分析,编写自定义“算子”,并根据特定的任务目标自动将它们编排成“流水线”。
- [HuggingFace🤗 DataFlow Agent 演示输入与输出]
DataFlow 支持 Python >= 3.10 环境,已在 Windows、Linux 和 MacOS 上的 Python 3.10, 3.11, 3.12 版本通过测试。
请使用以下命令进行环境配置与安装👇
我们推荐使用 uv 安装 DataFlow 以加速下载。
pip install uv
uv pip install open-dataflow
如果您想使用自己的 GPU 进行本地推理,请使用:
pip install uv
uv pip install open-dataflow[vllm]
安装完成后,可以使用以下命令检查 DataFlow 是否安装正确:
dataflow -v
如果安装成功,您将看到:
open-dataflow codebase version: 1.0.0
Checking for updates...
Local version: 1.0.0
PyPI newest version: 1.0.0
You are using the latest version: 1.0.0.
我们也提供了 Dockerfile 以便部署,并提供 预构建的 Docker 镜像 以便立即使用。
您可以直接拉取并使用我们的预构建 Docker 镜像:
# 拉取预构建镜像
docker pull molyheci/dataflow:cu124
# 运行带有 GPU 支持的容器
docker run --gpus all -it molyheci/dataflow:cu124
# 在容器内验证安装
dataflow -v或者,您可以根据提供的 Dockerfile 构建 Docker 镜像:
# 克隆仓库 (HTTPS)
git clone https://github.com/OpenDCAI/DataFlow.git
# 或使用 SSH
# git clone [email protected]:OpenDCAI/DataFlow.git
cd DataFlow
# 构建 Docker 镜像
docker build -t dataflow:custom .
# 运行容器
docker run --gpus all -it dataflow:custom
# 在容器内验证安装
dataflow -v
注意: Docker 镜像包含 CUDA 12.4.1 支持,并预装了 vLLM 以实现 GPU 加速。请确保您已安装 NVIDIA Container Toolkit 以使用 GPU 功能。
您可以直接在 Google Colab 上开始您的第一个 DataFlow 翻译项目。 按照提供的指南,您可以无缝地从简单的翻译示例扩展到更复杂的 DataFlow 流水线。
有关详细的使用说明和入门指南,请访问我们的 DataFlow 文档。
DataFlow 提供了一个基于 Web 的 UI (WebUI),用于可视化流水线的构建与执行。
安装 DataFlow 主仓库后,只需运行以下命令即可启动 DataFlow-WebUI:
dataflow webui
这将自动下载并启动最新的 DataFlow-WebUI 并在浏览器中打开(如果未自动打开,请访问 http://localhost:8000/)。
- 中文: DataFlow-WebUI 文档: https://wcny4qa9krto.feishu.cn/wiki/F4PDw76uDiOG42k76gGc6FaBnod
- 英文: DataFlow-WebUI 文档: https://wcny4qa9krto.feishu.cn/wiki/SYELwZhh9ixcNwkNRnhcLGmWnEg
DataFlow-Instruct-10K 是一个由 DataFlow 框架生成的统一多领域指令数据集。它通过跨越数学推理、代码和通用文本指令的多个自动化数据准备流水线构建。每个流水线遵循“生成-评估-过滤-精炼”工作流,以合成和策划高质量的“指令-响应”对。最终的数据集包含约 10K 个样本,为指令微调提供高质量监督,使基座模型能够以更少的训练样本达到全量训练指令模型的性能水平。
有关详细的实验设置,请访问我们的 DataFlow 技术报告。
| 模型 | 数学平均 (Math-Avg) | 代码平均 (Code-Avg) | 知识平均 (Knowledge-Avg) |
|---|---|---|---|
| Qwen2-7B 系列 | |||
| Base | 20.1 | 66.3 | 76.2 |
| + Infinity-Instruct-10K | 29.0 | 67.8 | 76.2 |
| + Infinity-Instruct-1M | 27.9 | 68.2 | 76.2 |
| + DataFlow-Instruct-10K | 32.4 | 66.2 | 76.1 |
| Qwen2.5-7B 系列 | |||
| Base | 37.1 | 76.5 | 76.0 |
| + Infinity-Instruct-10K | 22.6 | 77.6 | 75.8 |
| + Infinity-Instruct-1M | 33.3 | 78.0 | 75.8 |
| + DataFlow-Instruct-10K | 46.7 | 78.6 | 76.2 |
从 SlimPajama-627B 语料库中,我们提取了一个 100B-token 子集,并应用了多个 DataFlow 文本预训练过滤器。我们使用 Megatron-DeepSpeed 框架从头开始训练了一个 Qwen2.5-0.5B 模型,训练量为 30B tokens,结果如下:
| 方法 | ARC-C | ARC-E | MMLU | HellaSwag | WinoGrande | Gaokao-MathQA | 平均 |
|---|---|---|---|---|---|---|---|
| Random-30B | 25.26 | 43.94 | 27.03 | 37.02 | 50.99 | 27.35 | 35.26 |
| Qurating-30B | 25.00 | 43.14 | 27.50 | 37.03 | 50.67 | 26.78 | 35.02 |
| FineWeb-Edu-30B | 26.45 | 45.41 | 27.41 | 38.06 | 50.43 | 25.64 | 35.57 |
| DataFlow-30B | 25.51 | 45.58 | 27.42 | 37.58 | 50.67 | 27.35 | 35.69 |
为了研究小规模 SFT 数据质量,我们使用 LLaMA-Factory 在 WizardLM 和 Alpaca 数据集上对 Qwen2.5-7B 基座模型进行了微调。对于每个数据集,我们将 5K 个随机采样实例的集合与 5K 个经过 DataFlow SFT 流水线过滤的实例集合进行了比较。此外,我们使用 DataFlow 的 Condor Generator 和 Condor Refiner 流水线合成了一个 15k 大小的数据集 DataFlow-SFT-15K,随后通过 DataFlow 的 SFT 过滤流水线(不包括 Instagram 过滤器)。基准测试包括全面的数学、代码和知识评估套件。
| 方法 | math | gsm8k | aime24 | minerva | olympiad | 平均 |
|---|---|---|---|---|---|---|
| Alpaca (random) | 54.9 | 77.2 | 13.3 | 14.0 | 27.0 | 37.3 |
| Alpaca (filtered) | 60.3 | 80.0 | 13.3 | 14.7 | 30.7 | 39.8 |
| WizardLM (random) | 61.1 | 84.2 | 6.7 | 18.0 | 29.3 | 39.9 |
| WizardLM (filtered) | 69.7 | 88.8 | 10.0 | 19.9 | 35.4 | 44.8 |
| DataFlow-SFT-15K (random) | 72.6 | 89.6 | 13.3 | 37.9 | 32.9 | 49.3 |
| DataFlow-SFT-15K (filtered) | 73.3 | 90.2 | 13.3 | 36.0 | 35.9 | 49.7 |
| 方法 | HumanEval | MBPP | 平均 |
|---|---|---|---|
| Alpaca (random) | 71.3 | 75.9 | 73.6 |
| Alpaca (filtered) | 73.8 | 75.7 | 74.8 |
| WizardLM (random) | 75.6 | 82.0 | 78.8 |
| WizardLM (filtered) | 77.4 | 80.4 | 78.9 |
| DataFlow-SFT-15K (random) | 79.9 | 75.9 | 77.9 |
| DataFlow-SFT-15K (filtered) | 82.9 | 74.9 | 78.9 |
| 方法 | MMLU | C-EVAL | 平均 |
|---|---|---|---|
| Alpaca (random) | 71.8 | 80.0 | 75.9 |
| Alpaca (filtered) | 71.8 | 80.0 | 75.9 |
| WizardLM (random) | 71.8 | 79.2 | 75.5 |
| WizardLM (filtered) | 71.9 | 79.6 | 75.8 |
| DataFlow-SFT-15K (random) | 72.1 | 80.0 | 76.1 |
| DataFlow-SFT-15K (filtered) | 72.2 | 80.4 | 76.3 |
我们使用 DataFlow 的对话生成流水线合成了 DataFlow-Chat-15K,并在其上微调了 Qwen2.5-7B-Base。基准包括 ShareGPT-15K、UltraChat-15K 及其全量版本。我们在特定领域任务 (TopDial, Light) 和通用基准 (MMLU, AlpacaEval, Arena-Hard) 上进行了评估。
| 模型 | TopDial | Light | 平均 |
|---|---|---|---|
| Qwen2.5-7B | 7.71 | 7.79 | 7.75 |
| + ShareGPT-15K | 7.75 | 6.72 | 7.24 |
| + UltraChat-15K | 7.72 | 6.83 | 7.28 |
| + DataFlow-Chat-15K | 7.98 | 8.10 | 8.04 |
| 模型 | MMLU | AlpacaEval | Arena-Hard | 平均 |
|---|---|---|---|---|
| Qwen2.5-7B | 71.45 | 7.05 | 0.60 | 26.36 |
| + ShareGPT-15K | 73.09 | 3.70 | 1.30 | 26.03 |
| + UltraChat-15K | 72.97 | 3.97 | 0.80 | 25.91 |
| + DataFlow-Chat-15K | 73.41 | 10.11 | 1.10 | 28.21 |
我们采用 NuminaMath 数据集作为高质量种子集。我们比较了三种训练源:(1) Open-R1 的随机 10K 子集,(2) Synthetic-1 的随机 10K 子集,以及 (3) 我们使用 DataFlow 构建的 10K 合成 DataFlow-Reasoning-10K 数据集。
| 设置 | 模型 | gsm8k | math | amc23 | olympiad | gaokao24_mix | minerva | AIME24@32 | AIME25@32 | 平均 |
|---|---|---|---|---|---|---|---|---|---|---|
| Baseline | Qwen2.5-32B-Instruct | 95.8 | 73.5 | 70.0 | 38.5 | 42.9 | 26.5 | 16.8 | 11.6 | 46.95 |
| 1 Epoch | + SYNTHETIC-1-10k | 92.9 | 71.8 | 52.5 | 38.4 | 23.1 | 24.3 | 35.6 | 34.0 | 46.6 |
| 1 Epoch | + Open-R1-10k | 91.5 | 72.3 | 65.0 | 38.4 | 20.9 | 24.6 | 43.0 | 33.5 | 48.7 |
| 1 Epoch | + DataFlow-Reasoning-10K | 93.9 | 72.3 | 72.5 | 38.7 | 38.5 | 26.5 | 35.9 | 34.5 | 51.6 |
| 2 Epochs | + SYNTHETIC-1-10k | 94.5 | 78.4 | 75.0 | 45.0 | 24.2 | 28.3 | 48.4 | 37.9 | 54.0 |
| 2 Epochs | + Open-R1-10k | 93.9 | 77.2 | 80.0 | 44.1 | 20.9 | 25.4 | 51.0 | 40.7 | 54.2 |
| 2 Epochs | + DataFlow-Reasoning-10K | 94.4 | 76.6 | 75.0 | 45.2 | 42.9 | 25.7 | 45.4 | 40.0 | 55.7 |
我们从 Ling-Coder-SFT 语料库中随机抽取了 20k 实例,并通过 DataFlow 代码流水线进行处理。这产生了三个不同规模的精选代码指令数据集:DataFlow-Code-1K, DataFlow-Code-5K, 和 DataFlow-Code-10K,每个数据集旨在为代码生成任务提供高质量、经过流水线精炼的监督信号。我们将我们的合成数据集与 Code-Alpaca-1k 和 Self-OSS-Instruct-SC2-Exec-Filter-1k 进行了对比。
| 训练数据 | BigCodeBench | LiveCodeBench (v6) | CruxEval (I) | CruxEval (O) | HumanEval+ | 平均 |
|---|---|---|---|---|---|---|
| Qwen2.5-7B-Instruct | 35.3 | 23.4 | 44.8 | 43.9 | 72.6 | 44.0 |
| + Code Alpaca-1K | 33.3 | 18.7 | 45.6 | 46.4 | 66.5 | 42.1 |
| + Self-OSS | 31.9 | 21.4 | 46.9 | 45.9 | 70.1 | 43.2 |
| + DataFlow-Code-1K | 35.5 | 25.7 | 48.0 | 45.1 | 72.6 | 45.4 |
| + DataFlow-Code-5K | 36.2 | 26.4 | 48.6 | 45.0 | 73.2 | 45.9 |
| + DataFlow-Code-10K | 36.8 | 26.0 | 48.8 | 45.4 | 73.8 | 46.2 |
| 训练数据 | BigCodeBench | LiveCodeBench (v6) | CruxEval (I) | CruxEval (O) | HumanEval+ | 平均 |
|---|---|---|---|---|---|---|
| Qwen2.5-14B-Instruct | 37.5 | 33.4 | 48.0 | 48.5 | 74.4 | 48.4 |
| + Code Alpaca-1K | 37.0 | 28.2 | 50.2 | 49.6 | 71.3 | 47.3 |
| + Self-OSS | 36.9 | 22.3 | 52.6 | 50.1 | 68.3 | 46.0 |
| + DataFlow-Code-1K | 41.4 | 33.7 | 51.0 | 50.9 | 77.3 | 50.9 |
| + DataFlow-Code-5K | 41.1 | 33.2 | 52.5 | 50.6 | 76.2 | 50.7 |
| + DataFlow-Code-10K | 41.9 | 33.2 | 52.9 | 51.0 | 76.2 | 51.0 |
我们的团队发表了以下论文,构成了 DataFlow 系统的核心组件:
| 论文题目 | DataFlow 组件 | 会议/期刊 | 年份 |
|---|---|---|---|
| Text2SQL-Flow: A Robust SQL-Aware Data Augmentation Framework for Text-to-SQL | Text2SQL 数据增强 | ICDE | 2026 |
| Let's Verify Math Questions Step by Step | 数学问题质量评估 | KDD | 2026 |
| MM-Verify: Enhancing Multimodal Reasoning with Chain-of-Thought Verification | 用于数据处理和评估的多模态推理验证框架 | ACL | 2025 |
| Efficient Pretraining Data Selection for Language Models via Multi-Actor Collaboration | 多角色协同数据选择机制,用于增强数据过滤和处理 | ACL | 2025 |
我们荣幸地在两项重大国际 AI 竞赛中获得第一名,这彰显了 DataFlow 及其推理能力的卓越性与稳健性:
| 竞赛项目 | 赛道 | 奖项 | 组织者 | 日期 |
|---|---|---|---|---|
| ICML 2025 自动化数学推理及其扩展挑战赛 | 赛道 2:结合图表和表达式的物理推理 | 🥇冠军 (First Place) | ICML AI for Math Workshop & AWS Codabench | 2025年7月18日 |
| 2025 语言与智能技术竞赛 (LIC) | 赛道 2:北京人工智能研究院 | 🥇一等奖 | 北京人工智能研究院 (BAAI) & 百度 | 2025年8月10日 |
本板块重点展示基于 DataFlow 构建或深度集成于 DataFlow 生态系统的项目、研究成果和应用。
📌 精选项目列表: [Awesome Work Using DataFlow]
我们热忱欢迎社区通过 Pull Requests 贡献新条目。🙌 详细指南 可以帮助您通过 DataFlow-CLI 创建 DataFlow 扩展仓库。
我们衷心感谢 MinerU 的杰出工作,其强大的 PDF/文档文本提取能力为我们的数据加载过程提供了重要支持。 我们也要感谢 LLaMA-Factory,它提供了一个高效且用户友好的大模型微调框架,极大地方便了我们训练和实验工作流的快速迭代。 我们要感谢开源社区的所有贡献者 —— 他们的努力共同推动了 DataFlow 的发展。 感谢中关村研究院提供的 API 和 GPU 支持。
加入 DataFlow 开源社区,提出问题、分享想法并与其他开发者合作!
• 📮 GitHub Issues:提交 Bug 或功能建议。
• 🔧 GitHub Pull Requests:贡献代码改进。
• 💬 加入我们的社区群组,与我们及其他贡献者建立联系!
如果您在研究中使用了 DataFlow,请随时引用我们。
@article{liang2025dataflow,
title={DataFlow: An LLM-Driven Framework for Unified Data Preparation and Workflow Automation in the Era of Data-Centric AI},
author={Liang, Hao and Ma, Xiaochen and Liu, Zhou and Wong, Zhen Hao and Zhao, Zhengyang and Meng, Zimo and He, Runming and Shen, Chengyu and Cai, Qifeng and Han, Zhaoyang and others},
journal={arXiv preprint arXiv:2512.16676},
year={2025}
}









