SFTとDPOによるAmazon SageMaker AI上でのエージェントのツール呼び出し精度向上
この記事では、教師あり微調整(SFT)と直接選好最適化(DPO)を組み合わせて、小規模言語モデル(SLM)のツール呼び出し精度を向上させる方法を学びます。例としてAmazon SageMaker AIトレーニングジョブを使用し、Qwen3 1.7BモデルとWhen2Callデータセットをベースに微調整を行います。環境設定、データ準備、トレーニング、評価プロセスについても説明します。
AIエージェントが複雑なマルチステップタスクを自律的に処理する際、ツール呼び出しの精度は極めて重要です。誤ったツールの選択やパラメータ形式の間違いは、タスク完了時間の増加、エラー率の上昇、サポートコストの増大、ユーザー体験の低下を招きます。多くの組織がエージェントアプリケーションをパイロット段階から本番環境へ移行する中、各リクエストに適切なツールを選択できるエージェントの実現は、信頼性の高い自動化に不可欠です。
本記事では、教師あり微調整(SFT)と直接選好最適化(DPO)を組み合わせて、小規模言語モデル(SLM)のツール呼び出し精度を向上させる方法を解説します。例としてQwen3 1.7Bモデルを使用し、Amazon SageMaker AIトレーニングジョブを活用することでインフラ管理の手間を省きます。また、ツール呼び出し精度の評価方法と、ベースモデルと複数の微調整バリアントを比較する手法についても説明します。
教師あり微調整(SFT)は、モデルの意図した機能に密接に沿った高品質データセットを厳選し、特定のタスクやツールとのインタラクションの明示的な例を提供します。この手法は、ツール固有の言語、コマンド、制約のニュアンスをモデルに認識させるのに特に効果的です。直接選好最適化(DPO)は、人間のフィードバックや事前定義された目的をトレーニングループに直接組み込み、特定の応答や行動を他のものより優先することで、モデルの出力を目標結果に近づけます。DPOのトレーニングデータには「これが良い、あれは良くない」という選好が含まれており、報酬関数や報酬モデルなしで強化学習と同じ目標を最適化でき、リソース要件とトレーニング時間を削減します。
本例では、NVIDIAが公開したWhen2Callデータセットを使用します。このベンチマークは、ツール呼び出しの意思決定を評価するために設計されており、ツール呼び出しを生成すべきタイミング、フォローアップ質問が必要な場合、提供されたツールでは回答できない場合の処理、ツール呼び出しができない場合の対応などが含まれます。データセットは、SFT用(15,000サンプル)、DPO用(9,000サンプル)、テスト用(多肢選択式およびLLM判定サブセット)の3部構成です。前処理では、利用可能なツールリストを含むシステムプロンプトを構築し、元のデータセットのメッセージリストに追加します。DPOデータは、chosen_response列とrejected_response列をchosenおよびrejectedにリネームする必要があります。
環境設定には、AWSアカウント、IAMロール、開発環境(推奨はSageMaker Studio)、MLflowによる実験追跡が必要です。トレーニングにはml.p4d.24xlargeインスタンスを使用します。データ準備後、Amazon S3に保存してトレーニングに利用します。SFTフェーズでは、Spectrum微調整レシピに基づき、モデルとトレーニングパラメータを変更可能です。サンプルスクリプトには、モデル引数、データセットパス、トレーニングハイパーパラメータなどの設定が含まれます。
トレーニング後、テストセットでのパフォーマンスを評価し、ベースモデルと微調整済みモデルを比較します。定量的指標(例:正解率)を用いて改善効果を判断し、モデルを本番環境にデプロイするかどうかを決定します。完全なコードとレシピはGitHubリポジトリで入手できます。
以上が、SFTとDPOを用いたエージェントのツール呼び出し精度向上のための包括的なガイドです。