用 SFT + DPO 在 Amazon SageMaker AI 上提升 Agent 工具调用准确率
本文介绍如何结合监督微调(SFT)和直接偏好优化(DPO)来提升小语言模型的工具调用准确率,使用 Amazon SageMaker AI 训练作业简化基础设施管理。包含数据集准备、训练流程、评估方法及结果对比,适合希望将 Agent 应用从试点推向生产的团队。
一句话看懂
AWS 发布教程,演示如何用 SFT + DPO 在 SageMaker AI 上微调 Qwen3 1.7B,提升 Agent 工具调用准确率,并开源完整代码。
详细发生了什么
AI Agent 的可靠性很大程度上取决于工具调用的准确性——选错工具、参数格式错误或打断工作流都会导致任务失败率上升。AWS 这篇博客提供了一个端到端的解决方案:使用监督微调(SFT)和直接偏好优化(DPO)两种方法,在 Amazon SageMaker AI 上微调 Qwen3 1.7B 小语言模型,以提升其工具调用能力。
SFT 通过高质量标注数据教会模型识别工具特定的语言和约束;DPO 则通过“喜欢这个、不喜欢那个”的偏好数据,在不使用奖励模型的情况下对齐模型输出。两者结合形成鲁棒的微调框架。
教程使用 NVIDIA 的 When2Call 数据集,包含 15,000 条 SFT 样本和 9,000 条 DPO 偏好样本,以及 3,652 条 MCQ 测试集和 300 条 LLM-as-a-judge 评估集。训练在单个 ml.p4d.24xlarge 实例上完成,所有代码和脚本已开源在 GitHub。
中文圈视角
对国内开发者来说,这篇教程有几点值得关注:
-
国产模型也能用类似方法:虽然示例用的是 Qwen3 1.7B(阿里通义千问系列),但方法完全通用。国内开发者可以用类似流程微调 DeepSeek、Baichuan 等模型,提升它们在工具调用场景的表现。
-
基础设施对比:AWS SageMaker AI 是托管服务,国内对应产品如阿里云 PAI、华为云 ModelArts 也提供类似功能。如果你已经在用国内云,可以寻找对应教程迁移。
-
数据集可用性:NVIDIA When2Call 数据集是英文的,但工具调用场景本身对语言依赖较小。中文场景下,可以基于此数据集翻译或自行构建中文工具调用数据集。
-
合规提醒:使用 SageMaker AI 训练涉及数据出境问题。如果数据敏感,建议使用国内云服务或本地部署方案。
几条值得记住的细节
- 使用 Qwen3 1.7B 模型,训练在单张 ml.p4d.24xlarge(含 8 张 A100 GPU)上完成
- SFT 数据集 15,000 条,DPO 偏好数据集 9,000 条,测试集 3,652 条
- DPO 不需要奖励模型,直接使用“chosen/rejected”成对数据优化
- 训练指标通过 MLflow 记录,方便对比不同变体
- 完整代码在 GitHub 仓库
amazon-sagemaker-generativeai的function-calling-sft-dpo目录
一句话总结
如果你想提升 Agent 的工具调用准确率,这篇教程提供了可复现的 SFT + DPO 方案,且代码开源,值得一试。