[論文レビュー] NExT: Teaching Large Language Models to Reason about Code Execution
NExT は、ユニットテストのフィードバックを用いた自己学習を通じて、LLMs を自然言語でプログラム実行トレースを推論するよう微調整し、テスト時にトレースが欠如している場合でも、Python プログラム修正の精度と根拠の品質を向上させます。
A fundamental skill among human developers is the ability to understand and reason about program execution. As an example, a programmer can mentally simulate code execution in natural language to debug and repair code (aka. rubber duck debugging). However, large language models (LLMs) of code are typically trained on the surface textual form of programs, thus may lack a semantic understanding of how programs execute at run-time. To address this issue, we propose NExT, a method to teach LLMs to inspect the execution traces of programs (variable states of executed lines) and reason about their run-time behavior through chain-of-thought (CoT) rationales. Specifically, NExT uses self-training to bootstrap a synthetic training set of execution-aware rationales that lead to correct task solutions (e.g., fixed programs) without laborious manual annotation. Experiments on program repair tasks based on MBPP and HumanEval demonstrate that NExT improves the fix rate of a PaLM 2 model, by 26.1% and 14.3% absolute, respectively, with significantly improved rationale quality as verified by automated metrics and human raters. Our model can also generalize to scenarios where program traces are absent at test-time.
研究の動機と目的
- LLM ベースのコードタスクにおけるプログラム実行時の挙動を推論する必要性を動機づける。
- Naturalized Execution Tuning (NExT) を提案し、実行トレースを CoT 根拠を用いて推論する LLM の教育を行う。
- サンプル取得→ユニットテストでフィルタリング→実行に基づく根拠と修正案で微調整を行う、弱い教師付き自己学習ループを開発する。
- 実行トレースをコード構造を乱さず、LLM の理解を助けるために、コンパクトなインラインコードコメントとして表現する。
- Mbpp-R および HumanEvalFix-Plus の Python プログラム修正ベンチマークで NExT を評価し、内在的・外在的な観点で根拠の品質を分析する。
提案手法
- 実行順にインデックス付けされたインラインコメントとしてプログラム実行トレースを表現し、ランタイム状態を捉える。
- プロンプトベースの CoT 推論アプローチを用いて自然言語の根拠と修正を生成する。
- 難易度の高い問題から合成データを作成するため、弱い教師付きループ(サンプル → ユニットテストでフィルタ → 学習)を適用する。
- 複数回の反復で合成データを用いてベース LLM(PaLM 2-L)を微調整し、dev pass@1 で最良のチェックポイントを選択する。
- 根拠の品質を、根拠に条件づけられた小型 LMs を用いた代理メトリクスで評価する。
- トレースが欠如したテスト時シナリオや、分布外の修正タスクにおける一般化を検証する。
実験結果
リサーチクエスチョン
- RQ1実行トレースが与えられた場合、LLM はプログラム実行を効果的に推論できるか?
- RQ2トレーニング時に実行対応型の CoT 根拠を追加することで、修正の正確さと根拠の品質は向上するか?
- RQ3テスト時にトレースが利用できない場合や分布外のタスクで、NExT はどのように一般化するか?
- RQ4生成された根拠は人間と代理メトリクスの評価により、バグを意味的に説明し修正を提案しているか?
主な発見
- NExT は PaLM 2-L に対してエンドツーエンドの修正率の大幅な向上をもたらす(例:Mbpp-R pass@1 で絶対値 26.1%)。
- 代理ベースの指標と人間の評価により、NExT で根拠の品質が向上する。
- PaLM 2-L+NExT はいくつかの強力な LLM を上回り、エンドツーエンドの修正指標で GPT-3.5 と競合する。
- テスト時にトレースがなくても、PaLM 2-L+NExT はベースラインより顕著な改善を維持する。
- NExT は HeFix+ へ一般化し、ベースモデルより高品質な根拠を示す。
- アブレーション研究は、トレースと CoT を用いた推論が利益にとって重要であることを示しており、トレースや根拠を削除すると性能が低下する。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。