要約
コード上で学習された大規模な言語モデル(コードLLM)の登場は、言語からコードへの生成に大きな進歩をもたらした。この分野における最先端のアプローチは、LLMのデコードと、テストケースや実行結果に基づくヒューリスティックを用いたサンプルの刈り込みや再ランク付けを組み合わせたものである。しかし、多くの実世界の言語からコードへのアプリケーションのテストケースを得ることは困難であり、ヒューリスティックは、プログラムの正しさをしばしば示すデータ型や値域のような実行結果の意味的特徴をうまく捉えることができない。本研究では、LEVERを提案する。LEVERは、生成されたプログラムをその実行結果で検証するように学習することで、言語対コード生成を改善するシンプルなアプローチである。具体的には、LLMからサンプリングされたプログラムが正しいかどうかを、自然言語入力、プログラム自身、およびその実行結果に基づいて判断する検証者を訓練する。サンプリングされたプログラムは、検証スコアとLLM生成確率を組み合わせ、同じ実行結果を持つプログラムに対してマージナル処理を行うことで再ランク付けされる。テーブルQA、数学QA、基本的なPythonプログラミングの領域にわたる4つのデータセットにおいて、LEVERはベースコードLLMを一貫して改善し(code-davinci-002で4.6%から10.9%)、すべてのデータセットで新たな最先端の結果を達成した。
要約(オリジナル)
The advent of large language models trained on code (code LLMs) has led to significant progress in language-to-code generation. State-of-the-art approaches in this area combine LLM decoding with sample pruning and reranking using test cases or heuristics based on the execution results. However, it is challenging to obtain test cases for many real-world language-to-code applications, and heuristics cannot well capture the semantic features of the execution results, such as data type and value range, which often indicates the correctness of the program. In this work, we propose LEVER, a simple approach to improve language-to-code generation by learning to verify the generated programs with their execution results. Specifically, we train verifiers to determine whether a program sampled from the LLMs is correct or not based on the natural language input, the program itself and its execution results. The sampled programs are reranked by combining the verification score with the LLM generation probability, and marginalizing over programs with the same execution results. On four datasets across the domains of table QA, math QA and basic Python programming, LEVER consistently improves over the base code LLMs(4.6% to 10.9% with code-davinci-002) and achieves new state-of-the-art results on all of them.
arxiv情報
著者 | Ansong Ni,Srini Iyer,Dragomir Radev,Ves Stoyanov,Wen-tau Yih,Sida I. Wang,Xi Victoria Lin |
発行日 | 2023-09-01 17:37:42+00:00 |
arxivサイト | arxiv_id(pdf) |