Data Turnstile 开源|给 0.6B 小模型喂函数调用数据,它能干翻 32B
上周 arXiv 上挂出来一篇论文,标题叫 Data Turnstile,看名字像个数据流水线工具。摘要里有两个数字:0.6B 的小模型在函数调用 benchmark 上追平了 4B 模型,1.7B 的模型在特定 domain 上超过了 32B 的对手。方法是用高质量合成训练数据做微调。
做 Agent 部署的人会留意到一个小模型困境。部署起来好处明显——低延迟、低成本、能跑在本地设备上,数据不用出设备——但工具调用能力跟不上。给 GPT-4o 一个 function calling schema 它能接住,换成 3B 以下的模型,经常连参数格式都填不对。问题卡在训练数据上。函数调用这类任务的高质量标注数据太难拿了,人工写对话又贵又慢,大模型生成的数据噪音大,小模型没有富余 capacity 去消化那些脏数据。
Data Turnstile 解决的是这个环节。它是一个开源的合成数据生成框架。把 API 的 spec 丢进去,它会自动生成多轮对话的训练样本,中间带校验和错误反馈循环,确保数据能用。论文里给出的数据集覆盖了 1000+ API 和 10 万+ 多轮交互——这个体量靠人工标注基本不可能。
在 BFCL 单轮函数调用 benchmark 上,用 Turnstile 数据微调过的 Qwen3-0.6B(不打开 thinking 模式)达到了 75.9% 整体准确率,比同型号开了 thinking 的 base 模型高出 8.5 个百分点,追平了打开 thinking 的 Qwen3-1.7B(78.4%)和 Qwen3-4B(79.9%)。0.6B 追 4B,差了 7 倍参数量,分数在同一档。
在多轮 Agent benchmark τ²-bench 的 Telecom 域上,Turnstile 训练过的 Qwen3-1.7B 拿到了 31.1% pass@1,比 base 模型的 6.6% 提升了 4.7 倍,并超过了 Qwen2.5-32B-Instruct 的 27.4%——32B 模型比它大 19 倍。0.6B 版本也达到了 24.6%,是 base 的 7 倍,逼近那个 32B 模型(53 倍参数量差)。
小模型在 tool use 上的表现主要受限于训练数据质量。数据质量到位之后,参数量鸿沟可以被大幅压缩。
Turnstile 把多轮工具调用拆成受控的 stepwise 生成,每一轮有校验,错了返回修正信号,确保最终产出的数据格式正确、逻辑完整、API 调用链合理。这个校验加纠错的循环是它跟简单蒸馏的主要区别。
现在 Turnstile 已经开源,数据集也一并放出。CC BY-NC-SA 4.0 协议,商用场景需要确认一下边界。论文里给的工作流是先定义自己的 API spec,框架生成适配数据,再用这些数据微调选好的小模型——整套链条是闭环的。
做 Agent 落地的人会在意这个方向。大模型做 tool use 已经没有悬念,但能塞进生产流程、跑在边缘设备、响应时间压到百毫秒级别的,大概率不会是 70B 以上的大家伙。小模型的函数调用能力如果能拉到及格线以上,整个 Agent 产品的架构选型都会不一样。
论文里的 benchmark 集中在几个特定 domain,数据覆盖面是否足够泛化到任意 API schema 还需要社区验证。但这个方向的核心是先把数据质量这个瓶颈解决掉。Data Turnstile 是冲这件事来的,结果摆在那里。