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に記載)

  1. 一般的なタスク向けの準備済みパイプライン:
    • テキストQAマイニング、推論強化QA、テキストからSQL生成、知識ベースのクリーニング、エージェント型RAG抽出。
  2. 100以上のオペレーター:生成、評価、フィルタリング、ドメイン固有処理をカバー。カスタムオペレーターも作成可能で、GitHubまたはPyPI経由で公開できる。
  3. 再現性と共有性 – パイプラインはPython/YAML設定ファイルとして扱われ、コードと同様にバージョン管理可能。
  4. スケーラブルな実行 – オプションのRayOrchレイヤーにより、複数GPUまたはクラスタ上でジョブをスケジュール可能。
  5. Web UIとCLI – dataflow webui でビジュアル編集;dataflow CLIで素早い実行とバージョン確認。
  6. コミュニティ拡張 – 例:中国移動の音声品質クリーニングプラグイン。

🚀 クイックスタート(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は再現可能でスケーラブル、拡張可能な方法を提供する。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト