arXiv:2607.12463:関数認識FIM中間訓練でコーディングエージェントのSWE-Benchスコアを最大+5.4向上
Wang Yuboら8名の著者が、プログラム依存グラフ分析を用いた関数認識FIM中間訓練を導入しました。SWE-Bench-LiteでQwen2.5-CoderとQwen3-8Bモデルに+3.7〜+5.4ポイントの改善をもたらし、訓練コーパスは968のGitHubリポジトリから26億トークンを使用しています。
この記事はAIにより一次情報源から生成されました。
FIMと中間訓練とは何か?
**FIM(Fill-in-the-Middle)**は、モデルが与えられたプレフィックスとサフィックスの間のコードスニペットを補完する訓練技術です——単に続きを生成するのではなく、後に続くコンテキストも理解しなければなりません。中間訓練は事前訓練(大規模コーパスでの学習)とファインチューニング(特定タスクでの調整)の間の段階です。その目的は、汎用的な能力を損なわずに、特定ドメイン向けにモデルの基盤を整えることです。Wang Yuboと7名の共著者は、この2つの技術をarXivでコーディングエージェント専用の新手法として組み合わせています。
関数認識FIM:依存グラフの役割
標準的なFIMはランダムにコードスニペットをマスクします。本研究の新しさは関数認識アプローチにあります。マスクする領域は、コード内の関数間の依存関係をモデル化したプログラム依存グラフに基づいて意図的に選択されます。これにより、モデルは関数間の依存関係の理解が重要な箇所を補完することを学習します——これはエージェントプログラミングの実際のタスクに対応しています。訓練コーパスは968のGitHubリポジトリから26億トークンを含み、実際のコードベースの統計的に代表的なサンプルとなっています。
SWE-Benchの結果:具体的なスコア向上
本手法はエージェントプログラミングの2つの標準ベンチマークで検証されました:
- SWE-Bench-Verified:Qwen2.5-Coder(7Bと14Bバリアント)とQwen3-8Bで**+2.8〜+3.2ポイント**の改善
- SWE-Bench-Lite:+3.7〜+5.4ポイントの改善
特定タスクのファインチューニングによる典型的な改善——汎用能力の低下なしに2〜3ポイントを超えることはほとんどない——と比較すると、ここでの重要な点は、この手法がエージェント後訓練においても非エージェントのコーディング能力を保持することです。改善はモデル全体の品質を犠牲にして達成されたものではありません。
なぜこれが小型モデルにとって重要か
7Bおよび8Bパラメータのモデルでの結果は特に注目に値します。これは、中間訓練が複雑なコード依存関係の理解を必要とするエージェントタスクにおいて、小型モデルの能力不足を補えることを示しています。数百億パラメータのモデルを運用する余裕のない組織にとって、関数認識FIMは推論コストを維持しながらより強力なコーディングエージェントを実現する実践的な道を提供します。
出典:arXiv
よくある質問
- FIM中間訓練とは何か、標準的なファインチューニングとどう違うのか?
- FIM(Fill-in-the-Middle)は、モデルが与えられたプレフィックスとサフィックスの間のコードスニペットを補完する訓練技術です。中間訓練は事前訓練とファインチューニングの間の段階で、汎用的な能力を損なわずにモデルの基盤を特定ドメイン向けに整えることを目的としています。
- 関数認識FIM手法でSWE-Benchのスコアはどれだけ改善されるか?
- SWE-Bench-Liteで+3.7〜+5.4ポイント、SWE-Bench-Verifiedで+2.8〜+3.2ポイントの改善が得られ、非エージェントのコーディング能力を損なうことはありません。
📬 AIニュースをあなたの受信箱へ
毎日のダイジェストを自分仕様に——トピック、ソース、頻度を選べます。ワンクリックで解除。