LLM-Guided Genetic Improvement: Envisioning Semantic Aware Automated Software Evolution
By: Karine Even-Mendoza , Alexander Brownlee , Alina Geiger and more
Potential Business Impact:
Helps computers fix code better and faster.
Genetic Improvement (GI) of software automatically creates alternative software versions that are improved according to certain properties of interests (e.g., running-time). Search-based GI excels at navigating large program spaces, but operates primarily at the syntactic level. In contrast, Large Language Models (LLMs) offer semantic-aware edits, yet lack goal-directed feedback and control (which is instead a strength of GI). As such, we propose the investigation of a new research line on AI-powered GI aimed at incorporating semantic aware search. We take a first step at it by augmenting GI with the use of automated clustering of LLM edits. We provide initial empirical evidence that our proposal, dubbed PatchCat, allows us to automatically and effectively categorize LLM-suggested patches. PatchCat identified 18 different types of software patches and categorized newly suggested patches with high accuracy. It also enabled detecting NoOp edits in advance and, prospectively, to skip test suite execution to save resources in many cases. These results, coupled with the fact that PatchCat works with small, local LLMs, are a promising step toward interpretable, efficient, and green GI. We outline a rich agenda of future work and call for the community to join our vision of building a principled understanding of LLM-driven mutations, guiding the GI search process with semantic signals.
Similar Papers
AI-Guided Exploration of Large-Scale Codebases
Software Engineering
Helps programmers understand tricky computer code faster.
LLM-Guided Evolution: An Autonomous Model Optimization for Object Detection
Neural and Evolutionary Computing
Makes AI better at finding objects in pictures.
PATCH: Empowering Large Language Model with Programmer-Intent Guidance and Collaborative-Behavior Simulation for Automatic Bug Fixing
Software Engineering
Helps computers fix code bugs like a team.