Skip to main content
QUICK REVIEW

[論文レビュー] ANPL: Towards Natural Programming with Interactive Decomposition

Di Huang, Ziyuan Nan|arXiv (Cornell University)|May 29, 2023
Software Engineering Research被引用数 5
ひとこと要約

ANPL は、コントロール/データフローを手動で定義したスケッチ(sketch)と、LLM によって生成される関数実装(穴、holes)を用いるスケッチ・アンド・ホールズパラダイムを用いて、複雑なプログラミングタスクを構造的・モジュラーに分解できるインタラクティブプログラミングシステムである。制御/データフローはスケッチとして手動で定義され、関数実装は LLM によって生成される。この手法により、全体のプログラム構造を損なわず局所的かつ反復的な修正が可能となり、ARC におけるタスク成功確率が、ワンショット LLM 生成の 58.4% から 75.0% まで向上する。

ABSTRACT

Though LLMs are capable of generating plausible programs, it's challenging to interact with the LLMs further to revise the program, especially if the user's specific requirements are different from the initial proposal. In this paper, we introduce ANPL, an interactive programming system that ensures users can always refine the generated code towards their specific programmatic intents via structured decompositions. Borrowing the paradigm of sketching from program synthesis, an ANPL program consists of a set of input-outputs that it must satisfy, a ``sketch'' -- control/data flow expressed in precise code (e.g. Python), and ``holes'' -- sub-modules to be implemented by the LLM specified with natural language. The user revises an ANPL program by either modifying the sketch, changing the language used to describe the holes, or providing additional input-outputs to a particular hole, turning it into a sub-ANPL program that can be solved recursively. This workflow allows the users to offload programming burdens to the LLM as much as possible while retaining the ability to pinpoint and resolve bugs locally, without exposing the rest of the program to the LLM. We deploy ANPL on the Abstraction and Reasoning Corpus (ARC), a set of unique tasks that are challenging for state-of-the-art AI systems, showing it outperforms baseline programming systems that (a) without the ability to decompose tasks interactively and (b) without the guarantee that the modules can be correctly composed together. Additional evaluations on APPS, HumanEval, and real-world programming tasks have validated that the ANPL framework is applicable to multiple programming domains. We release the ANPL solutions to the ARC tasks as a dataset, providing insights into how humans decompose novel tasks programmatically. See our code at https://iprc-dip.github.io/ANPL/.

研究の動機と目的

  • 初期出力が誤りまたは不完全である場合に生じる、LLM 生成コードにおける反復的デバッグと改善の課題に対処すること。
  • LLM に実装詳細をオフロードしつつ、モジュラーでインタラクティブなフレームワークを通じて、ユーザーがプログラム構造を制御できるようにすること。
  • 大規模でモノリシックなプログラムのデバッグにかかる認知的負荷を軽減し、個々のコンポーネントに対して局所的な編集を可能にすること。
  • 再帰的分解と検証を支援する、体系的で人間が関与するプログラム合成のアプローチを提供すること。
  • 抽象的推論とプログラミングタスクのための、人間がアノテートしたタスク分解を含む新しいデータセット(DARC)を生成すること。

提案手法

  • ANPL プログラムは、ユーザーが定義するスケッチ(正確なコードとしての制御フローやデータフロー、例:Python)と、自然言語で記述された LLM 生成の穴(関数モジュール)の組み合わせとして構造化される。
  • 各穴は自己完結的なサブ-ANPL プログラムであり、再帰的分解と独立した改善が可能である。
  • システムは ANPL コードを実行可能な Python にコンパイルし、入出力のテストケースに基づいて検証を行い、エラーが発生した場合には詳細なデバッグトレースを出力する。
  • ユーザーは、スケッチの修正、穴の自然言語記述の再作成、または新しい入出力例の提供によって、穴をサブ-ANPL タスクに変換することで、プログラムを改善できる。
  • フレームワークは反復的インタラクションをサポートしており、失敗後は、プログラム全体の構造を損なわず、故障した穴にのみ注力できる。
  • 本研究では、400 個の ARC タスクに対して、19 名の Python プログラマーが合計 440 マン-時間にわたり実施した大規模な人間主導の研究を通じて、ワンショット LLM との比較評価が行われた。

実験結果

リサーチクエスチョン

  • RQ1ワンショット LLM 生成と比較して、LLM を用いたインタラクティブな分解が、複雑なプログラミングタスクの解決成功率を顕著に向上させるか?
  • RQ2スケッチと自然言語による穴を用いた構造的分解は、LLM 生成プログラムの使いやすさと保守性にどのように影響するか?
  • RQ3ユーザーは、プログラム全体を再処理せずに、どの程度までデバッグ作業を局所化できるか?
  • RQ4抽象的推論とプログラミングタスクにおける人間がアノテートしたタスク分解から、どのような知見が得られるか?
  • RQ5ANPL フレームワークは、合成ベンチマークにとどまらず、多様なプログラミング分野へ一般化可能か?

主な発見

  • ANPL は、抽象的推論コロナス(Abstraction and Reasoning Corpus、ARC)において 75.0% のタスク成功確率を達成し、ワンショット LLM との比較で顕著に優れた結果を示した(58.4%)。
  • システムは、障害が生じた穴にのみ注力できるため、デバッグにかかる認知的負荷を軽減し、全体のプログラム構造の整合性を保った。
  • DARC データセットは、ARC タスクの 300 個の人のアノテート済み分解を含み、人間-LLM コラボレーションによるプログラム合成の研究に貴重なリソースを提供する。
  • ユーザーは平均して 1 タスクあたり 20 回未満のインタラクションで作業を完了した。System A(1 タスクあたり 10.76 回の API コール)と System B(1 タスクあたり 4.81 回の API コール)は、効率的なインタラクションパターンを示した。
  • 事例研究では、LLM が誤った関数を生成した場合に、自然言語記述の精緻化や新しい入出力例の追加によって、ユーザーが正常に修正できることを示した。
  • このフレームワークは、APPS や HumanEval、および実世界のプログラミングタスクを含む多様な分野で有効であることが確認され、一般化可能性が裏付けられた。

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

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

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

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