Table of Contents
Fetching ...

Rethinking the effects of data contamination in Code Intelligence

Zhen Yang, Hongyi Lin, Yifan He, Junqi Wang, Zeyu Sun, Shuo Liu, Jie Xu, Pengpeng Wang, Zhongxing Yu, Qingyuan Liang

TL;DR

This work analyzes fine-grained data contamination in code intelligence by introducing four contamination settings and evaluating their effects on RoBERTa, GPT-2, LLaMA, and StarCoder across code translation, generation, and summarization for Java and Python. The study reveals that input-only and output-only contamination rarely inflate PLM performance, whereas paired contamination can significantly affect decoder-only LLMs, with large-scale fine-tuning mitigating these effects for PLMs. These findings challenge the notion that contamination universally leads to performance overestimation and offer guidance for robust evaluation and deployment of code intelligence systems. The authors also provide reproducible contamination extraction methods to support future research in this area.

Abstract

In recent years, code intelligence has gained increasing importance in the field of automated software engineering. Meanwhile, the widespread adoption of Pretrained Language Models (PLMs) and Large Language Models (LLMs) has raised concerns regarding data contamination and its potential impact on model performance evaluation. Previous studies mainly focused on sample-level contamination, ignoring partial contamination scenarios that are pervasive in code intelligence. This paper fills this gap and presents a systematic empirical study to investigate the fine-grained data contamination on mainstream code tasks. Our study involves diverse representative PLMs: RoBERTa and GPT-2, and LLMs: LLaMA and StarCoder, covering three major tasks: code translation, code generation, and code summarization, across two Programming Languages (PLs): Java and Python. We categorize contamination scenarios into four types according to the code intelligence practice, namely input-only, output-only, unpaired, and paired contamination settings, and construct corresponding experimental and control groups for exploration. Experimental results show that, under the pre-training, fine-tuning, and inference paradigm adopted by PLMs, even deliberately injecting paired contamination does not lead to significant performance overestimation. But direct inference or small-scale fine-tuning uncovers the contamination effects. In contrast, LLMs with pre-training and inference paradigm are significantly affected by the paired contamination. Apart from the above, other contamination scenarios have no impact on both PLMs and LLMs. Our findings challenge the conventional belief that contamination inevitably leads to performance overestimation, providing new insights into the evaluation and deployment of code intelligence models.

Rethinking the effects of data contamination in Code Intelligence

TL;DR

This work analyzes fine-grained data contamination in code intelligence by introducing four contamination settings and evaluating their effects on RoBERTa, GPT-2, LLaMA, and StarCoder across code translation, generation, and summarization for Java and Python. The study reveals that input-only and output-only contamination rarely inflate PLM performance, whereas paired contamination can significantly affect decoder-only LLMs, with large-scale fine-tuning mitigating these effects for PLMs. These findings challenge the notion that contamination universally leads to performance overestimation and offer guidance for robust evaluation and deployment of code intelligence systems. The authors also provide reproducible contamination extraction methods to support future research in this area.

Abstract

In recent years, code intelligence has gained increasing importance in the field of automated software engineering. Meanwhile, the widespread adoption of Pretrained Language Models (PLMs) and Large Language Models (LLMs) has raised concerns regarding data contamination and its potential impact on model performance evaluation. Previous studies mainly focused on sample-level contamination, ignoring partial contamination scenarios that are pervasive in code intelligence. This paper fills this gap and presents a systematic empirical study to investigate the fine-grained data contamination on mainstream code tasks. Our study involves diverse representative PLMs: RoBERTa and GPT-2, and LLMs: LLaMA and StarCoder, covering three major tasks: code translation, code generation, and code summarization, across two Programming Languages (PLs): Java and Python. We categorize contamination scenarios into four types according to the code intelligence practice, namely input-only, output-only, unpaired, and paired contamination settings, and construct corresponding experimental and control groups for exploration. Experimental results show that, under the pre-training, fine-tuning, and inference paradigm adopted by PLMs, even deliberately injecting paired contamination does not lead to significant performance overestimation. But direct inference or small-scale fine-tuning uncovers the contamination effects. In contrast, LLMs with pre-training and inference paradigm are significantly affected by the paired contamination. Apart from the above, other contamination scenarios have no impact on both PLMs and LLMs. Our findings challenge the conventional belief that contamination inevitably leads to performance overestimation, providing new insights into the evaluation and deployment of code intelligence models.

Paper Structure

This paper contains 36 sections, 2 equations, 1 figure, 6 tables.

Figures (1)

  • Figure 1: Performance Variation on Different Training Epochs