ANPL: Towards Natural Programming with Interactive Decomposition

要約

LLM は妥当なプログラムを生成できますが、特にユーザーの特定の要件が最初の提案と異なる場合、LLM とさらに対話してプログラムを修正するのは困難です。
このペーパーでは、ユーザーが構造化された分解を通じて、生成されたコードを特定のプログラムの意図に合わせて常に改良できることを保証する対話型プログラミング システムである ANPL を紹介します。
プログラム合成からスケッチのパラダイムを借用した ANPL プログラムは、満たさなければならない一連の入出力、「スケッチ」、つまり正確なコード (Python など) で表現された制御/データ フロー、および「ホール」で構成されます。
” — 自然言語で指定された LLM によって実装されるサブモジュール。
ユーザーは、スケッチを変更するか、ホールの記述に使用する言語を変更するか、特定のホールに追加の入出力を提供して、再帰的に解決できるサブ ANPL プログラムに変換することによって、ANPL プログラムを修正します。
このワークフローにより、ユーザーは、プログラムの残りの部分を LLM に公開することなく、ローカルでバグを特定して解決する機能を維持しながら、プログラミングの負担を可能な限り LLM にオフロードできます。
私たちは、最先端の AI システムにとって困難な一連の固有のタスクである抽象推論コーパス (ARC) に ANPL を導入し、ANPL が (a) タスクを対話的に分解する機能がなく、
(b) モジュールを正しく構成できるという保証はありません。
APPS、HumanEval、および現実世界のプログラミング タスクに関する追加の評価により、ANPL フレームワークが複数のプログラミング ドメインに適用できることが検証されました。
ARC タスクに対する ANPL ソリューションをデータセットとしてリリースし、人間が新しいタスクをプログラム的にどのように分解するかについての洞察を提供します。
https://iprc-dip.github.io/ANPL/ でコードを参照してください。

要約(オリジナル)

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/.

arxiv情報

著者 Di Huang,Ziyuan Nan,Xing Hu,Pengwei Jin,Shaohui Peng,Yuanbo Wen,Rui Zhang,Zidong Du,Qi Guo,Yewen Pu,Yunji Chen
発行日 2023-11-30 16:08:54+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

カテゴリー: cs.AI, cs.CL, cs.LG, cs.PL パーマリンク