ChatPaper.aiChatPaper

ReGAL: Refaktorierung von Programmen zur Entdeckung generalisierbarer Abstraktionen

ReGAL: Refactoring Programs to Discover Generalizable Abstractions

January 29, 2024
Autoren: Elias Stengel-Eskin, Archiki Prasad, Mohit Bansal
cs.AI

Zusammenfassung

Während große Sprachmodelle (LLMs) zunehmend für die Programmsynthese eingesetzt werden, fehlt ihnen die globale Sicht, die notwendig ist, um nützliche Abstraktionen zu entwickeln; sie generieren Programme in der Regel einzeln und wiederholen oft dieselbe Funktionalität. Die Erzeugung von redundantem Code von Grund auf ist sowohl ineffizient als auch fehleranfällig. Um dies zu beheben, schlagen wir Refactoring for Generalizable Abstraction Learning (ReGAL) vor, eine gradientenfreie Methode zum Erlernen einer Bibliothek wiederverwendbarer Funktionen durch Code-Refaktorisierung, d.h. die Umstrukturierung von Code ohne Änderung des Ausführungsoutputs. ReGAL lernt aus einer kleinen Menge bestehender Programme und verifiziert und verfeinert seine Abstraktionen iterativ durch Ausführung. Wir stellen fest, dass die von ReGAL entdeckten gemeinsamen Funktionsbibliotheken die Vorhersage von Programmen über verschiedene Domänen hinweg erleichtern. Auf drei Datensätzen (LOGO-Grafikgenerierung, Datumslogik und TextCraft, ein Minecraft-basiertes Textspiel) verbessern sowohl Open-Source- als auch proprietäre LLMs ihre Genauigkeit bei der Vorhersage von Programmen mit ReGAL-Funktionen. Für CodeLlama-13B führt ReGAL zu absoluten Genauigkeitssteigerungen von 11,5 % bei Grafiken, 26,1 % beim Verständnis von Datumsangaben und 8,1 % bei TextCraft und übertrifft GPT-3.5 in zwei von drei Domänen. Unsere Analyse zeigt, dass die Abstraktionen von ReGAL häufig verwendete Unterprogramme sowie Umgebungsdynamiken kapseln.
English
While large language models (LLMs) are increasingly being used for program synthesis, they lack the global view needed to develop useful abstractions; they generally predict programs one at a time, often repeating the same functionality. Generating redundant code from scratch is both inefficient and error-prone. To address this, we propose Refactoring for Generalizable Abstraction Learning (ReGAL), a gradient-free method for learning a library of reusable functions via code refactorization, i.e. restructuring code without changing its execution output. ReGAL learns from a small set of existing programs, iteratively verifying and refining its abstractions via execution. We find that the shared function libraries discovered by ReGAL make programs easier to predict across diverse domains. On three datasets (LOGO graphics generation, Date reasoning, and TextCraft, a Minecraft-based text game), both open-source and proprietary LLMs improve in accuracy when predicting programs with ReGAL functions. For CodeLlama-13B, ReGAL results in absolute accuracy increases of 11.5% on graphics, 26.1% on date understanding, and 8.1% on TextCraft, outperforming GPT-3.5 in two of three domains. Our analysis reveals ReGAL's abstractions encapsulate frequently-used subroutines as well as environment dynamics.
PDF102December 15, 2024