ChatPaper.aiChatPaper

CodeChain: Naar modulaire codegeneratie via een keten van zelfrevisies met representatieve submodules

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

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

Samenvatting

Grote Taalmodellen (LLMs) zijn al behoorlijk bedreven geworden in het oplossen van eenvoudigere programmeertaken, zoals die in de HumanEval- of MBPP-benchmarks. Het oplossen van complexere en competitieve programmeertaken blijft echter nog steeds een uitdaging voor deze modellen – mogelijk vanwege hun neiging om oplossingen te genereren als monolithische codeblokken in plaats van ze op te delen in logische sub-taken en sub-modules. Ervaren programmeurs schrijven daarentegen instinctief gemodulariseerde code met abstractie om complexe taken op te lossen, waarbij ze vaak eerder ontwikkelde modules hergebruiken. Om deze kloof te overbruggen, stellen we CodeChain voor, een nieuw raamwerk voor inferentie dat gemodulariseerde codegeneratie stimuleert door middel van een keten van zelfrevisies, waarbij elke revisie wordt geleid door enkele representatieve sub-modules die in eerdere iteraties zijn gegenereerd. Concreet instrueert CodeChain eerst het LLM om gemodulariseerde code te genereren via chain-of-thought prompting. Vervolgens past het een keten van zelfrevisies toe door de volgende twee stappen te herhalen: 1) het extraheren en clusteren van de gegenereerde sub-modules en het selecteren van de clusterrepresentanten als de meer generieke en herbruikbare implementaties, en 2) het aanvullen van de oorspronkelijke chain-of-thought prompt met deze geselecteerde module-implementaties en het instrueren van het LLM om nieuwe gemodulariseerde oplossingen te genereren. We ontdekken dat door het LLM op natuurlijke wijze aan te moedigen om eerder ontwikkelde en geverifieerde sub-modules te hergebruiken, CodeChain zowel de modulariteit als de correctheid van de gegenereerde oplossingen aanzienlijk kan verbeteren, met relatieve pass@1-verbeteringen van 35% op APPS en 76% op CodeContests. Het blijkt effectief te zijn voor zowel OpenAI LLMs als open-source LLMs zoals WizardCoder. We voeren ook uitgebreide ablatiestudies uit met verschillende methoden van prompting, aantal clusters, modelgroottes, programmakwaliteiten, enz., om nuttige inzichten te bieden die het succes van CodeChain onderbouwen.
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