OpenDCAI/DataFlow
[SIGMOD'27] Easy Data Preparation with latest LLMs-based Operators and Pipelines.
📦 DataFlow – LLM 训练数据流水线的一站式平台
是什么 – DataFlow 是一个开源 Python 框架,可将原始的、嘈杂的文本(PDF、网络爬取、电子表格等)转化为用于训练或增强大语言模型的高质量数据集。它通过一个 低代码、可视化 的流水线构建器和一个可重用的 操作符(例如生成器、评估器、过滤器)库来实现这一目标。可选的 AI 助手(DataFlow-Agent)甚至可以自动编写新的操作符并将其组合在一起。
🎯 核心理念
| 理念 | 为何重要 |
|---|---|
| 基于操作符的流水线 | 每个步骤(例如提取文本、运行 LLM 生成答案、过滤低质量行)都是一个独立的、版本控制的组件。流水线可复现、可共享,并可轻松替换为不同的模型或启发式方法。 |
| 可视化 / 低代码 UI | dataflow webui 启动一个拖拽式编辑器(或自然语言聊天),无需编写样板 Python 代码即可连接操作符。 |
| 面向数据驱动的 AI | 专注于 LLM 开发的 数据侧:合成、清洗、评估和过滤,适用于医疗、金融、法律或学术研究等领域。 |
| 可扩展的生态系统 | 一系列配套仓库——DataFlow-Skills(教程)、DataFlow-WebUI、DataFlow-Ecosystem(插件操作符),以及 RayOrch(分布式执行)。 |
| 代理式辅助 | DataFlow-Agent 可分析任务描述,生成操作符代码,并即时组合出流水线。 |
⚙️ 主要功能(如 README 所列)
- 预置流水线,适用于常见任务:
- 文本问答挖掘、推理增强问答、文本到 SQL 生成、知识库清洗、代理式 RAG 提取。
- 100 多个操作符,涵盖生成、评估、过滤和领域特定处理。您也可以创建自定义操作符并通过 GitHub 或 PyPI 发布。
- 可复现性与共享性 – 流水线仅为 Python/YAML 配置文件,可像代码一样进行版本控制。
- 可扩展执行 – 可选的 RayOrch 层可在多个 GPU 或集群上调度任务。
- Web UI 与 CLI –
dataflow webui用于可视化编辑;dataflowCLI 用于快速运行和版本检查。 - 社区扩展 – 例如,来自中国联通的语音质量清洗插件。
🚀 快速开始(来自 README)
# 首先安装快速安装器 "uv"(可选但推荐)
pip install uv
uv pip install open-dataflow # 核心包
uv pip install "open-dataflow[vllm]" # 支持 GPU 加速推理
# 验证安装
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.
运行可视化构建器
dataflow webui # 打开基于浏览器的拖拽式流水线编辑器
通过 CLI 运行流水线(使用内置的 PromptedGenerator 操作符示例):
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 = APILLMServing_request(api_url="https://api.openai.com/v1/chat/completions")
gen = PromptedGenerator(llm_serving=llm, system_prompt="Please solve this math problem.")
gen.run(storage=storage.step(), input_key="problem", output_key="solution")
该操作符读取 input.json,调用 LLM,并写入新列 solution。
📚 学习资源
- 视频教程 – Bilibili 播放列表(README 中链接)
- 文字教程 – Feishu Wiki(README 中链接)
- 完整文档 – https://OpenDCAI.github.io/DataFlow-Doc/
- 技术报告 – arXiv: 2512.16676(已被 ACM SIGMOD 2027 接收)
🛠️ 何时使用 DataFlow?
- 您需要为 LLM 的微调或 RLHF 生成或清洗大量文本数据。
- 您的数据来自异构来源(PDF、表格、代码仓库),并希望拥有一个 可复现的工作流。
- 您更倾向于使用 可视化、低代码界面,而非手动编写 ETL 脚本。
- 您计划 扩展到多个 GPU 或集群 – RayOrch 负责分布式处理。
- 您希望与团队成员或社区 共享流水线(可作为 GitHub 仓库或 PyPI 包发布)。
📦 生态系统快照
| 组件 | 用途 |
|---|---|
| DataFlow-Skills | 教程、示例操作符、最佳实践指南 |
| DataFlow-WebUI | 拖拽式流水线编辑器 + AI 代理聊天 |
| DataFlow-Ecosystem | 领域特定操作符包注册表(例如 DataFlow-MM) |
| RayOrch | 基于 Ray 的分布式任务调度器 |
| 社区扩展 | 语音质量清洗、其他领域特定插件 |
🏁 总结
DataFlow 是 LLM 开发中数据侧的 真正生产级框架。它集成了可重用操作符库、可视化流水线构建器,以及可自动组合流水线的可选 AI 代理。如果您花时间在整理或合成训练数据上,DataFlow 将为您提供一种可复现、可扩展、可扩展的方法。
相关
- 项目
- 项目
- 项目
- 项目
- 项目