HyperAIHyperAI
vor 13 Tagen

CodeChain: Hin zum modularen Codegenerieren durch Ketten selbstrevisierender Prozesse mit repräsentativen Sub-Modulen

Hung Le, Hailin Chen, Amrita Saha, Akash Gokul, Doyen Sahoo, Shafiq Joty
CodeChain: Hin zum modularen Codegenerieren durch Ketten selbstrevisierender Prozesse mit repräsentativen Sub-Modulen
Abstract

Große Sprachmodelle (Large Language Models, LLMs) sind bereits recht geschickt darin, einfachere Programmieraufgaben wie jene aus den Benchmarks HumanEval oder MBPP zu lösen. Die Bewältigung komplexerer und wettbewerbsintensiver Programmieraufgaben bleibt für diese Modelle jedoch weiterhin herausfordernd – möglicherweise aufgrund ihrer Neigung, Lösungen als monolithische Codeblöcke zu generieren, anstatt sie in logische Teil-Aufgaben und Teilmodule zu zerlegen. Im Gegensatz dazu schreiben erfahrene Programmierer intuitiv modularisierten Code mit Abstraktionen, um komplexe Aufgaben zu lösen, und nutzen oft bereits entwickelte Module wiederholt. Um diese Lücke zu schließen, stellen wir CodeChain vor, einen neuartigen Inferenzrahmen, der durch eine Kette selbstkorrigierender Schritte modularisierte Code-Generierung anregt, wobei jeder Schritt durch repräsentative Teilmodule aus vorherigen Iterationen geleitet wird. Konkret instruiert CodeChain das LLM zunächst über Chain-of-Thought-Prompting zur Generierung modularer Codes. Anschließend wird eine Kette selbstkorrigierender Iterationen durchgeführt, bestehend aus zwei Schritten: 1) Extraktion und Clusterung der generierten Teilmodule sowie Auswahl der Cluster-Vertreter als allgemeinere und wiederverwendbare Implementierungen; und 2) Erweiterung des ursprünglichen Chain-of-Thought-Prompts mit diesen ausgewählten Modul-Implementierungen und erneute Instruktion an das LLM, neue, modularisierte Lösungen zu generieren. Wir stellen fest, dass CodeChain durch die natürliche Förderung der Wiederverwendung bereits entwickelter und verifizierter Teilmodule die Modularität sowie die Korrektheit der generierten Lösungen erheblich steigert und relative Verbesserungen bei pass@1 um 35 % auf APPS und um 76 % auf CodeContests erreicht. Die Wirksamkeit von CodeChain zeigt sich sowohl bei OpenAI-LLMs als auch bei open-source-LLMs wie WizardCoder. Zudem führen wir umfassende Ablation-Studien mit verschiedenen Prompting-Methoden, unterschiedlicher Anzahl von Clustern, Modellgrößen und Programmlaufqualitäten durch, um wertvolle Einblicke in die Erfolgsfaktoren von CodeChain zu gewinnen.

CodeChain: Hin zum modularen Codegenerieren durch Ketten selbstrevisierender Prozesse mit repräsentativen Sub-Modulen | Neueste Forschungsarbeiten | HyperAI