arXiv (ML)AI
TITLE_JA: CodeBlock:コード生成における最適な粒度での教師あり学習
CODEBLOCK: Learning to Supervise Code at the Right Granularity
この記事についてAIに質問する →
日本語要約青い用語にマウスを合わせると解説が表示されます
コード生成に特化した大規模言語モデル(LLM)の性能向上は、機械学習における重要な課題です。従来の教師あり微調整(SFT)では、生成されたコードの全トークンに対して均等に交差エントロピー損失を適用していました。しかし、この手法は効率的ではなく、すべてのトークンが同じ程度の学習信号をもたらすと仮定しています。自然言語処理の分野では、高価値なトークンのみを監視するトークンレベルの選択方法がこの前提に異議を唱えてきました。
ただし、コード領域ではトークンレベルのマスキングを直接適用することは問題があります。プログラムコードは構文的および意味的な一貫性、そして変数の定義と使用の関係に依存しているため、トークン単位での選択は構文的に完全なプログラム単位を破壊してしまう可能性があります。そこで研究者らが提案したのが「CodeBlock」という構造認識型の疎教師あり学習フレームワークです。
CodeBlockは、孤立したトークンではなく、構文的に一貫したコード単位全体を選択します。具体的には、高品質な命令応答ペアを選択した後、コード応答を構文的に一貫したコード項目に分割します。その後、中核となるロジックトークンに対して一般化された交差エントロピーを集約することで各ブロックの有用性を推定し、データフロー到達可能性と橋渡し信号を使用してランク付けします。これにより、プログラムの重要な依存関係を伝播または接続するブロックを優先化します。学習時には、完全な応答がコンテキストとして利用可能なまま、損失は選択されたコード項目と有益な自然言語トークンにのみ適用されます。
6つのコード生成ベンチマークでの実験結果によると、CodeBlockは全トークンSFTおよび競合する選択ベースラインよりも高い平均pass@1を達成しながら、教師あり応答トークンの1.9%だけを使用しています。つまり、より少ないデータで同等以上の性能を実現できる効率的な学習手法として注目されます。