[論文レビュー] Parsel: Algorithmic Reasoning with Language Models by Composing Decompositions
Parsel は、複雑なタスクを階層的な自然言語関数記述に分解し、組み合わせ的テストを通じて正しい実装を合成することで、大規模言語モデル(LLMs)のアルゴリズム的推論能力を向上させるフレームワークである。HumanEval では pass@1 率が 85% を達成し、APPS では先行手法よりも 75% 以上の高い pass 率を記録する。これにより、LLM が生成するプログラムおよびロボット計画の正確性が顕著に向上し、モジュラーでテスト駆動の構成が可能になる。
Despite recent success in large language model (LLM) reasoning, LLMs struggle with hierarchical multi-step reasoning tasks like generating complex programs. For these tasks, humans often start with a high-level algorithmic design and implement each part gradually. We introduce Parsel, a framework enabling automatic implementation and validation of complex algorithms with code LLMs. With Parsel, we automatically decompose algorithmic tasks into hierarchical natural language function descriptions and then search over combinations of possible function implementations using tests. We show that Parsel can be used across domains requiring hierarchical reasoning, including program synthesis and robotic planning. We find that, using Parsel, LLMs solve more competition-level problems in the APPS dataset, resulting in pass rates over 75\% higher than prior results from directly sampling AlphaCode and Codex, while often using a smaller sample budget. Moreover, with automatically generated tests, we find that Parsel can improve the state-of-the-art pass@1 performance on HumanEval from 67\% to 85\%. We also find that LLM-generated robotic plans using Parsel are more than twice as likely to be considered accurate than directly generated plans. Lastly, we explore how Parsel addresses LLM limitations and discuss how Parsel may be useful for human programmers. We release our code at https://github.com/ezelikman/parsel
研究の動機と目的
- 複雑なプログラムを生成する際の LLM における階層的・マルチステップ推論の課題に対処すること。
- LLM が高レベルのアルゴリズム的タスクをモジュラーで組み合わせ可能な関数記述に分解できるようにすること。
- 自動テストと制約検証を通じて実装を組み合わせることで、プログラムの正しさと効率を向上させること。
- 直接生成を超えた能力を実現するため、人間のプログラミングに類似した構造的で階層的な推論を可能にすること。
提案手法
- Parsel は、入力・出力・制約を伴う自然言語関数記述としてアルゴリズム的設計を表現するドメイン固有の中間言語を使用する。
- 合成時の組み合わせ的爆発を回避するため、タスクを強連結成分(SCCs)に分解する。
- 各関数は LLM によって独立して実装され、制約ソルバーを用いて入出力制約に対して検証される。
- 依存関係を依存グラフの一部として扱い、トポロジカル順に SCC を解くことで、再帰的および高階関数をサポートする。
- 形式化された構文をプロンプトとして用いることで、GPT-4 を含む LLM を用いた zero-shot や few-shot の Parsel 生成を可能にする。
- 実装の検証を自動テスト生成によって統合し、手作業で作成されたテストケースへの依存を低減する。
実験結果
リサーチクエスチョン
- RQ1LLM は、複雑なアルゴリズム的タスクをモジュラーで組み合わせ可能な関数記述に効果的に分解できるか?
- RQ2テストベースの構成を伴う階層的分解は、プログラム合成ベンチマークにおける LLM のパフォーマンスをどのように向上させるか?
- RQ3Parsel は、直接生成と比較して、LLM が生成するロボット計画の失敗率をどの程度低減できるか?
- RQ4Parsel は、サンプル予算を増加させることなく、HumanEval や APPS のような標準ベンチマークで最先端のパフォーマンスを達成できるか?
- RQ5Parsel のモジュラーで制約駆動のアプローチは、自己回帰的コード生成で一般的な誤り伝搬をどの程度緩和できるか?
主な発見
- Parsel は HumanEval における pass@1 結果を 67% から 85% に向上させ、GPT-4 や先行の LLM ベース手法を顕著に上回った。
- APPS ベンチマークでは、サンプル予算が小さい状態でも、AlphaCode や Codex のような直接サンプリング手法よりも 75% 以上の高い pass 率を達成した。
- Parsel を用いた LLM が生成するロボット計画は、直接 LLM で生成する場合と比較して、正確性が2倍以上に向上した。
- GPT-4 は Parsel プログラムの形式を記述するだけで zero-shot で生成が可能となり、HumanEval および APPS の両ベンチマークで顕著なパフォーマンス向上を達成した。
- 自動生成されたテストの活用により、正しさが向上し、手書きテストケースへの依存が低減され、分野を越えた耐性が向上した。
- SCC を用いた分解戦略は、組み合わせ的爆発を効果的に制御し、複雑で階層的なプログラムのスケーラブルな合成を可能にした。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。