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

Fuente: arXiv
Guardado en:
Detalles Bibliográficos
Autores principales: Chen, Jingchang, Tang, Hongxuan, Chu, Zheng, Chen, Qianglong, Wang, Zekun, Liu, Ming, Qin, Bing
Formato: Preprint
Publicado: 2024
Materias:
Acceso en línea:
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
_version_ 1866913570074132480
author Chen, Jingchang
Tang, Hongxuan
Chu, Zheng
Chen, Qianglong
Wang, Zekun
Liu, Ming
Qin, Bing
author_facet Chen, Jingchang
Tang, Hongxuan
Chu, Zheng
Chen, Qianglong
Wang, Zekun
Liu, Ming
Qin, Bing
contents 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.
format Preprint
id arxiv_https___arxiv_org_abs_2405_20092
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Divide-and-Conquer Meets Consensus: Unleashing the Power of Functions in Code Generation
Chen, Jingchang
Tang, Hongxuan
Chu, Zheng
Chen, Qianglong
Wang, Zekun
Liu, Ming
Qin, Bing
Computation and Language
Software Engineering
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.
title Divide-and-Conquer Meets Consensus: Unleashing the Power of Functions in Code Generation
topic Computation and Language
Software Engineering
url https://arxiv.org/abs/2405.20092