In plain words: A test set pairs Python programs after 20-plus rewrites that keep or change what the code does, checking if code-trained AI can tell them apart. It edged out simple text matching by only a little, showing both barely grasp what code actually does.
Abstract · What can Large Language Models Capture about Code Functional Equivalence?
Code-LLMs, LLMs pre-trained on large code corpora, have shown great progress in learning rich representations of the structure and syntax of code, successfully using it to generate or classify code fragments. At the same time, understanding if they are able to do so because they capture code semantics, and how well, is still an open question. In this paper, we tackle this problem by introducing SeqCoBench, a benchmark for systematically assessing how Code-LLMs can capture code functional equivalence. SeqCoBench contains over 20 code transformations that either preserve or alter the semantics of Python programs. We conduct extensive evaluations in different settings, including zero-shot and parameter-efficient finetuning methods on state-of-the-art (Code)-LLMs to see if they can discern semantically equivalent or different pairs of programs in SeqCoBench. We find that the performance gap between these LLMs and classical match-based retrieval scores is minimal, with both approaches showing a concerning lack of depth in understanding code semantics.
Nickil Maveli, Antonio Vergari, Shay B. Cohen
arXiv:2408.11081 · cs.SE, cs.AI, cs.CL, cs.LG · submitted Aug 20, 2024 · updated Feb 12, 2025
abstract · pdf · html · Accepted to Findings of NAACL 2025