RES-Q: Evaluating Code-Editing Large Language Model Systems at the Repository Scale
<|reference_start|>RES-Q: Evaluating Code-Editing Large Language Model Systems at the Repository Scale: The instruction-following ability of Large Language Models (LLMs) has cultivated a class of LLM-based systems capable of approaching complex tasks such as making edits to large code repositories. Due to the high sensitivity and unpredictability of LLM behavior in response to changes in prompting, robust evaluation tools are needed to drive future iteration of these systems. We propose RES-Q, a natural language instruction-based benchmark for evaluating $\textbf{R}$epository $\textbf{E}$diting $\textbf{S}$ystems, which consists of 100 handcrafted repository editing tasks derived from real GitHub commits. Given an edit instruction and a code repository, RES-Q evaluates an LLM system's ability to interpret the instruction, navigate the repository to gather relevant information, and construct an appropriate edit that satisfies the specified criteria. We argue that evaluating LLMs in this way addresses issues with traditional benchmarks and provides a more holistic assessment of a model's abilities. We evaluate various state-of-the-art LLMs as language agents in a repository-editing system built on Qurrent OS, our language agent development software. Despite their 1% pass@1 performance difference on HumanEval, we find Claude Sonnet 3.5 outperforms GPT-4o by 12% pass@1 on RES-Q, indicating RES-Q's capacity to differentiate model capability as traditional benchmarks approach saturation. We further investigate token efficiency, performance relationships with existing benchmarks, and interesting disparities between closed and open-source LLMs. Code and dataset are available at https://github.com/Qurrent-AI/RES-Q.<|reference_end|>
@article{labash2024res-q:,
    title={RES-Q: Evaluating Code-Editing Large Language Model Systems at the
  Repository Scale},
    author={Beck LaBash, August Rosedale, Alex Reents, Lucas Negritto, Colin Wiel},
    journal={arXiv preprint arXiv:2406.16801},
    year={2024},
    archivePrefix={arXiv},
    eprint={2406.16801},
    primaryClass={cs.CL}
}