概要
東大松尾研主催のLLM応用コンペ参加者が、AgentBenchにおけるLLMエージェント開発の試行錯誤と、データ合成、ハイパラチューニング、DPOによる学習改善の過程とその結果を詳細に報告する。
詳細内容
この記事は、東大松尾・岩澤研究室主催のLLM講座2025応用編アドバンスドコンペ参加者の奮闘記です。コンペでは、**AgentBench**の**DBBench**と**ALFWorld**タスクにおけるLLMエージェントの精度を競いました。
### コンペ概要と課題
ベースモデル(Qwen系)に独自の追加学習を行い、 AgentBenchのDBBenchとALFWorldの総合点で評価される形式でした。特に、エージェント型AIとして自律的な目標達成能力が問われ、複数ターンのインタラクションが重要でした。コンペルールでは、指定モデルの学習、ホワイトリスト内のモデルでのデータ合成・蒸留が許可される一方、AgentBench/ALFWorldのデータ直接利用やクローズドLLMの利用は禁止されました。
### 試行錯誤の軌跡と工夫
1. **SFTベースラインと初期改善**: ベースラインではALFWorldのスコアが低かったため、ここから着手。**`agent_invalid_action`**(実行不可能な行動選択)と**`task_limit_reached`**(上限ステップ数到達)の失敗パターンを分析しました。対策として、SFT時のプロンプトに「**Admissible Commands**から選択する」旨を追加し、ReACTタグの正規化(**Think: → THOUGHT:, Act: → ACTION:**)でスコアを改善しました。
2. **データ合成戦略**: **ALFWorld**の汎化性能向上のため、**Admissible Commands**を含む軌跡に限定した合成データを作成し、`agent_invalid_action`を大幅に削減しました。しかし、**ALFWorld**と**DBBench**の性質の違いから、両タスクを合わせたデータ合成は難航し、**MoE**が使えない制約下で**DBBench**のデータ合成は見送られました。
3. **ハイパーパラメータチューニングとモデル変更**: **ValidationスコアとTestスコアの相関が見られない**という問題に直面し、ハイパーチューニングの方向性を見失いました。最終的にデフォルト設定に落ち着き、より高性能な**Qwen2.5-7B-Instruct**へのモデル変更も試みましたが、スコアは伸び悩みました。
4. **失敗パターンの分析とDPO**: ALFWorldの失敗パターン(ループ型、無関係探索型、部分成功誤認型、多段階計画失敗型)を詳細に分析。これらの矯正のため、成功軌跡から**roundwiseなDPOデータセット**を作成しました。具体的には、ループ型、無関係探索型、部分成功誤認型に対する望ましくない行動を**rejected**として生成し、学習させることでスコアを改善しました。
### 学びと考察
* **ドメインシフト対策**: 学習データと推論データの分布違い(ドメインシフト)への対策として、プロンプトやデータ制約によるアライメントが有効でした。
* **LLM開発の泥臭さ**: ValidationスコアとTestスコアの乖離、予測不能な結果から、LLM開発は試行錯誤の連続であることが浮き彫りになりました。
* **データ合成の重要性**: 「データが命」であることを痛感。特に、失敗パターンの分析に基づいたデータセット構築の重要性が示唆されました。
* **実データに基づく仮説検証**: データ分析と仮説検証のサイクルが、スコアアップに不可欠でした。
* **LLMの活用**: LLMをアシスタントとして活用することで、短期間での試行錯誤が可能になりました。
最終的に、コンペではPublic 46位という結果でしたが、LLMエージェント開発における実践的な学びは非常に貴重なものでした。