Skip to content

OpenDCAI/DataFlow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

DataFlow

issue resolution issue resolution

PyPI version PyPI - Python Version PyPI - Downloads PyPI - Downloads PyPI - Downloads Downloads

Documents Arxiv Ask DeepWiki

wechat

๐ŸŽ‰ If you like our project, please give us a star โญ on GitHub for the latest update.

Beginner-friendly learning resources (continuously updated): [๐ŸŽฌ Video Tutorials] [๐Ÿ“š Written Tutorials]

็ฎ€ไฝ“ไธญๆ–‡ | English

๐Ÿ“ฐ 1. News

  • [2025-12-19] ๐ŸŽ‰ Our DataFlow technical report is now available!
    We welcome you to read and cite our work if you find it helpful.
    ๐Ÿ‘‰ Read the full report on arXiv: https://arxiv.org/abs/2512.16676

  • [2025-11-20] Introducing New Data Agents for DataFlow! ๐Ÿค– You can try them out now and follow the tutorial on Bilibili for a quick start.

  • [2025-06-28] ๐ŸŽ‰ Weโ€™re excited to announce that DataFlow, our Data-centric AI system, is now released! Stay tuned for future updates.

๐Ÿ” 2. Overview

df_overview_final

DataFlow is a data preparation and training system designed to parse, generate, process, and evaluate high-quality data from noisy sources (PDF, plain-text, low-quality QA), thereby improving the performance of large language models (LLMs) in specific domains through targeted training (Pre-training, Supervised Fine-tuning, RL training) or RAG using knowledge base cleaning. DataFlow has been empirically validated to improve domain-oriented LLMs' performance in fields such as healthcare, finance, and law.

Specifically, we are constructing diverse operators leveraging rule-based methods, deep learning models, LLMs, and LLM APIs. These operators are systematically integrated into distinct pipelines, collectively forming the comprehensive DataFlow system. Additionally, we develop an intelligent DataFlow-agent capable of dynamically assembling new pipelines by recombining existing operators on demand.

๐Ÿ› ๏ธ 3. Operators Functionality

๐Ÿ”ง 3.1 How Operators Work

DataFlow adopts a modular operator design philosophy, building flexible data processing pipelines by combining different types of operators. As the basic unit of data processing, an operator can receive structured data input (such as in json/jsonl/csv format) and, after intelligent processing, output high-quality data results. For a detailed guide on using operators, please refer to the Operator Documentation.

dataflow_operator

๐Ÿ“Š 3.2 Operator Classification System

In the DataFlow framework, operators are divided into three core categories based on their functional characteristics:

Operator Type Quantity Main Function
Generic Operators 80+ Covers general functions for text evaluation, processing, and synthesis
Domain-Specific Operators 40+ Specialized processing for specific domains (e.g., medical, financial, legal)
Evaluation Operators 20+ Comprehensively evaluates data quality from 6 dimensions

๐Ÿ› ๏ธ 4. Pipelines Functionality

๐Ÿ”ง 4.1 Ready-to-Use PipeLines

Current Pipelines in Dataflow are as follows:

โš™๏ธ 4.2 Flexible Operator PipeLines

In this framework, operators are categorized into Fundamental Operators, Generic Operators, Domain-Specific Operators, and Evaluation Operators, etc., supporting data processing and evaluation functionalities. Please refer to the documentation for details.

๐Ÿค– 4.3 Agent Guided Pipelines

โšก 5. Quick Start

๐Ÿ› ๏ธ 5.1 Environment Setup and Installation

Please use the following commands for environment setup and installation๐Ÿ‘‡

conda create -n dataflow python=3.10 
conda activate dataflow

pip install open-dataflow

If you want to use your own GPU for local inference, please use:

pip install open-dataflow[vllm]

DataFlow supports Python>=3.10 environments

After installation, you can use the following command to check if dataflow has been installed correctly:

dataflow -v

If installed correctly, you should see:

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.

๐Ÿณ 5.1.1 Docker Installation (Alternative)

We also provide a Dockerfile for easy deployment and a pre-built Docker image for immediate use.

Option 1: Use Pre-built Docker Image

You can directly pull and use our pre-built Docker image:

# Pull the pre-built image
docker pull molyheci/dataflow:cu124

# Run the container with GPU support
docker run --gpus all -it molyheci/dataflow:cu124

# Inside the container, verify installation
dataflow -v
Option 2: Build from Dockerfile

Alternatively, you can build the Docker image from the provided Dockerfile:

# Clone the repository (HTTPS)
git clone https://github.com/OpenDCAI/DataFlow.git
# Or use SSH
# git clone git@github.com:OpenDCAI/DataFlow.git

cd DataFlow

# Build the Docker image
docker build -t dataflow:custom .

# Run the container
docker run --gpus all -it dataflow:custom

# Inside the container, verify installation
dataflow -v

Note: The Docker image includes CUDA 12.4.1 support and comes with vLLM pre-installed for GPU acceleration. Make sure you have NVIDIA Container Toolkit installed to use GPU features.

๐Ÿ“– 5.2 Reference Project Documentation

For detailed usage instructions and getting started guide, please visit our Documentation.

๐Ÿงช 6. Experimental Results

For Detailed Experiments setting, please visit our DataFlow Technical Report.

6.1 Text Pipeline

6.1.1 Pre-training data filter pipeline

From the SlimPajama-627B corpus, we extract a 100B-token subset and apply multiple DataFlow text-pretraining filters. We train a Qwen2.5-0.5B model from scratch for 30B tokens using the Megatron-DeepSpeed framework, the results are as follows:

Methods ARC-C ARC-E MMLU HellaSwag WinoGrande Gaokao-MathQA Avg
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

6.1.2 SFT data filter and synthesis pipeline

To study small-scale SFT data quality, we fine-tune the Qwen2.5-7B base model using LLaMA-Factory on WizardLM and Alpaca datasets.
For each dataset, we compared a randomly sampled set of 5K instances against a set of 5K instances filtered by DataFlow's SFT pipeline. Additionally, we synthesize a 15k-size dataset, DataFlow-SFT-15K, using DataFlowโ€™s Condor Generator and Condor Refiner pipeline, followed by DataFlowโ€™s SFT filtering pipeline (excluding the Instagram filter). Benchmarks include comprehensive Math, Code, and Knowledge evaluation suites.

Math Benchmarks

Methods math gsm8k aime24 minerva olympiad Avg
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

Code Benchmarks

Methods HumanEval MBPP Avg
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

Knowledge Benchmarks

Methods MMLU C-EVAL Avg
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

6.1.3 Conversation Synthesis Pipeline

We synthesize DataFlow-Chat-15K using DataFlow's conversation-generation pipeline and fine-tune Qwen2.5-7B-Base on it. Baselines include ShareGPT-15K, UltraChat-15K, and their full (non-truncated) versions. We evaluate on domain-specific tasks (TopDial, Light) and general benchmarks (MMLU, AlpacaEval, Arena-Hard).

Conversation Benchmarks

Model TopDial Light Avg
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

General Benchmarks

Model MMLU AlpacaEval Arena-Hard Avg
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

6.2 Reasoning Pipeline

We adopt the NuminaMath dataset as a high-quality seed dataset. We compare three training sources: (1) a random 10K subset from Open-R1, (2) a random 10K subset from Synthetic-1, and (3) our 10K synthesized DataFlow-Reasoning-10K dataset constructed using DataFlow.

Setting Model gsm8k math amc23 olympiad gaokao24_mix minerva AIME24@32 AIME25@32 Avg
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

6.3 Code PipeLine

We randomly sample 20k instances from the Ling-Coder-SFT corpus and process them through the DataFlow Code Pipeline. This yields three curated code instruction datasets of different scales, DataFlow-Code-1K, DataFlow-Code-5K, and DataFlow-Code-10K, each designed to provide high-quality, pipeline-refined supervision signals for code generation tasks.

We compare our synthesized datasets against Code-Alpaca-1k and Self-OSS-Instruct-SC2-Exec-Filter-1k.

Trained on Qwen2.5-7B-Instruct

Training Data BigCodeBench LiveCodeBench (v6) CruxEval (Input) CruxEval (Output) HumanEval+ Avg
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

Trained on Qwen2.5-14B-Instruct

Training Data BigCodeBench LiveCodeBench (v6) CruxEval (Input) CruxEval (Output) HumanEval+ Avg
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

๐Ÿ“„ 7. Publications

Our team has published the following papers that form core components of the DataFlow system:

Paper Title DataFlow Component Venue Year
MM-Verify: Enhancing Multimodal Reasoning with Chain-of-Thought Verification Multimodal reasoning verification framework for data processing and evaluation ACL 2025
Efficient Pretraining Data Selection for Language Models via Multi-Actor Collaboration Multi-actor collaborative data selection mechanism for enhanced data filtering and processing ACL 2025

Contributing Institutions: PKU HKUST CAS Shanghai AI Lab Baichuan Ant Group

๐Ÿ† 8. Awards & Achievements

We are honored to have received first-place awards in two major international AI competitions, recognizing the excellence and robustness of DataFlow and its reasoning capabilities:

Competition Track Award Organizer Date
ICML 2025 Challenges on Automated Math Reasoning and Extensions Track 2: Physics Reasoning with Diagrams and Expressions ๐Ÿฅ‡ First Place Winner ICML AI for Math Workshop & AWS Codabench July 18, 2025
2025 Language and Intelligence Challenge (LIC) Track 2: Beijing Academy of Artificial Intelligence ๐Ÿฅ‡ First Prize Beijing Academy of Artificial Intelligence (BAAI) & Baidu August 10, 2025
ICML 2025 Certificate
ICML 2025 Automated Math Reasoning Challenge โ€” First Place Winner
LIC 2025 Certificate
BAAI Language & Intelligence Challenge 2025 โ€” First Prize

๐Ÿ’ 9. Acknowledgements

We sincerely thank MinerU for their outstanding work, whose powerful PDF/document text extraction capabilities provided essential support for our data loading process.
We also thank LLaMA-Factory for offering an efficient and user-friendly framework for large model fine-tuning, which greatly facilitated rapid iteration in our training and experimentation workflows.
Our gratitude extends to all contributors in the open-source communityโ€”their efforts collectively drive the development of DataFlow.

๐Ÿค 10. Community & Support

Join the DataFlow open-source community to ask questions, share ideas, and collaborate with other developers!

โ€ข ๐Ÿ“ฎ GitHub Issues: Report bugs or suggest features

โ€ข ๐Ÿ”ง GitHub Pull Requests: Contribute code improvements

โ€ข ๐Ÿ’ฌ Join our community groups to connect with us and other contributors!

๐Ÿ“œ 11. Citation

If you use DataFlow in your research, feel free to give us a cite.

@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}
}

๐Ÿ“Š 12. Statistics


Connect with the PKU-DCAI Research Team on Xiaohongshu: 26133106768