AI 博客

Distilabel、Curator、NeMo Data Designer 与 Augmentoolkit 对比

这四个框架都能把 LLM 调用编排成规模化的数据集,而在这条轴上,它们的差别只是手感。真正决定结果的那条轴,是这个工具能不能把一个核验器放进循环里去执行——因为一个与生成器同门的评判器会滤掉你一半的行,却没有增加任何信息。四者之中只有一个把程序化校验当成一级阶段。

作者 智能体 AI 维基 24 分钟读完

按「编排 LLM 调用有多顺手」来挑合成数据框架,你会挑错,因为这四个都把那件事做得不错,差别只是手感。决定你的数据集值不值得拿去训练的那个阶段是核验——而多数教程里的默认配置,是一个与生成器同门的 LLM 评判器:它滤掉你一半的行,抬高你的质量指标,并且恰好没有增加任何信息。四者之中只有一个把可执行的校验器当成一级流水线阶段,而如果你在生成工具调用或多步智能体数据,那就是全部的选择标准。

一眼概览

四个仍在活跃使用的开源框架,四个不同的重心。请先读最后一栏。

框架维护方 / 许可证形状正确性从哪里来
Distilabel Argilla(Hugging Face)· Apache-2.0 带类型的 Step / Task / Pipeline 图;生成器与评判器都是可组合的节点。 AI 反馈。评判器与偏好打分是内置原语;可执行的检查要你自己加。
Bespoke Curator Bespoke Labs · Apache-2.0 一个 curator.LLM 类,带 prompt() 与 parse();其余全是 Python。 没有内置的。parse() 是你放校验的地方,而它跑在你自己的进程里。
NeMo Data Designer NVIDIA · Apache-2.0 声明式配置:统计采样器加上 LLM 列,并带有依赖感知的生成顺序。 Python、SQL 与自定义校验器作为声明出来的阶段,旁边还并排放着 LLM 评判打分。
Augmentoolkit 社区 · MIT 七条有明确主张的端到端流水线(事实、RAG、分类器自举、纠错、GRPO),你配置它们而不是组合它们。 烤进了每条流水线里。你继承它对「什么是好行」的定义,而且不容易改。

有一条维护事实属于这张表却放不进去:Distilabel 的 README 现在写明,原作者们已经离开,一群社区成员加入成为协作者,最新的修复在 develop 分支上。它没有被弃置,而且使用广泛;但如果你是在为一个以两年计的后训练项目选基础设施,这句话与「缺一项功能」是同等分量的一条数据。

所有人都在优化的那个阶段,和真正起决定作用的那个

The five stages of a synthetic data pipeline, with the verifier highlighted A left-to-right pipeline: seed or schema, generation, verification, selection, and export to training. The generation stage is where all four tools compete and is labelled commodity; the verification stage is highlighted as the stage that decides whether the dataset is worth anything, and is the stage the tools differ on. A feedback arrow runs from verification back to generation. ONE PIPELINE, FIVE STAGES 1 · Seed documents, a schema, a sampler, or nothing yours to supply 2 · Generation prompt, call, retry, cache, batch, parse all four do this well 3 · Verification does this row hold up against something outside the generator? execute · assert · judge the whole decision 4 · Selection filter, rank, dedupe, pair for preference as good as stage 3 5 · Train SFT, DPO, RL rollouts rejection sampling: regenerate what failed Stage 2 is a commodity. Stage 3 is the product. A tool that only orchestrates generation hands you stage 3 as an exercise — which is fine if you already have a checker, and fatal if your plan was to let an LLM judge decide. For tool-calling and multi-step agent data, the only verification that discriminates is one that runs the call and compares the effect.
生成是大路货,四个框架都做得好。核验才是它们分岔的地方,而正是第三阶段给第四、第五阶段设了上限。

这些工具中的每一个被造出来,都是因为第二阶段烦人:速率限制、重试、批量 API、结构化输出解析,以及在第 380,000 行挂掉的一次 400,000 行运行的恢复。Curator 的整个卖点就是它在任何规模上都处理好缓存、异步与故障恢复;Distilabel 的卖点是流水线是一张你能推理的带类型的图;NeMo Data Designer 的卖点是你声明一份配置,它替你处理执行、批处理与令牌指标。这三个说法都成立,而它们没有一个碰到「这些行对不对」这个问题。

第三阶段之所以设定上限,原因是算术而不是哲学。拒绝采样——生成 n 条,留下通过的,其余重试——是让合成后训练数据真正管用起来的那项技术,而它的产出率完全是「过滤器辨别力有多强」的函数。一个没有辨别力的过滤器不会产出一个更小更好的数据集;它产出的是一个更小的数据集,错误率不变,而所有者更自信了。

基准真相从哪里来

Three sources of ground truth in a synthetic data pipeline Three columns comparing a same-family LLM judge, a cross-family judge or human sample, and an executable verifier. The first measures style agreement and adds no information, the second is a weak independent signal, and the third is the only one that survives contact with agentic data. NO INFORMATION WEAK SIGNAL DECIDES Same-family judge The generator's sibling scores the generator's output on a rubric. Measures: agreement with its own priors. Filters 50% of rows and raises the metric, not Cross-family or human A different model family, or a small human-labelled calibration sample. Measures: something, imperfectly, with known disagreement rate. Cost scales with rows. Executable verifier Run the code. Run the query. Make the tool call and compare the effect. Measures: whether the row is true. The only kind that works for agent trajectories. the quality. Use it to calibrate the verifier, not to replace it. Needs an environment, which is the real cost of the field.
默认是第一栏。智能体数据需要的是第三栏。第二栏是用来校准第三栏的,不是用来替代它的。

请把三栏合起来看,因为要紧的是这个对照。一个同门评判器给它兄弟的输出打分,测的是与它自己先验的一致程度——它会稳定地拒掉那些不寻常的行、接受那些流畅的行,而这两件事与正确性的相关性都很弱,与文风的相关性都很强。一个跨家族的评判器,或一小份人工标注的样本,是一个确有独立性、且有可测量分歧率的信号,这让它适合做校准,而按行计价很贵。一个可执行的核验器——把生成的代码跑起来、把 SQL 对着一张真表执行、把工具调用发出去并比对结果状态——是三者中唯一回答「这一行是不是真的」而不是「它看起来像不像评判器见过的那些行」的。

对智能体数据来说,这道差距不是程度问题。一条合成的工具调用轨迹,要么是一串到达目标状态的调用,要么不是;而任何评分标准的阅读都告诉不了你是哪一种,因为那个看起来很像样的错调用和那个正确的调用,差的是一个参数。这与支配测试时计算的那处不对称是同一处:核验比生成更便宜、更可靠——前提是你有个能核验的东西。这意味着这个领域真正的成本不是令牌,而是核验器所需要的那个环境。

横向对比

Verification and scale capabilities across four synthetic data frameworks A matrix with Distilabel, Bespoke Curator, NeMo Data Designer and Augmentoolkit as rows, scored across four columns: executable validators, built-in LLM judge, scale and fault recovery, and turnkey end-to-end pipelines. NeMo Data Designer is strongest on executable validators, Curator on scale, Augmentoolkit on turnkey pipelines, and Distilabel on judges. Where each framework is strongest EXECUTABLE VALIDATORS BUILT-IN JUDGE SCALE / RECOVERY TURNKEY PIPELINES Distilabel Weak — bring your own Strong Medium Medium — recipes Bespoke Curator Weak — parse() is yours Weak Strong Weak — examples only NeMo Data Designer Strong — Python, SQL Strong Medium — via Curator Medium Augmentoolkit Medium — per pipeline Medium Weak Strong Strong Medium Weak / absent Read column one first. It is the only column whose weakness cannot be fixed by writing more of your own code — because if the framework cannot run a validator, your validator has to run outside the pipeline, and then the rejection-sampling loop stops being a loop.
第一栏是唯一一处你无法在流水线内部靠写代码绕过去的弱项。

可执行校验

NeMo Data Designer 是唯一把这件事当成声明阶段来处理的:Python 或 SQL 里的校验,加上自定义校验器,就摆在配置里 LLM 列的旁边、评判打分的旁边,于是一条没通过的行对生成顺序是可见的,并且可以被重新生成。Augmentoolkit 有正确性检查,但它们内在于它各自的流水线——事实流水线知道一对好的回忆样本长什么样,而你继承那个定义。Distilabel 和 Curator 都允许你用 Python 写任何你想要的检查,作为一个 step 或者写在 parse() 里;区别在于,你自己写的检查就跑在你放它的地方,而如果它需要一个容器、一个数据库或一个浏览器,它就不再位于这个框架的重试与缓存循环之内了。

规模与恢复

Curator 在这里最强,而这正是人们伸手去拿它的原因:OpenAI 原生与 LiteLLM 后端、面向本地模型的 vLLM 与 Ollama、四家厂商的批量 API、把缓存与故障恢复当成设计目标而非附加功能,还有一个可以看着数据流进来的查看器。Distilabel 的扩展性够用,而它带类型的图让长流水线可读。NeMo Data Designer 把扩展这条故事线靠在 NeMo Curator 上,如果你已经在那套技术栈里这是连贯的,如果不在那就是一项额外依赖。Augmentoolkit 明确是为「在你自己的硬件上、不需要外部 API key 就能跑」而造的,那是一次刻意用吞吐换独立性的交易。

拿到第一个可用数据集要多久

把顺序倒过来。Augmentoolkit 今天就能拿一个文档目录给你一份微调集,因为它已经把每个决定都替你做了;Curator 要一个下午,然后精确产出你指定的东西;Distilabel 带着配方坐在两者之间;NeMo Data Designer 要求你先把数据表达成一个 schema,那是最慢的起步,也是「数据集需要改一列然后重新生成」时回本的那一种。

当你需要的是 RL 而不是 SFT 时会怎样

这是这个领域正在移动的方向,也是四者分岔最大的地方。基于可核验奖励的强化学习需要的是一个环境,不是一个数据集——核验器必须在训练期间可调用,而不只是在生成期间。Augmentoolkit 交付了一条实验性的 GRPO 流水线,Curator 也加了训练器集成,可以从整理好的数据走到一个 LoRA 微调;但四者都不是环境框架,而把一个合成数据工具当成环境框架,是这个领域里最常见的架构错误。

什么时候选哪个

情形选因为
工具调用或多步智能体数据 NeMo Data Designer 声明出来的 Python/SQL 校验器把检查留在重新生成的循环里,而那是拒绝采样保持便宜的唯一方式。
对着托管 API 生成数百万行 Bespoke Curator 缓存、批量 API 与故障恢复就是它的产品。把你的核验器写在 parse() 里,并接受它跑在进程内。
偏好对与 AI 反馈数据集 Distilabel 评判器与成对打分是一级公民,而通往 Argilla 人工复核的路很短。请先读那条维护说明。
本周就要把领域文档变成一次微调 Augmentoolkit 有明确主张的端到端流水线,并可用本地模型运行。你用控制权换今天就能用的数据集。
你没有核验器,也没办法造一个 暂时都不选 把这周花在核验器上。这些框架中的每一个都会把你带来的辨别力放大,包括零。

常见问题

LLM 评判器有没有可能是对的过滤器?

有——在那些不存在可执行检查的主观轴上,比如语气、有用性或指令遵循;并且前提是这个评判器与生成器来自不同家族,而且已经对着一份人工标注样本校准过、并报出了一致率。站不住脚的做法,是在「本来程序就能判定」的数据上,把一个同门评判器当作主要的正确性过滤器。

我能把其中两个组合起来吗?

很常见,而自然的切分是用 Curator 做生成以获得吞吐,把核验放在它外面。代价是你的拒绝采样循环变成了两个系统加一个中间队列,所以在投入之前先测产出率——如果你的通过率很高,那条更简单的单框架路线通常总体上更便宜。

「Apache-2.0」是不是意味着我可以在这些输出上训练?

框架的许可证管的是框架。你能拿生成出来的行做什么,由产出它们的那个模型的条款决定,那是另一份文件,而且往往更严。请按运行、而不是按框架去核对模型条款。

我到底需要多少合成数据?

比教程暗示的更少,而约束几乎总是多样性而不是体量。一条从单一种子模板生成 100,000 行的流水线,产出的是同一行被生成了十万次;第一阶段的播种策略,比第二阶段的生成吞吐更值得你的注意力。

考虑到维护方变动,Distilabel 还适合在上面构建吗?

对以月计的项目来说适合——它是 Apache-2.0、部署广泛,而且有活跃的社区协作者。对以多年计的项目,请像对待任何一个经历了维护方交接的依赖那样:钉住它、把你依赖的那些 step 内化进来,并搞清楚换掉它要花多少代价。

延伸阅读

本站相关:

项目来源: