
LLM vs LLM: Fault Localization
A self-evolving dual-LLM framework where one model injects faults and another learns to localize them, generating 5,000+ synthetic C++ programs to train a 12B-parameter debugger.
As a graduate research project at the University of Virginia, I designed a novel framework where two large language models (LLMs) collaborate for automated fault localization. One LLM functions as a fault injector, generating synthetic buggy C++ programs, while the other acts as a debugger, fine-tuned to pinpoint bug locations. Inspired by generative adversarial setups, this iterative loop creates a self-improving debugging ecosystem.
I built the prototype around Gemma-3 12B, generated 5,000+ buggy programs, and fine-tuned a 12-billion-parameter debugger model using PEFT and QLoRA on CUDA-accelerated infrastructure. Preliminary results showed measurable improvements in localization accuracy and training loss reduction. The framework lays the groundwork for incorporating real bug benchmarks such as Defects4J and CodeNet, optimized inference pipelines, and reinforced LLM feedback loops.
With adequate compute, this LLM-vs-LLM framework has the potential to significantly advance automated debugging and accelerate software development workflows.
Project Details
Technical Insight
This project utilizes a high-performance distributed architecture and specialized AI integration.