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 はドラッグアンドドロップエディタ(または自然言語チャット)を起動し、オペレーターを接続するためにボイラープレートコードを書く必要がない。 |
| データ中心のAIに特化 | LLM開発のデータ側に焦点を当てている:医療、金融、法務、学術研究などの分野向けのデータ合成、クリーニング、評価、フィルタリング。 |
| 拡張可能なエコシステム | DataFlow-Skills(チュートリアル)、DataFlow-WebUI、DataFlow-Ecosystem(プラグインオペレーター)、RayOrch(分散実行)といった補完リポジトリのセット。 |
| エージェントアシスタンス | DataFlow-Agent はタスクの説明を分析し、オペレーターのコードを生成し、即座にパイプラインを構成できる。 |
⚙️ 主な機能(READMEに記載)
- 一般的なタスク向けの準備済みパイプライン:
- テキストQAマイニング、推論強化QA、テキストから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は再現可能でスケーラブル、拡張可能な方法を提供する。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト