Divide-and-Conquer Meets Consensus: Unleashing the Power of Functions in Code Generation

要約

大規模な言語モデルによるコード生成の最近の進歩にもかかわらず、複雑な要件を満たすプログラムには依然として苦戦しています。
最近の研究では、計画と解決の分解を利用して複雑さを軽減し、自己テストを利用して生成されたプログラムを改良しています。
しかし、事前に詳細な要件を計画することは困難な場合があり、自己改善を達成するにはテストが正確である必要があります。
この目的を達成するために、機能的合意を備えた分割統治戦略を組み込んだコード生成フレームワークである FunCoder を提案します。
具体的には、FunCoder はコード生成中にサブ関数をより小さな目標として再帰的に分岐し、ツリー階層で表されます。
これらのサブ機能は、より複雑な目的を達成するために複合化されます。
さらに、プログラムの動作の類似点を特定することで形成されたコンセンサスを介して関数を指定し、エラーの伝播を軽減します。
FunCoder は、GPT-3.5 および GPT-4 を使用した HumanEval、MBPP、xCodeEval、および MATH において、最先端のメソッドを平均で +9.8% 上回ります。
さらに、私たちの方法は小規模なモデルでも優位性を示しています。FunCoder を使用すると、StableCode-3b は GPT-3.5 を +18.6% 上回り、HumanEval で GPT-4 のパフォーマンスの 97.7% を達成します。
さらなる分析により、私たちが提案した動的関数分解が複雑な要件を処理できること、および正確性評価においては関数のコンセンサスが自己テストよりも優先されることが明らかになりました。

要約(オリジナル)

Despite recent progress made by large language models in code generation, they still struggle with programs that meet complex requirements. Recent work utilizes plan-and-solve decomposition to decrease the complexity and leverage self-tests to refine the generated program. Yet, planning deep-inside requirements in advance can be challenging, and the tests need to be accurate to accomplish self-improvement. To this end, we propose FunCoder, a code generation framework incorporating the divide-and-conquer strategy with functional consensus. Specifically, FunCoder recursively branches off sub-functions as smaller goals during code generation, represented by a tree hierarchy. These sub-functions are then composited to attain more complex objectives. Additionally, we designate functions via a consensus formed by identifying similarities in program behavior, mitigating error propagation. FunCoder outperforms state-of-the-art methods by +9.8% on average in HumanEval, MBPP, xCodeEval and MATH with GPT-3.5 and GPT-4. Moreover, our method demonstrates superiority on smaller models: With FunCoder, StableCode-3b surpasses GPT-3.5 by +18.6% and achieves 97.7% of GPT-4’s performance on HumanEval. Further analysis reveals that our proposed dynamic function decomposition is capable of handling complex requirements, and the functional consensus prevails over self-testing in correctness evaluation.

arxiv情報

著者 Jingchang Chen,Hongxuan Tang,Zheng Chu,Qianglong Chen,Zekun Wang,Ming Liu,Bing Qin
発行日 2024-05-30 14:31:33+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

カテゴリー: cs.CL, cs.SE パーマリンク