Skip to main content
QUICK REVIEW

[論文レビュー] From Words to Code: Harnessing Data for Program Synthesis from Natural Language

Anirudh Khatry, Joyce Cahoon|arXiv (Cornell University)|May 2, 2023
Software Engineering Research被引用数 6
ひとこと要約

本論文は、実行ベースの意味的再ランク付けと温度混合を用いてデータコンテキストを活用することで、自然言語からコードを生成する際の精度を向上させる、新しいプログラム合成フレームワークを提案する。入力データ上で候補プログラムを実行し、出力に基づく信号(意味的フィルタリング、インタリーブ、スコアチューニング)を用いて再ランク付けすることで、GPT-4およびCodexを用いたコンテキスト内学習のみで、SQL、Pandas、Power Query Mのベンチマークにおいて最大45%のトップ1精度向上と34%のトップ3精度向上を達成した。

ABSTRACT

Creating programs to correctly manipulate data is a difficult task, as the underlying programming languages and APIs can be challenging to learn for many users who are not skilled programmers. Large language models (LLMs) demonstrate remarkable potential for generating code from natural language, but in the data manipulation domain, apart from the natural language (NL) description of the intended task, we also have the dataset on which the task is to be performed, or the "data context". Existing approaches have utilized data context in a limited way by simply adding relevant information from the input data into the prompts sent to the LLM. In this work, we utilize the available input data to execute the candidate programs generated by the LLMs and gather their outputs. We introduce semantic reranking, a technique to rerank the programs generated by LLMs based on three signals coming the program outputs: (a) semantic filtering and well-formedness based score tuning: do programs even generate well-formed outputs, (b) semantic interleaving: how do the outputs from different candidates compare to each other, and (c) output-based score tuning: how do the outputs compare to outputs predicted for the same task. We provide theoretical justification for semantic interleaving. We also introduce temperature mixing, where we combine samples generated by LLMs using both high and low temperatures. We extensively evaluate our approach in three domains, namely databases (SQL), data science (Pandas) and business intelligence (Excel's Power Query M) on a variety of new and existing benchmarks. We observe substantial gains across domains, with improvements of up to 45% in top-1 accuracy and 34% in top-3 accuracy.

研究の動機と目的

  • 自然言語からコードへの変換における低精度の課題に取り組み、既存の手法が入力データコンテキストを十分に活用していない点を是正する。
  • プロンプト工学に依存する制限を克服し、実際のプログラム実行出力を用いてより良い候補のランク付けを実現する。
  • プログラムの出力と意味的類似性を活用するデータに配慮した再ランク付け機構を導入することで、プログラム合成におけるトップ-K精度を向上させる。
  • ファインチューニングやユーザー提供のテストケースを一切不要とし、自然言語の記述と入力データのサンプルのみに依存して高精度なコード生成を実現する。
  • 意味的インタリーブの理論的裏付けを提示するとともに、温度混合といった実用的手法を導入し、LLMが生成する候補の多様性と品質を向上させる。

提案手法

  • 高・低温度サンプリングの混合を用いて、LLMから複数の候補プログラム(トップ-N)を生成し、多様性を高める。
  • 入力データのサンプル上で各候補を実行し、実際の出力を収集する。構文的に誤った、または実行不能なプログラムを除外する(意味的フィルタリング)。
  • 3つの信号を用いた意味的再ランク付けを適用する:(a) 構文的整合性と意味的フィルタリングにより、不正な出力を除外する。 (b) 出力類似度に基づいて候補をクラスタリング・再順序付けする意味的インタリーブ。 (c) LLMが予測する出力を用いた出力ベースのスコアチューニング。
  • 異なる温度設定からのサンプルを組み合わせる温度混合を用い、高品質な候補を捉える可能性を高める。
  • 対数尤度、実行成功、出力類似度を統合した複合スコアを用いて候補を再ランク付けし、正しいプログラムを優先する。
  • 生成されたプログラム出力とLLMが予測する出力を一致させる出力予測ベースのスコアチューニング技術を新規に導入し、ランク付け性能を向上させる。

実験結果

リサーチクエスチョン

  • RQ1入力データからの実際のプログラム実行出力を活用することで、プロンプト工学に依存するのと比較して、自然言語からコードへの合成精度が顕著に向上するか?
  • RQ2出力類似度に基づく候補プログラムの再ランク付けとしての意味的インタリーブは、どの程度有効であり、理論的に裏付けられるか?
  • RQ3温度混合は、プログラム合成タスクにおけるLLMが生成する候補の多様性と品質をどの程度向上させるか?
  • RQ4生成された出力とLLMが予測する出力を一致させることで、スコアベースのランク付け性能が向上するか?
  • RQ5提案されたフレームワークは、ファインチューニングやユーザー提供のテストケースを一切不要とし、多様なデータ操作分野(SQL、Pandas、Power Query M)で最先端の性能を達成できるか?

主な発見

  • 提案されたフレームワークは、データベース、データサイエンス、ビジネスインテリジェンスのタスクにおいて、最大45%のトップ1精度向上と34%のトップ3精度向上を達成した。
  • Codexモデルを用いた場合、トップ1実行精度が76%に達し、プロンプト工学と実行フィードバックのみで、最先端の手法を上回った。
  • 実行フィードバックを用いた意味的再ランク付けは、標準的な対数尤度ベースのランク付けを著しく上回り、誤りや不正な出力を含むプログラムの順位を著しく低下させた。
  • 温度混合により候補の多様性が向上し、正しいプログラムがトップ-Nセットに含まれる可能性が高まり、結果としてトップ-K精度が向上した。
  • 意味的インタリーブには理論的裏付けが提供され、出力類似度に基づくクラスタリングと再順序付けがランク付け性能の向上に寄与することを示した。
  • ユーザー提供のテストケースやモデルのファインチューニングを一切不要とし、自然言語の記述と入力データのサンプルのみに依存して、強力な結果を達成した。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。