ChatPaper.aiChatPaper

CodeChain: Rumo à Geração Modular de Código por Meio de Cadeias de Autorevisões com Submódulos Representativos

CodeChain: Towards Modular Code Generation Through Chain of Self-revisions with Representative Sub-modules

October 13, 2023
Autores: Hung Le, Hailin Chen, Amrita Saha, Akash Gokul, Doyen Sahoo, Shafiq Joty
cs.AI

Resumo

Modelos de Linguagem de Grande Escala (LLMs) já se tornaram bastante proficientes em resolver tarefas de programação mais simples, como aquelas presentes nos benchmarks HumanEval ou MBPP. No entanto, resolver tarefas de programação mais complexas e competitivas ainda é bastante desafiador para esses modelos - possivelmente devido à sua tendência de gerar soluções como blocos de código monolíticos, em vez de decompô-las em subtarefas e submódulos lógicos. Por outro lado, programadores experientes instintivamente escrevem código modularizado com abstração para resolver tarefas complexas, frequentemente reutilizando módulos previamente desenvolvidos. Para abordar essa lacuna, propomos o CodeChain, um novo framework de inferência que elicita a geração de código modularizado por meio de uma cadeia de auto-revisões, cada uma guiada por alguns submódulos representativos gerados em iterações anteriores. Concretamente, o CodeChain primeiro instrui o LLM a gerar códigos modularizados por meio de prompts de cadeia de pensamento (chain-of-thought). Em seguida, aplica uma cadeia de auto-revisões iterando dois passos: 1) extrair e agrupar os submódulos gerados e selecionar os representantes dos clusters como implementações mais genéricas e reutilizáveis, e 2) aumentar o prompt original de cadeia de pensamento com essas implementações de módulos selecionadas e instruir o LLM a re-gerar novas soluções modularizadas. Descobrimos que, ao incentivar naturalmente o LLM a reutilizar os submódulos previamente desenvolvidos e verificados, o CodeChain pode aumentar significativamente tanto a modularidade quanto a correção das soluções geradas, alcançando melhorias relativas de 35% no pass@1 no APPS e 76% no CodeContests. Ele se mostrou eficaz tanto em LLMs da OpenAI quanto em LLMs de código aberto, como o WizardCoder. Também realizamos estudos abrangentes de ablação com diferentes métodos de prompting, número de clusters, tamanhos de modelos, qualidades de programas, etc., para fornecer insights úteis que sustentam o sucesso do CodeChain.
English
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.
PDF131December 14, 2025