TensorX
返回文献探索

Paper · arXiv 2401.16467

ReGAL: Refactoring Programs to Discover Generalizable Abstractions

Elias Stengel-Eskin, Archiki Prasad, Mohit Bansal

10 upvotesJanuary 29, 2024arXiv 预印本
AI 摘要

Refactoring for Generalizable Abstraction Learning (ReGAL) enhances program synthesis by creating a library of reusable functions, improving the accuracy of large language models across diverse tasks.

large language modelsprogram synthesisabstractionscode refactorizationfunction librariesexecutionCodeLlama-13BGPT-3.5

Abstract

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.

北京市昌平区探索星信息技术及软件开发工作室

京ICP备2026059466号
ReGAL: Refactoring Programs to Discover Generalizable Abstractions | TensorX