开源函数调用数据框架 小模型追上大模型
开源函数调用数据框架 小模型追上大模型

做 Agent 的团队基本都撞过同一堵墙:小模型在工具调用任务上的表现,和大模型差一大截。差在模型结构吗?不完全是。真正卡住的是训练数据——函数调用数据稀缺,已有的数据噪声又大,小模型本来参数就少,学到的还都是错误模式。想用大模型蒸馏数据,成本高、速度慢,还得处理授权问题。Data Turnstile 这个开源框架走的是另一条路:不依赖大模型,自己造高质量的函数调用训练数据。
数据生成的思路变了
过去合成函数调用数据,常见做法是一次性让模型生成大量样本,然后简单过滤。问题是工具调用这种任务,样本之间是有关联的——一个多轮交互里,上一轮的参数选择会影响下一轮,一次性生成很难保证内部一致性,噪声就这么混进去了。
Turnstile 的做法是把多轮工具交互拆成受约束的分步生成:每一步生成后立即验证,发现错误马上反馈,再进入下一步。同时支持用户自定义 API 规范,意味着你可以按照自己系统的工具定义来生成数据,交互复杂度、输出正确性这些维度都可以精细控制。论文实验里,用这套数据微调的 Qwen3-0.6B,单轮任务准确率从 67.4% 提升到 75.9%,逼近更大的模型;生成的数据覆盖了 10 万条以上的多轮交互。
验证环节才是关键
这里最值得琢磨的是"分步验证"这个设计。合成数据的质量瓶颈从来不是生成能力,而是没有人在生成过程中把关。Turnstile 把验证内嵌到了生成流程里,相当于给数据生成环节加了一个自动测试——每步产出都要过检查,错了就反馈重来。对做数据管线的团队来说,这个思路比具体框架更有参考价值:与其事后清洗海量合成数据,不如在生成过程中就把错误截住。
对不打算用这个框架的团队,它也有参考意义。函数调用数据的难点在于结构约束——参数类型、必填字段、调用顺序——这些约束是可以用规则验证的,不一定非要靠模型自己判断对错。把规则验证放进数据生成管线,小模型微调的效果提升是立竿见影的。
代价是延迟,适用场景要分清
这个方案不是没有成本。分步验证意味着每一轮生成都要停下来检查,数据生成的整体延迟会上升。对离线微调来说这不是问题,但如果有人想把它用到实时代理部署上——比如在低资源设备上动态生成训练数据——验证环节的延迟就要认真考虑。目前没有公开信息说明验证环节能不能异步化或者缓存化,也没有动态 API 规范更新的支持情况。
另外一个没被回答的问题是:验证反馈会不会让模型对上下文产生过度依赖。多轮工具调用里,模型可能学会了"跟着验证反馈走",而不是真正理解状态变化。这会表现在长对话场景——对话拉长之后,状态保持能力是否还能撑住,公开数据里没有验证。
我的判断是,这类框架的价值在于把"数据质量"重新变成了可工程化的问题。过去小模型工具调用能力弱,团队要么接受现状,要么花大价钱蒸馏大模型;现在至少多了一个选项:用可控的合成数据管线,自己把数据质量做上去。它不会完全替代人工标注——目前也没有任何证据支持这一点——但对于工具调用这类结构性强、规则明确的任务,规则验证驱动的数据生成,确实比堆参数更划算。
关于维基框架
维基框架关注企业应用开发中的长期维护问题。在实际项目中,业务系统往往同时涉及权限、微服务、接口协议、部署环境等复杂因素,因此我们希望提供一套更容易扩展和维护的基础框架。
- 官网:https://framewiki.com
- Gitee:https://gitee.com/wiki-framework
- GitHub:https://github.com/wiki-framework
- 示例项目:https://gitee.com/cdkjframework/framewiki-example
- 📄 许可证:MulanPSL-2.0(木兰宽松许可证,第2版)