使用SFT和DPO在Amazon SageMaker AI上提高智能体的工具调用准确性
本文介绍了如何结合监督微调(SFT)和直接偏好优化(DPO)来提升小型语言模型(SLM)的工具调用准确性。示例使用Amazon SageMaker AI训练作业,并基于Qwen3 1.7B模型和When2Call数据集进行微调。文章还涵盖了环境设置、数据准备、训练与评估过程。
智能体在自主处理复杂多步骤任务时,工具调用准确性至关重要。错误调用工具或参数格式错误会导致任务延长、错误率上升、支持成本增加和用户体验下降。随着越来越多的组织将智能体应用从试点转向生产,确保智能体为每个请求选择正确工具是实现可靠自动化的关键。
本文展示了如何结合监督微调(SFT)和直接偏好优化(DPO)来提升小型语言模型(SLM)的工具调用准确性。以Qwen3 1.7B模型为例,利用Amazon SageMaker AI训练作业进行微调,无需管理底层基础设施。同时,还介绍了如何评估工具调用准确性,并对比基础模型与多种微调变体,从而做出数据驱动的质量决策。
监督微调(SFT)通过构建高质量数据集,提供模型应如何执行任务或与特定工具交互的明确示例,特别适合教授模型识别工具特有语言、命令和约束的细微差别。直接偏好优化(DPO)则将人工反馈或预定义目标直接融入训练循环,通过强调对某些响应的偏好而非其他,使模型输出更贴近目标结果。DPO训练数据包含“喜欢这个,不喜欢那个”的偏好,无需奖励函数或奖励模型即可实现与强化学习相同的优化目标,降低了资源需求和训练时间。
本例使用NVIDIA发布的When2Call数据集,该基准专门用于评估模型在工具调用中的决策能力,包括何时生成工具调用、何时追问、何时表示无法回答以及工具不可用时的处理。数据集包含三个部分:SFT训练集(15000样本)、DPO偏好集(9000样本)和测试集(含多选题和LLM评判子集)。在预处理中,需将工具列表构建为系统提示并添加到消息列表中,DPO数据还需将chosen_response和rejected_response列重命名为chosen和rejected。
环境设置要求AWS账户、IAM角色、开发环境(推荐SageMaker Studio)以及MLflow实验跟踪。使用ml.p4d.24xlarge实例进行训练。数据准备完成后,保存至Amazon S3供训练使用。SFT阶段基于Spectrum微调配方,可修改模型和训练参数。示例脚本包含模型参数、数据集路径、训练超参数等配置。
训练完成后,需评估模型在测试集上的表现,对比基础模型与微调后的变体。通过量化指标(如准确率)判断改进效果,从而做出是否部署模型的决策。完整代码和配方可在GitHub仓库中找到。
以上内容涵盖了从问题背景到方法、数据、实验步骤和评估的完整流程,帮助读者在实际项目中应用SFT和DPO提升智能体工具调用准确性。