CLSEJun 5, 2023

A Static Evaluation of Code Completion by Large Language Models

AmazonStanford
arXiv:2306.03203v1234 citationsh-index: 98Has Code
Originality Incremental advance
AI Analysis

This work addresses the need for efficient and applicable evaluation methods for code generation models in software development, though it is incremental as it builds on existing static analysis tools.

The authors tackled the problem of evaluating code generation by large language models on complex real-world projects by proposing a static evaluation framework using Abstract Syntax Trees to quantify static errors in Python code completions, revealing that Undefined Name and Unused Variable are the most common errors and showing the impact of factors like sampling temperature and model size.

Large language models trained on code have shown great potential to increase productivity of software developers. Several execution-based benchmarks have been proposed to evaluate functional correctness of model-generated code on simple programming problems. Nevertheless, it is expensive to perform the same evaluation on complex real-world projects considering the execution cost. On the contrary, static analysis tools such as linters, which can detect errors without running the program, haven't been well explored for evaluating code generation models. In this work, we propose a static evaluation framework to quantify static errors in Python code completions, by leveraging Abstract Syntax Trees. Compared with execution-based evaluation, our method is not only more efficient, but also applicable to code in the wild. For experiments, we collect code context from open source repos to generate one million function bodies using public models. Our static analysis reveals that Undefined Name and Unused Variable are the most common errors among others made by language models. Through extensive studies, we also show the impact of sampling temperature, model size, and context on static errors in code completions.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes