OpenDCAI/DataFlow

[SIGMOD'27] Easy Data Preparation with latest LLMs-based Operators and Pipelines.

📦 DataFlow – LLM 학습 데이터 파이프라인을 위한 통합 플랫폼

무엇인가요 – DataFlow는 오픈소스 파이썬 프레임워크로, 원시적이고 노이즈가 많은 텍스트(PDF, 웹 크롤링, 스프레드시트 등)를 대규모 언어 모델(Large Language Models) 학습 또는 증강에 적합한 고품질 데이터셋으로 변환할 수 있게 해줍니다. 이는 저코드, 시각적 파이프라인 빌더와 재사용 가능한 오퍼레이터(예: 생성기, 평가기, 필터) 라이브러리를 통해 이루어집니다. 선택적으로 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. 웹 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 위키 (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는 재현 가능하고 확장 가능하며 확장 가능한 방법을 제공합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트