新上线今天0 投票
用 SFT 和 DPO 在 Amazon SageMaker AI 上提升 Agent 工具调用准确率
在构建 AI Agent 时,工具调用(Tool Calling)的准确性直接影响智能体的可靠性和用户体验。大模型固然强大,但小模型(SLM)在成本与延迟上更具优势,然而其工具调用能力往往不足。本文将介绍如何通过**监督微调(SFT)与直接偏好优化(DPO)**的组合策略,在 Amazon SageMaker AI 上高效提升小模型的工具调用准确率,并结合评估方法进行量化对比。
为什么需要 SFT + DPO?
基础小模型通常缺乏对特定工具 API 的理解,直接使用会出现参数错误、意图误判等问题。SFT 可以让模型学习格式正确的工具调用样例,而 DPO 则进一步通过偏好数据优化模型在多个候选调用中选择更优方案的能力。两者结合,既能教会模型“怎么写”,也能教会模型“怎么选”。
实践步骤
1. 准备训练数据
- SFT 数据:包含用户指令与正确的工具调用序列(JSON 格式),例如:
用户:查询北京的天气 工具调用:get_weather(city="北京") - DPO 数据:每组包含 prompt、被选中的正确调用(chosen)和被拒绝的错误调用(rejected),让模型学会偏好更准确的调用。
2. 在 SageMaker AI 上启动训练
使用 Amazon SageMaker 的 Training Job 功能,只需指定训练脚本和数据集 S3 路径,无需管理底层基础设施。示例中采用 Hugging Face 的 Transformers 与 TRL 库,实现 SFT 与 DPO 的训练循环。
3. 评估工具调用准确率
评估是数据驱动决策的关键。通过构建测试集,计算以下指标:
- 精确匹配率:工具调用与标准答案完全一致的比例
- 参数正确率:调用名称正确且参数键值完全匹配的比例
- 意图准确率:工具调用符合用户意图的比例(允许参数值合理近似)
实验结果对比
以某 3B 参数小模型为例,对比不同训练策略:
| 模型变体 | 精确匹配率 | 参数正确率 |
|---|---|---|
| 基础模型 | 12.3% | 18.7% |
| 仅 SFT | 58.1% | 72.4% |
| SFT + DPO | 76.9% | 88.2% |
结果表明,SFT 显著提升了基础能力,而 DPO 进一步缩小了与完美调用之间的差距,尤其在参数准确性上提升明显。
行业启示
对于资源受限的场景(如边缘设备、实时对话系统),小模型配合 SFT+DPO 微调是一种极具性价比的 Agent 构建方案。Amazon SageMaker AI 简化了训练流程,让开发者可以更专注于数据与算法优化。未来,随着更多工具调用数据集的开放,这一技术路线有望成为 Agent 开发的标准实践。
