Core Concepts
コード言語モデルは自身の生成したコードを自己修正する能力が弱いが、CYCLEはこの能力を大幅に向上させることができる。
Abstract
本研究では、コード言語モデルの自己修正能力に着目している。既存のコード言語モデルは、与えられた自然言語の問題記述に基づいてコードを生成することはできるが、自身が生成したコードに問題がある場合、それを自己修正する能力が非常に弱いことが明らかになった。
本研究では、CYCLEと呼ばれるフレームワークを提案している。CYCLEは、問題記述、生成したコード、そしてそのコードの実行結果のフィードバックを総合的に活用することで、コード言語モデルの自己修正能力を大幅に向上させることができる。
具体的には、以下の3つのフェーズから成る:
自己修正のためのデータ準備: 既存のコード言語モデルにプログラミング問題を解かせ、その過程で生成したコードと実行結果のフィードバックを収集する。
自己修正の学習: 問題記述、生成したコード、実行結果のフィードバックを組み合わせた入力から、正解のコードを予測するよう学習する。過去の生成物をうまく活用するための工夫も行う。
反復的な自己修正: 問題記述に基づいて初期のコードを生成し、実行結果に応じて自動的に修正を繰り返す。
評価の結果、CYCLEは既存のコード言語モデルと比べて、自己修正能力を大幅に向上させることができ、最大63.5%の性能改善を達成した。また、CYCLEは3倍大きなモデルサイズの既存モデルをも凌駕する性能を示した。
Stats
本研究で提案するCYCLEは、既存のコード言語モデルと比べて、自己修正能力を最大63.5%改善できる。
CYCLEの350Mパラメータモデルは、StarCoder-1Bよりも優れた性能を示した。
CYCLEの2.7Bパラメータモデルは、APPS ベンチマークにおいて、27.6%の自己修正率向上を達成した。
Quotes
"コード言語モデルは自身の生成したコードを自己修正する能力が非常に弱い"
"CYCLEは問題記述、生成したコード、実行結果のフィードバックを総合的に活用することで、コード言語モデルの自己修正能力を大幅に向上させることができる"