配置驱动的多模态数据处理流水线
简介
DataStudio 是一个面向多模态大语言模型(MLLM)的数据处理工具包,支持规则和 MLLM 两种算子对数据进行过滤与重写。它驱动了 HoneyPipe 数据清洗流水线,生产了 Honey-Data-15M —— 一个包含 1500 万 QA 对的高质量数据集。
核心特性
配置驱动:通过 Python 配置文件定义完整的处理流水线,支持配置继承(
_base_)双引擎算子:内置 16 个规则算子(7 个过滤器 + 9 个重写器),同时支持调用 MLLM 进行智能过滤和重写
高性能:多进程异步并发 API 请求(通过
MPOpenAIAPI支持 8192+)、LMDB 分片图像缓存、fork + COW 内存共享断点续传:基于 checkpoint 的进度保存,中断后自动恢复
辅助工具
LLMRouter:基于 Go 开发的高性能反向代理路由器,兼容 OpenAI API,支持多个 LLM 后端的加权负载均衡、滑动窗口 RPM 限流、异步健康检查与自动故障转移、配置热加载等。详见其 README。
DataVis:多模态数据可视化与分析平台(React + FastAPI),支持分页浏览、多维度过滤和统计分析。
安装
git clone https://github.com/Open-Bee/DataStudio.git
cd DataStudio
pip install -e .
环境要求:Python >= 3.10。
快速上手
1. 准备数据集 YAML
# dataset.yaml
datasets:
- json_path: /path/to/data.jsonl
source: my_dataset
2. 编写配置文件
# configs/my_pipeline.py
_base_ = ["@/_base_/dataset.py"]
work_dir = "./work_dirs/my_experiment"
logger = dict(type="Logger", log_file="logs/process.log")
dataset_yaml = "/path/to/dataset.yaml"
dataloader = dict(dataset=dataset_yaml, batch_size=1000, use_image=False)
datasaver = dict(dataset=dataset_yaml, output_dir="./output", save_yaml_name="processed")
pipeline = dict(
type="Pipeline",
operations={
"rule_filters": dict(
cfg=dict(type="SubPipeline", operators=[
dict(type="ConvLengthFilter", min_length=1, max_length=20),
dict(type="ImageSizeFilter", min_size=14),
]),
priority=0,
),
"rewriters": dict(
cfg=dict(type="SubPipeline", operators=[
dict(type="RemoveThinkRewriter"),
]),
priority=1,
),
}
)
3. 运行
python run.py -c configs/my_pipeline.py
更完整的教程(数据格式、MLLM 算子、自定义算子、性能调优等)请参考 快速开始文档。
项目结构
DataStudio/
├── run.py # 主入口(支持 -c/--config, --cache-images)
├── datastudio/
│ ├── operators/ # 算子
│ │ ├── core/ # 基类:Operator, Filter, Rewriter, DataItem, OperatorResult
│ │ ├── filters/ # 7 个规则过滤器
│ │ ├── rewriters/ # 9 个规则重写器
│ │ └── mllm/ # MLLM 算子:MLLMFilter, MLLMRewriter, SelectiveMLLMRewriter
│ ├── models/ # 模型后端:OpenAIAPI, MPOpenAIAPI
│ ├── pipelines/ # Pipeline, SubPipeline
│ ├── datasets/ # 数据加载/保存、格式转换、YAML 生成
│ └── utils/ # 注册表、配置、日志、LMDB 缓存、checkpoint
├── configs/ # 配置文件
│ ├── _base_/ # 基础配置(模型、数据集、过滤器、重写器)
│ └── examples/ # 可直接运行的示例配置及演示数据
├── prompts/ # MLLM 提示词模板
├── tools/ # 辅助工具
│ ├── LLMRouter/ # OpenAI API 兼容的反向代理路由器(负载均衡、故障转移)
│ └── DataVis/ # 多模态数据可视化与分析平台
├── docs/ # 文档(Sphinx + Markdown 指南)
└── tests/ # 单元测试
关于 Bee 项目
DataStudio 是 Bee 项目的数据清洗引擎,通过 HoneyPipe 流水线生产了 Honey-Data-15M 数据集。
组件 |
说明 |
链接 |
|---|---|---|
Honey-Data-15M |
1500 万高质量 QA 对(含 CoT) |
|
Bee-8B |
全开源 8B MLLM |
|
DataStudio |
数据清洗流水线 |
引用
@article{zhang2025bee,
title={Bee: A High-Quality Corpus and Full-Stack Suite to Unlock Advanced Fully Open MLLMs},
author={Zhang, Yi and Ni, Bolin and Chen, Xin-Sheng and Zhang, Heng-Rui and Rao, Yongming and Peng, Houwen and Lu, Qinglin and Hu, Han and Guo, Meng-Hao and Hu, Shi-Min},
journal={arXiv preprint arXiv:2510.13795},
year={2025}
}
贡献
如果在使用过程中发现 Bug 或有功能建议,欢迎提 Issue 或 Pull Request,期待你的贡献!