桃子桃子快讯
返回首页
工具

Autosynth:用强弱模型过滤生成合成数据的开源工具

开发者发布开源工具 Autosynth,通过强/弱模型打分对比并结合自我反思循环,自动产出可用于 LLM 训练的合成数据…

2026.07.04 · 周六4 分钟阅读

开发者近日在 Hacker News 发布并开源了合成数据生成框架 Autosynth。该项目受 Meta FAIR《Autodata / Agentic Self-Instruct》论文启发,重写为与领域无关的通用框架:所有业务相关逻辑封装在小型 Python 插件中,运行时统一,可用于生成数学应用题、工单分类数据,或从自有文档抽取 QA 对。

核心思路:强弱模型对比筛选

传统自蒸馏流程容易出现「弱模型教弱模型」的问题,Autosynth 引入强/弱双求解器机制:每个候选样本先由弱模型与强模型各尝试 N 次,再由 Judge 模型按 LLM 生成的评分细则打分;只有当强模型明显跑赢弱模型,且样本本身通过质量审计时,才会被保留为合格样本。被拒绝的样本会进入「反思」步骤,形成反馈用于下一轮迭代。这种「以强带弱、以对比驱动筛选」的设计是项目区别于普通 self-instruct 流程的关键。

五步循环与三种接受模式

系统对每个源项目循环运行以下五步,直至样本被接受或达到最大轮次:

  • Challenger 提出候选(输入、参考答案、评分细则)。
  • Quality 审计候选数据是否有明显问题。
  • 弱求解器与强求解器分别尝试。
  • Judge 按评分细则给出每轮得分。
  • Evaluator 决定接受/拒绝;拒绝时由 Reflector 写出下一轮反馈。

针对不同任务,项目提供三种接受模式,可在任务粒度切换:

  • rubric(默认):按评分细则阈值与强弱差距判定,适合质量有梯度的开放性任务。
  • verifiable:领域内置 verify() 自动校验答案,跳过 Judge,适合数学、代码等可机器判定的场景。
  • judge:由循环 Judge 模型直接读取每轮强弱模式决定接受或改进,适合无法设定固定阈值的开放式任务。

接入方式与生态适配

LLM 调用通过 LiteLLM 转发,官方支持 OpenAI、Anthropic 等主流厂商,可按角色混搭不同 provider,例如弱求解器用 GPT-4o-mini、强求解器用 GPT-4o、Challenger/Judge 用 Claude Haiku 4.5,以最大化成本与质量差距。配置文件支持 ${VAR}${VAR:default} 变量替换,便于对接本地 Ollama 等服务。项目内置 CLI:runresumestatusinspect-runexportmetaoptinit-domain 等命令覆盖了从生成、续跑到导出的全流程,导出格式支持 JSONL 与 Hugging Face Dataset。

元优化与领域插件

更高阶的 autosynth metaopt 子命令实现了论文中的二级循环:在多代之间演化编排器提示,仅当子代在验证集上超过父代时才接受变更,为「自动改进自动数据生成器」提供了实验入口。领域侧则通过继承 DomainAdapter 编写六个必要方法(数据加载、生成提示、校验、求解提示、质量提示、判分提示)即可接入;可校验答案的场景可额外覆写 verify() 并将 default_acceptance_mode 设为 "verifiable"

当前状态与局限

项目自我标注为 alpha,API 仍可能调整;依赖者在文档中建议 pin 某个 commit。完整运行产物(SQLite 数据库 run.db、配置快照、导出文件)统一在 outputs/<run_id>/ 下管理,数据库为单一可信源,便于分享与恢复。不含 API key 的 mock demo 约 1 秒内即可跑通全流程,便于先了解机制再接入真实模型。

信源