CYCLE: Learning to Self-Refine the Code Generation

要約

事前トレーニングされたコード言語モデルは、コード生成において有望なパフォーマンスを達成し、人間の開発者のプログラミング効率を向上させました。
ただし、その自己洗練機能は、1 回限りの予測の精度のみに焦点を当てているコード LM の既存の評価では通常見落とされています。
コード LM が正しいプログラムの実装に失敗した場合、開発者は実際、誤った予測をデバッグして修正することが困難であると感じます。これは、予測が開発者自身によって書かれたものではないためです。
残念ながら、私たちの調査では、コード LM が欠陥のある世代を効率的に自己調整することもできないことが明らかになりました。
この論文では、テストスイートによって報告された実行結果などの利用可能なフィードバックに従って、欠陥のある世代を自己調整することを学習する CYCLE フレームワークを提案します。
私たちは 3 つの一般的なコード生成ベンチマーク、HumanEval、MBPP、APPS で CYCLE を評価します。
結果は、CYCLE がコード LM の自己洗練能力を大幅に向上させながら、ワンタイム コード生成の品質を維持し、場合によっては向上させることに成功していることを明らかにしています。
350M、1B、2B、3B にわたるさまざまな数のパラメーターを備えた CYCLE の 4 つのバリアントを実装しました。実験では、CYCLE がベンチマークとさまざまなモデル サイズにわたってコード生成パフォーマンスを一貫して最大 63.5% 向上させることが示されました。
また、CYCLE は、自己洗練において 3$\times$ 多くのパラメーターを持つコード LM よりも優れたパフォーマンスを示していることにも気づきました。

要約(オリジナル)

Pre-trained code language models have achieved promising performance in code generation and improved the programming efficiency of human developers. However, their self-refinement capability is typically overlooked by the existing evaluations of code LMs, which focus only on the accuracy of the one-time prediction. For the cases when code LMs fail to implement the correct program, developers actually find it hard to debug and fix the faulty prediction since it is not written by the developers themselves. Unfortunately, our study reveals that code LMs cannot efficiently self-refine their faulty generations as well. In this paper, we propose CYCLE framework, learning to self-refine the faulty generation according to the available feedback, such as the execution results reported by the test suites. We evaluate CYCLE on three popular code generation benchmarks, HumanEval, MBPP, and APPS. The results reveal that CYCLE successfully maintains, sometimes improves, the quality of one-time code generation, while significantly improving the self-refinement capability of code LMs. We implement four variants of CYCLE with varied numbers of parameters across 350M, 1B, 2B, and 3B, and the experiments show that CYCLE consistently boosts the code generation performance, by up to 63.5%, across benchmarks and varied model sizes. We also notice that CYCLE outperforms code LMs that have 3$\times$ more parameters in self-refinement.

arxiv情報

著者 Yangruibo Ding,Marcus J. Min,Gail Kaiser,Baishakhi Ray
発行日 2024-03-27 16:45:02+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

カテゴリー: cs.CL, cs.SE パーマリンク