13日前

CodeChain:代表的サブモジュールを用いた自己修正の連鎖によるモジュール化されたコード生成へ向けて

Hung Le, Hailin Chen, Amrita Saha, Akash Gokul, Doyen Sahoo, Shafiq Joty
CodeChain:代表的サブモジュールを用いた自己修正の連鎖によるモジュール化されたコード生成へ向けて
要約

大規模言語モデル(LLMs)は、HumanEvalやMBPPなどのベンチマークで比較的単純なプログラミング課題に対してすでに高い習得度を示している。しかし、より複雑で競争的なプログラミング課題を解くことは依然として困難であり、その理由の一つとして、モデルが単一の巨大なコードブロックとして解を生成する傾向があることが挙げられる。これに対し、経験豊富なプログラマーは、複雑なタスクを処理する際に自然に抽象化されたモジュール化されたコードを書く傾向があり、過去に開発したモジュールを再利用する。このギャップを埋めるために、本研究では「CodeChain」という新しい推論フレームワークを提案する。CodeChainは、前回の反復で生成された代表的なサブモジュールをガイドとして用いる、自己修正の連鎖を通じてモジュール化されたコード生成を促す。具体的には、まずチェーン・オブ・シンキング(CoT)プロンプトを用いてLLMにモジュール化されたコードの生成を指示する。その後、以下の二つのステップを繰り返すことで自己修正の連鎖を構築する:1)生成されたサブモジュールを抽出・クラスタリングし、その中からより汎用的で再利用可能な実装として代表的なモジュールを選定する;2)選定されたモジュール実装を元のCoTプロンプトに追加し、LLMに新たなモジュール化されたソリューションの再生成を指示する。実験の結果、過去に開発・検証済みのサブモジュールの再利用を自然に促すことで、CodeChainは生成コードのモジュール性と正しさの両方を顕著に向上させ、APPSではpass@1が35%、CodeContestsでは76%の相対的向上を達成した。この手法はOpenAIのLLMに限らず、WizardCoderをはじめとするオープンソースLLMに対しても有効であることが示された。さらに、プロンプト手法、クラスタ数、モデルサイズ、プログラム品質など、さまざまな要因に対する包括的なアブレーションスタディを実施し、CodeChainの成功の背後にある有用な知見を明らかにした。

CodeChain:代表的サブモジュールを用いた自己修正の連鎖によるモジュール化されたコード生成へ向けて | 最新論文 | HyperAI超神経