11日前

LEVER:実行を用いた言語からコード生成の検証を学ぶ

Ansong Ni, Srini Iyer, Dragomir Radev, Ves Stoyanov, Wen-tau Yih, Sida I. Wang, Xi Victoria Lin
LEVER:実行を用いた言語からコード生成の検証を学ぶ
要約

コードを学習対象とした大規模言語モデル(コードLLM)の登場により、自然言語からコードへの生成(language-to-code generation)分野において顕著な進展が見られた。現在の最先端のアプローチは、LLMによるデコードに加え、テストケースや実行結果に基づくヒューリスティクスを用いたサンプルの刈り取り(pruning)および再ランク付け(reranking)を組み合わせている。しかし、多くの現実世界の自然言語からコードへの応用においてはテストケースを入手することが困難であり、また、ヒューリスティクスは実行結果の意味論的特徴(たとえばデータ型や値の範囲)を十分に捉えられず、これらはプログラムの正しさを示す重要な手がかりである。本研究では、生成されたプログラムの実行結果を用いてその正当性を学習的に検証するというシンプルなアプローチ、LEVERを提案する。具体的には、自然言語入力、生成されたプログラム、およびその実行結果に基づいて、LLMからサンプリングされたプログラムが正しいかどうかを識別する検証器(verifier)を学習させる。その後、検証スコアとLLMの生成確率を組み合わせ、同一の実行結果を持つプログラムについて周辺化(marginalization)を行い、再ランク付けを行う。テーブルQA、数学QA、基本的なPythonプログラミングという3つの分野にまたがる4つのデータセットにおいて、LEVERはベースとなるコードLLM(code-davinci-002を用いた場合、4.6%~10.9%の向上)を一貫して上回り、すべてのデータセットで新たな最先端の性能を達成した。

LEVER:実行を用いた言語からコード生成の検証を学ぶ | 最新論文 | HyperAI超神経