LibEvolutionEval: A Benchmark and Study for Version-Specific Code Generation

Sachit Kuhar, Wasi Uddin Ahmad, Zijian Wang, Nihal Jain, Haifeng Qian +4 more
11/19/2024
cs.SEcs.AI

No confident code implementation found for this paper.

Abstract

Recent advancements in code completion models have primarily focused on local file contexts. However, these studies do not fully capture the complexity of real-world software development, which often requires the use of rapidly-evolving public libraries. To fill the gap, we introduce LibEvolutionEval, a detailed study requiring an understanding of library evolution to perform in-line code completion accurately. LibEvolutionEval provides a version-specific code-completion task comprised of eight libraries (torch, torchvision, scipy, pil, tqdm, pyyaml, matplotlib, and pandas) as they evolve over the year along with a detailed analysis of the evolution of two popular and well-maintained public libraries: PyTorch and Matplotlib. We evaluate popular public models and find that public library evolution significantly influences model performance. We explored mitigation methods by studying how retrieved version-specific library documentation and prompting can improve the model's capability in handling these fast-evolving packages, paving a promising future path in better handling fast-evolving libraries.

View on arXivView PDF

Code Implementations

No confident code match yet

We couldn't find an author-owned or strongly-evidenced community implementation for this paper. Any repos shown below are weak matches — verify before relying on them.

No code implementations found yet.

Know of an implementation? Let us know in the comments below!

Cite this paper

@article{kuhar2024libevolutioneval,
  title  = {LibEvolutionEval: A Benchmark and Study for Version-Specific Code Generation},
  author = {Sachit Kuhar and Wasi Uddin Ahmad and Zijian Wang and Nihal Jain and Haifeng Qian and Baishakhi Ray and Murali Krishna Ramanathan and Xiaofei Ma and Anoop Deoras},
  year   = {2024},
  eprint = {2412.04478},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2412.04478v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2412.04478.svg)](https://codeofpaper.com/paper/2412.04478)

Discussion