ChatPaper.aiChatPaper

CodeChain: Verso una Generazione Modulare di Codice Attraverso una Catena di Auto-revisioni con Sottomoduli Rappresentativi

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

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

Abstract

I modelli linguistici di grandi dimensioni (LLM) hanno già dimostrato una notevole abilità nel risolvere compiti di programmazione più semplici, come quelli presenti nei benchmark HumanEval o MBPP. Tuttavia, affrontare problemi di programmazione più complessi e competitivi rimane ancora una sfida significativa per questi modelli, probabilmente a causa della loro tendenza a generare soluzioni come blocchi di codice monolitici, anziché scomporli in sotto-attività e sotto-moduli logici. D'altra parte, i programmatori esperti scrivono istintivamente codice modulare con astrazioni per risolvere compiti complessi, spesso riutilizzando moduli sviluppati in precedenza. Per colmare questa lacuna, proponiamo CodeChain, un nuovo framework per l'inferenza che stimola la generazione di codice modulare attraverso una catena di auto-revisioni, ciascuna guidata da alcuni sotto-moduli rappresentativi generati nelle iterazioni precedenti. Nello specifico, CodeChain prima istruisce l'LLM a generare codice modulare attraverso il prompting a catena di pensiero. Successivamente, applica una catena di auto-revisioni iterando due passaggi: 1) estrazione e clustering dei sotto-moduli generati, selezionando i rappresentanti dei cluster come implementazioni più generiche e riutilizzabili, e 2) arricchimento del prompt originale a catena di pensiero con queste implementazioni di moduli selezionate, istruendo l'LLM a rigenerare nuove soluzioni modulari. Abbiamo osservato che, incoraggiando naturalmente l'LLM a riutilizzare i sotto-moduli sviluppati e verificati in precedenza, CodeChain può migliorare significativamente sia la modularità che la correttezza delle soluzioni generate, ottenendo miglioramenti relativi del 35% su APPS e del 76% su CodeContests per il pass@1. È dimostrato essere efficace sia su LLM di OpenAI che su LLM open-source come WizardCoder. Abbiamo inoltre condotto studi di ablazione completi con diversi metodi di prompting, numero di cluster, dimensioni dei modelli, qualità dei programmi, ecc., per fornire utili approfondimenti che sostengono il successo di 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.
PDF121February 17, 2026