使用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提升智慧體工具呼叫準確性。