curator
基于 Claude/GPT-4 等 LLM API 的合成数据生成编排框架,支持批量 API 降本,
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
基于 Claude/GPT-4 等 LLM API 的合成数据生成编排框架,支持批量 API 降本,
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
2025年4月,一个名为 OpenThinker2-32B 的开源模型横空出世,在多项推理基准测试中超越了 DeepSeek-R1-32B。鲜少有人知道,这个强大模型的训练数据来源——OpenThoughts2-1M 数据集——正是由 Bespoke Curator 这款工具生产的。这不是巧合,而是 Curator 在开源社区多年深耕后的集中爆发。
Bespoke Curator 是由 Bespoke Labs 团队打造的 Python 库,专注于为大型语言模型(LLM)的后训练(post-training)阶段提供高质量合成数据。它的核心能力很简单:给定一个数据集和一组LLM调用配置,Curator 自动完成数据生成、清洗、结构化提取的全流程,并将结果存储为标准化的 HuggingFace Dataset 格式。
训练一个强大模型,数据是根基。而在 RLHF(人类反馈强化学习)和指令微调(instruction tuning)场景中,数据质量往往比数据数量更重要。传统做法是招募人工标注团队:定义标注规范、清洗噪声、统一格式。成本高、周期长、难以规模化。
Curator 的出现改变了这个局面。它将整个流程自动化:你定义数据结构(通过 Pydantic 模型),提供少量种子示例,Curator 调用各大 LLM API 批量生成符合规范的高质量数据。整个过程无需人工介入,数据自动去重、自动验证、自动存储。
Bespoke Labs 团队本身就是这一方法论的最佳实践者。他们使用 Curator 生成了多个知名数据集:
Curator 的设计哲学是声明式 + 流水线:用户只需描述"要什么",工具负责"怎么做"。
Curator 支持调用几乎所有主流 LLM 服务商:
底层通过 LiteLLM 库实现统一封装,用户无需关心各平台 API 差异,只需指定 model_name 即可切换后端。Batch 模式下,请求自动分批、结果自动聚合,支持断点续传——即使中途网络中断,也无需从头开始。
这是 Curator 最具技术含量的功能。通过 Pydantic 模型定义数据结构,Curator 利用 Instructor 库强制 LLM 输出符合 schema 的 JSON:
from pydantic import BaseModel
from bespokelabs import curator
class Poem(BaseModel):
title: str
content: str
mood: str
llm = curator.LLM(model_name="gpt-4o-mini", response_format=Poem)
dataset = llm(dataset=huggingface_dataset, prompt="{poem_theme}")
这一功能在信息抽取、多轮对话生成、函数调用数据合成等场景中极为有用,也是 Curator 与通用 LLM 调用库(如 LiteLLM)拉开差距的核心竞争力。
Curator 支持构建双智能体对话系统:一个 Agent 作为"播种者"(Seeder),另一个作为"响应者"(Partner),自动进行多轮对话。可用于生成对话数据集、研究 Agent 行为模式等:
seeder = curator.Agent(name="seeder", model_name="claude-sonnet-4-20250514")
partner = curator.Agent(name="partner", model_name="gpt-4o-mini")
agents = curator.MultiTurnAgents(seeder=seeder, partner=partner, max_length=6, seed_message="请介绍量子计算")
responses = agents(dataset=seed_data)
Curator 内置 Code Executor,支持在隔离的沙箱环境中运行 LLM 生成的代码,并验证执行结果。这意味着可以生成"数学题 + 答案 + 验证过程"的完整数据集,确保数据的正确性——这对训练数学推理模型至关重要。
Curator 不仅生成数据,还能直接对接微调流程:
这意味着 Curator 打通了"数据生成 → 数据验证 → 模型微调"的完整闭环。
Curator 提供可选的 Web Viewer,通过 curator-viewer 命令启动本地 Web 界面,可视化查看生成数据集的统计信息、样本内容、token 消耗等。对于大规模数据生产任务,这个界面能帮助快速掌握任务进度。
Curator 的代码库组织非常清晰:
src/bespokelabs/curator/
├── llm/ # LLM 调用抽象层(LiteLLM + Instructor)
├── request_processor/ # 请求处理(online/batch/offline 三种模式)
├── agent/ # Agent 多轮对话实现
├── blocks/ # RAFT、SimpleStrat 等数据合成策略
├── code_executor/ # 代码执行与沙箱
├── finetune/ # 微调集成(Fireworks、Tinker)
├── status_tracker/ # 任务状态追踪(tqdm 进度条 + SQLite)
├── viewer/ # Web 可视化界面(Next.js)
├── db.py # SQLite 元数据库(断点续传)
└── cost.py # API 成本计算
请求处理流水线是性能核心:支持在线实时推理(online)、批量异步推理(batch)、离线本地推理(offline)三种模式。Batch 模式利用各平台的批量 API,价格比实时 API 低 50% 以上,是数据生成的首选模式。
元数据管理:所有 LLM 调用记录存储在本地 SQLite 数据库(默认 ~/.cache/bespoke-curator/),包括请求内容、响应、token 消耗、成本等。这不仅支持断点续传,还便于成本分析和数据审计。
优点:
局限性:
适用人群:
Curator 的成功在于它填补了 LLM 后训练数据生产领域的空白。在此之前,团队要么用内部脚本拼凑,要么花大钱买商业数据集。Curator 提供了标准化、流水线化、工程化的解决方案,让数据生产从手工作坊升级为自动化工厂。
从 2025 年 3 月 OpenThoughts2-1M 引爆 HuggingFace 社区,到 2026 年持续迭代(Fireworks 集成、Tinker 集成、Gemini Batch 支持),Curator 的进化路径清晰:从数据生成工具 → 数据+微调一体化平台。
随着开源社区对其认可度不断提升,Curator 正在成为 AI 后训练数据管线的事实标准之一。
| 维度 | 评价 |
|---|---|
| 定位 | LLM 后训练数据生产流水线 |
| 核心价值 | 批量 LLM 推理 + 结构化数据提取 + 数据验证 |
| 技术亮点 | Pydantic 驱动的数据结构化、LiteLLM 统一抽象、SQLite 断点续传 |
| 上手难度 | 低(Python 开发者 30 分钟上手) |
| 适用规模 | 研究团队到中型企业均适用 |
| Stars | 1686 |
Bespoke Curator 是 AI 数据工程领域的一股清流——它不追求大模型本身,而是专注于"让大模型学会更好地回答"这一环。如果你正在训练或微调 LLMs,这款工具值得加入你的技术栈。