BugPilot: Complex Bug Generation for Efficient Learning of SWE Skills
This work addresses the need for efficient training data for language model-based software engineering agents, though it is incremental as it builds on existing bug generation methods.
The paper tackles the problem of generating high-quality synthetic bugs for training software engineering agents by introducing a method where agents unintentionally break tests while adding features, resulting in more realistic bugs. The approach outperforms other bug datasets by 2% with half the training data and achieves state-of-the-art results, such as a 54.6% pass@1 on SWE-bench Verified with a 32B parameter model.
High quality bugs are key to training the next generation of language model based software engineering (SWE) agents. We introduce a novel method for synthetic generation of difficult and diverse bugs. Our method instructs SWE Agents to introduce a feature into the codebase whereby they may unintentionally break tests, resulting in bugs. Prior approaches often induce an out-of-distribution effect by generating bugs intentionally (e.g. by introducing local perturbation to existing code), which does not reflect realistic development processes. We perform qualitative analysis to demonstrate that our approach for generating bugs more closely reflects the patterns found in human-authored edits. Through extensive experiments, we demonstrate that our bugs provide more efficient training data for supervised fine-tuning, outperforming other bug datasets by 2% with half the training data (1.2k vs. 3k bugs). We train on our newly generated bugs in addition to existing bug datasets to get FrogBoss a state-of-the-art 32B parameter model on SWE-bench Verified with a pass@1 of 54.6% and FrogMini a state-of-the-art 14B model on SWE-bench Verified with a pass@1 of 45.3% on SWE-bench Verified averaged over three seeds.