Don't Judge Code by Its Cover: Exploring Biases in LLM Judges for Code Evaluation
This addresses a critical issue for developers and researchers relying on LLMs for scalable code evaluation, highlighting vulnerabilities that can affect fairness and robustness, though it is incremental in exposing biases rather than solving them.
The study tackled the problem of biases in large language models (LLMs) used as judges for evaluating code correctness, revealing that all tested LLM judges are susceptible to biases from superficial variations like variable names or formatting, leading to inflated or unfairly low scores across five programming languages.
With the growing use of large language models(LLMs) as evaluators, their application has expanded to code evaluation tasks, where they assess the correctness of generated code without relying on reference implementations. While this offers scalability and flexibility, it also raises a critical, unresolved question: Can LLM judges fairly and robustly evaluate semantically equivalent code with superficial variations? Functionally correct code often exhibits variations-such as differences in variable names, comments, or formatting-that should not influence its correctness. Yet, whether LLM judges can reliably handle these variations remains unclear. We present the first comprehensive study of this issue, defining six types of potential bias in code evaluation and revealing their systematic impact on LLM judges. Across five programming languages and multiple LLMs, we empirically demonstrate that all tested LLM judges are susceptible to both positive and negative biases, resulting in inflated or unfairly low scores. Moreover, we observe that LLM judges remain vulnerable to these biases even when prompted to generate test cases before scoring, highlighting the need for more robust code evaluation methods.