CodeRAG-Bench: Can Retrieval Augment Code Generation?

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Wang, Zora Zhiruo, Asai, Akari, Yu, Xinyan Velocity, Xu, Frank F., Xie, Yiqing, Neubig, Graham, Fried, Daniel
Format: Preprint
Published: 2024
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866929733152800768
author Wang, Zora Zhiruo
Asai, Akari
Yu, Xinyan Velocity
Xu, Frank F.
Xie, Yiqing
Neubig, Graham
Fried, Daniel
author_facet Wang, Zora Zhiruo
Asai, Akari
Yu, Xinyan Velocity
Xu, Frank F.
Xie, Yiqing
Neubig, Graham
Fried, Daniel
contents While language models (LMs) have proven remarkably adept at generating code, many programs are challenging for LMs to generate using their parametric knowledge alone. Providing external contexts such as library documentation can facilitate generating accurate and functional code. Despite the success of retrieval-augmented generation (RAG) in various text-oriented tasks, its potential for improving code generation remains under-explored. In this work, we conduct a systematic, large-scale analysis by asking: in what scenarios can retrieval benefit code generation models? and what challenges remain? We first curate a comprehensive evaluation benchmark, CodeRAG-Bench, encompassing three categories of code generation tasks, including basic programming, open-domain, and repository-level problems. We aggregate documents from five sources for models to retrieve contexts: competition solutions, online tutorials, library documentation, StackOverflow posts, and GitHub repositories. We examine top-performing models on CodeRAG-Bench by providing contexts retrieved from one or multiple sources. While notable gains are made in final code generation by retrieving high-quality contexts across various settings, our analysis reveals room for improvement -- current retrievers still struggle to fetch useful contexts especially with limited lexical overlap, and generators fail to improve with limited context lengths or abilities to integrate additional contexts. We hope CodeRAG-Bench serves as an effective testbed to encourage further development of advanced code-oriented RAG methods.
format Preprint
id arxiv_https___arxiv_org_abs_2406_14497
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle CodeRAG-Bench: Can Retrieval Augment Code Generation?
Wang, Zora Zhiruo
Asai, Akari
Yu, Xinyan Velocity
Xu, Frank F.
Xie, Yiqing
Neubig, Graham
Fried, Daniel
Software Engineering
Computation and Language
While language models (LMs) have proven remarkably adept at generating code, many programs are challenging for LMs to generate using their parametric knowledge alone. Providing external contexts such as library documentation can facilitate generating accurate and functional code. Despite the success of retrieval-augmented generation (RAG) in various text-oriented tasks, its potential for improving code generation remains under-explored. In this work, we conduct a systematic, large-scale analysis by asking: in what scenarios can retrieval benefit code generation models? and what challenges remain? We first curate a comprehensive evaluation benchmark, CodeRAG-Bench, encompassing three categories of code generation tasks, including basic programming, open-domain, and repository-level problems. We aggregate documents from five sources for models to retrieve contexts: competition solutions, online tutorials, library documentation, StackOverflow posts, and GitHub repositories. We examine top-performing models on CodeRAG-Bench by providing contexts retrieved from one or multiple sources. While notable gains are made in final code generation by retrieving high-quality contexts across various settings, our analysis reveals room for improvement -- current retrievers still struggle to fetch useful contexts especially with limited lexical overlap, and generators fail to improve with limited context lengths or abilities to integrate additional contexts. We hope CodeRAG-Bench serves as an effective testbed to encourage further development of advanced code-oriented RAG methods.
title CodeRAG-Bench: Can Retrieval Augment Code Generation?
topic Software Engineering
Computation and Language
url https://arxiv.org/abs/2406.14497