GenCodeSearchNet: A Benchmark Test Suite for Evaluating Generalization in Programming Language Understanding

Andor Diera, Abdelhalim Dahou, Lukas Galke, Fabian Karl, Florian Sihler +1 more
11/16/2023
cs.CLcs.PL

No official code found. Best implementation: drndr/gencodesearchnet (4 stars, last commit 2024-11-28).

Abstract

Language models can serve as a valuable tool for software developers to increase productivity. Large generative models can be used for code generation and code completion, while smaller encoder-only models are capable of performing code search tasks using natural language queries.These capabilities are heavily influenced by the quality and diversity of the available training data. Source code datasets used for training usually focus on the most popular languages and testing is mostly conducted on the same distributions, often overlooking low-resource programming languages. Motivated by the NLP generalization taxonomy proposed by Hupkes et.\,al., we propose a new benchmark dataset called GenCodeSearchNet (GeCS) which builds upon existing natural language code search datasets to systemically evaluate the programming language understanding generalization capabilities of language models. As part of the full dataset, we introduce a new, manually curated subset StatCodeSearch that focuses on R, a popular but so far underrepresented programming language that is often used by researchers outside the field of computer science. For evaluation and comparison, we collect several baseline results using fine-tuned BERT-style models and GPT-style large language models in a zero-shot setting.

View on arXivView PDF

Code Implementations(1)

40Python, Jupyter NotebookJul 13, 20231 years ago

Similar Papers

Cite this paper

@article{diera2023gencodesearchnet,
  title  = {GenCodeSearchNet: A Benchmark Test Suite for Evaluating Generalization in Programming Language Understanding},
  author = {Andor Diera and Abdelhalim Dahou and Lukas Galke and Fabian Karl and Florian Sihler and Ansgar Scherp},
  year   = {2023},
  eprint = {2311.09707},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2311.09707v1}
}

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/2311.09707.svg)](https://codeofpaper.com/paper/2311.09707)

Discussion