Core Concepts
大規模言語モデルにコード実行の意味論的理解を教えることで、プログラムの修正などの複雑なソフトウェア開発タスクを改善する。
Abstract
本論文は、大規模言語モデル(LLM)にコード実行の推論を教える手法「NExT」を提案している。LLMはコードの表面形式を学習するため、実行時の意味論的理解が不足しがちである。NExTは、プログラムの実行トレースを活用し、自然言語による推論(CoT)を通じてLLMにコード実行の理解を教える。
具体的には以下の通り:
プログラムの実行トレース(変数の状態など)を、コード内のコメントとして表現する。
実行トレースを活用したCoT推論を行うよう、LLMをファインチューニングする。
正解のプログラム修正を導く高品質な推論を合成的に生成し、LLMの学習に活用する。
実験では、プログラム修正タスクにおいて、NExTによりPaLM 2-Lモデルの修正率を大幅に改善できることを示した。また、生成された推論の質も高く、人手評価でも優れた結果を得た。さらに、実行トレースが利用できない状況でも一定の汎化性能を発揮した。
Stats
プログラムの実行トレースを活用することで、PaLM 2-Lモデルのプログラム修正率が26.1%改善された。
推論の質を近似的に評価する指標でも、PaLM 2-Lモデルが6.3%改善された。
Quotes
「人間の開発者にとって、プログラムの実行を理解し推論する能力は基本的なスキルである。」
「LLMはコードの表面形式を学習するため、実行時の意味論的理解が不足しがちである。」
「NExTは、プログラムの実行トレースを活用し、自然言語による推論(CoT)を通じてLLMにコード実行の理解を教える。」