論文の概要: CodeChain: Towards Modular Code Generation Through Chain of Self-revisions with Representative Sub-modules
- arxiv url: http://arxiv.org/abs/2310.08992v3
- Date: Thu, 14 Mar 2024 03:29:09 GMT
- ステータス: 処理完了
- システム内更新日: 2024-03-16 02:32:48.607069
- Title: CodeChain: Towards Modular Code Generation Through Chain of Self-revisions with Representative Sub-modules
- Title(参考訳): CodeChain: 代表サブモジュールとの自己修正によるモジュールコード生成を目指す
- Authors: Hung Le, Hailin Chen, Amrita Saha, Akash Gokul, Doyen Sahoo, Shafiq Joty,
- Abstract要約: 我々は,自己修正の連鎖を通じてモジュール化されたコード生成を誘発する,新しい推論フレームワークであるCodeChainを提案する。
CodeChainは、生成したソリューションのモジュール性と正確性の両方を大幅に向上させ、APPSで35%、CodeContestsで76%の相対パス@1の改善を実現しています。
- 参考スコア(独自算出の注目度): 51.82044734879657
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Large Language Models (LLMs) have already become quite proficient at solving simpler programming tasks like those in HumanEval or MBPP benchmarks. However, solving more complex and competitive programming tasks is still quite challenging for these models - possibly due to their tendency to generate solutions as monolithic code blocks instead of decomposing them into logical sub-tasks and sub-modules. On the other hand, experienced programmers instinctively write modularized code with abstraction for solving complex tasks, often reusing previously developed modules. To address this gap, we propose CodeChain, a novel framework for inference that elicits modularized code generation through a chain of self-revisions, each being guided by some representative sub-modules generated in previous iterations. Concretely, CodeChain first instructs the LLM to generate modularized codes through chain-of-thought prompting. Then it applies a chain of self-revisions by iterating the two steps: 1) extracting and clustering the generated sub-modules and selecting the cluster representatives as the more generic and re-usable implementations, and 2) augmenting the original chain-of-thought prompt with these selected module-implementations and instructing the LLM to re-generate new modularized solutions. We find that by naturally encouraging the LLM to reuse the previously developed and verified sub-modules, CodeChain can significantly boost both modularity as well as correctness of the generated solutions, achieving relative pass@1 improvements of 35% on APPS and 76% on CodeContests. It is shown to be effective on both OpenAI LLMs as well as open-sourced LLMs like WizardCoder. We also conduct comprehensive ablation studies with different methods of prompting, number of clusters, model sizes, program qualities, etc., to provide useful insights that underpin CodeChain's success.
- Abstract(参考訳): LLM(Large Language Models)は、HumanEvalやMBPPベンチマークのような単純なプログラミングタスクを解くのに、すでに非常に熟練している。
しかし、より複雑で競争的なプログラミングタスクの解決は、これらのモデルにとって依然として非常に難しい - おそらくは、論理的なサブタスクやサブモジュールに分解する代わりに、モノリシックなコードブロックとしてソリューションを生成する傾向があるからだ。
一方、経験豊富なプログラマは、しばしば以前開発されたモジュールを再利用して、複雑なタスクを解決するための抽象的なモジュール化されたコードを書く。
このギャップに対処するために、我々はCodeChainを提案する。これは、モジュール化されたコード生成を一連の自己修正を通じて引き起こす新しいフレームワークであり、それぞれが以前のイテレーションで生成されたいくつかの代表的なサブモジュールによってガイドされる。
具体的には、CodeChainはまずLLMに、チェーン・オブ・ソート・プロンプトを通じてモジュール化されたコードを生成するように指示する。
次に、2つのステップを繰り返すことで、一連の自己修正を適用します。
1)生成されたサブモジュールを抽出してクラスタ化し、クラスタ代表をより汎用的で再利用可能な実装として選択し、
2) これらのモジュールの実装によってオリジナルのチェーン・オブ・シークレットのプロンプトを拡大し、新しいモジュール化されたソリューションを再生成するようLLMに指示する。
我々は、LLMが以前開発され、検証されたサブモジュールの再利用を自然に促すことで、CodeChainは、生成したソリューションのモジュラリティと正確性の両方を大幅に向上させ、APPSで35%、CodeContestsで76%の相対パス@1の改善を達成できることがわかった。
これはOpenAI LLMとWizardCoderのようなオープンソースLLMの両方で有効であることが示されている。
また,CodeChainの成功を支える有用な洞察を提供するために,クラスタ数,モデルサイズ,プログラム品質など,さまざまな方法による包括的なアブレーション研究も行っています。
関連論文リスト
- StepCoder: Improve Code Generation with Reinforcement Learning from
Compiler Feedback [58.20547418182074]
2つの主要コンポーネントからなるコード生成の新しいフレームワークであるStepCoderを紹介します。
CCCSは、長いシーケンスのコード生成タスクをCurriculum of Code Completion Subtaskに分割することで、探索課題に対処する。
FGOは、未実行のコードセグメントをマスクすることでのみモデルを最適化し、Fine-Grained Optimizationを提供する。
提案手法は,出力空間を探索し,対応するベンチマークにおいて最先端の手法より優れた性能を発揮する。
論文 参考訳(メタデータ) (2024-02-02T13:14:31Z) - If LLM Is the Wizard, Then Code Is the Wand: A Survey on How Code
Empowers Large Language Models to Serve as Intelligent Agents [81.60906807941188]
大型言語モデル(LLM)は、自然言語と形式言語(コード)の組み合わせに基づいて訓練される
コードは、標準構文、論理一貫性、抽象化、モジュール性を備えた高レベルの目標を実行可能なステップに変換する。
論文 参考訳(メタデータ) (2024-01-01T16:51:20Z) - MoTCoder: Elevating Large Language Models with Modular of Thought for Challenging Programming Tasks [50.61968901704187]
本稿では,タスクの論理的サブタスクとサブモジュールへの分解を促進するため,MoT命令チューニングの先駆的フレームワークを提案する。
調査の結果,MoTCoderはサブモジュールの栽培と利用を通じて,生成したソリューションのモジュラリティと正しさの両方を著しく向上させることがわかった。
論文 参考訳(メタデータ) (2023-12-26T08:49:57Z) - Function-constrained Program Synthesis [12.55507214959886]
大規模言語モデル(LLM)は、開発環境で利用可能なすべてのコードを描画することで、リアルタイムでコードを生成することができる。
現在のシステムには効果的なリカバリ方法が欠如しており、ユーザーは十分な解に到達するまで、修正されたプロンプトでモデルを反復的に再起動せざるを得ない。
提案手法は,コード生成を明示的な関数集合に制約し,自動生成されたサブ関数を通じて失敗した試行からのリカバリを可能にする。
論文 参考訳(メタデータ) (2023-11-27T02:55:34Z) - GENOME: GenerativE Neuro-symbOlic visual reasoning by growing and
reusing ModulEs [64.49176353858792]
本稿では,モジュールの増殖・再利用による生成的ニューロシンボリック視覚推論を提案する。
提案モデルは,視覚的質問応答や表現理解の参照など,標準的なタスクに対して競合的に機能する。
いくつかのトレーニング例を観察し、モジュールを再使用することで、新しい視覚的推論タスクに適応することができる。
論文 参考訳(メタデータ) (2023-11-08T18:59:05Z) - CodeT5+: Open Code Large Language Models for Code Understanding and
Generation [72.1638273937025]
大きな言語モデル (LLM) は膨大なソースコードで事前訓練されており、コードインテリジェンスにおいて顕著な進歩を遂げている。
CodeT5+は、コンポーネントモジュールを柔軟に組み合わせて、幅広い下流のコードタスクに適合させることができるコードのためのエンコーダ-デコーダLLMのファミリーである。
我々は、ゼロショット、微調整、命令調整を含む20以上のコード関連ベンチマークでCodeT5+を広範囲に評価した。
論文 参考訳(メタデータ) (2023-05-13T14:23:07Z) - Continual Learning via Local Module Composition [11.380264053565082]
ローカルモジュール合成 (LMC) は、モジュール型連続学習のアプローチである。
LMCは各モジュールに、モジュールの入力に対する関連性を推定するローカルな構造コンポーネントを提供する。
論文 参考訳(メタデータ) (2021-11-15T13:34:15Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。