코드 인텔리전스에서 데이터 오염 효과 재고하기
초록
본 논문은 코드 번역·생성·요약 등 주요 코드 인텔리전스 과제에서 입력‑전용, 출력‑전용, 비쌍, 쌍 오염 네 가지 시나리오가 모델 성능에 미치는 영향을 체계적으로 실험한다. RoBERTa·GPT‑2와 LLaMA·StarCoder를 대상으로 사전학습·미세조정·추론 파이프라인을 재현하고, 오염 여부에 따른 BLEU·METEOR 변화를 측정한다. 결과는 PLM은 전통적 파이프라인에서 오염 영향이 미미하지만 직접 추론·소규모 미세조정 시 크게 왜곡될 수 있음을, LLM은 특히 쌍 오염에 민감해 평균 13 % 수준의 과대평가가 발생함을 보여준다.
상세 분석
이 연구는 코드 인텔리전스 분야에서 데이터 오염을 ‘샘플 수준’이 아닌 ‘부분 수준’으로 세분화한 점이 가장 큰 혁신이다. 입력‑전용(input‑only) 오염은 테스트 입력만 사전 학습 데이터에 포함되는 경우로, 예를 들어 Java 코드를 사전 학습했지만 번역 대상인 ArkTS는 포함되지 않은 상황을 말한다. 출력‑전용(output‑only) 오염은 반대로 테스트 출력만 노출되는 경우이며, 비쌍(unpaired) 오염은 입력과 출력이 각각 사전 학습에 존재하지만 동일 파일에 묶여 있지 않아 모델이 입력‑출력 연관성을 학습하지 못하는 상황을 의미한다. 마지막으로 쌍(paired) 오염은 입력‑출력이 그대로 사전 학습 코퍼스에 존재하는 가장 심각한 형태다.
실험 설계는 두 단계로 나뉜다. 첫째, PLM(RoBERTa, GPT‑2)은 사전 학습부터 시작해 오염 데이터를 직접 삽입하고, 이후 동일한 미세조정·추론 파이프라인을 적용한다. 둘째, LLM(LLaMA, StarCoder)은 대규모 사전 학습을 그대로 유지하면서 오염 샘플을 테스트 집합에만 삽입한다. 이렇게 함으로써 ‘통제군’과 ‘오염군’ 간 차이를 통계적으로 검증한다. 평가 지표는 코드 생성·번역·요약에 널리 쓰이는 BLEU와 METEOR이며, 각 실험을 5회 반복해 p‑value를 산출한다.
핵심 결과는 다음과 같다. (1) PLM은 전통적인 사전 학습‑미세조정‑추론 흐름에서는 모든 오염 시나리오가 성능에 거의 영향을 주지 않는다(p > 0.05). BLEU와 METEOR 변동폭이 -0.07 %~0.2 % 수준에 머문다. (2) 그러나 GPT‑2와 같은 디코더‑전용 PLM을 직접 추론하거나 소규모 미세조정만 수행하면 입력‑전용·출력‑전용·비쌍 오염은 무시되지만, 쌍 오염이 있을 경우 BLEU가 평균 54 %, METEOR가 39 %까지 크게 상승한다. 이는 모델이 학습 단계에서 이미 정답을 ‘암기’했기 때문이다. (3) 대규모 미세조정은 이러한 암기를 상쇄시켜 오염 효과를 소멸시킨다. (4) LLM은 사전 학습‑추론 파이프라인만 존재하므로, 오염이 테스트 단계에 직접 반영된다. 특히 쌍 오염이 있을 때 BLEU가 평균 13.4 %, METEOR가 7.4 % 상승한다(p < 0.05). 입력‑전용·출력‑전용·비쌍 오염은 LLM에 거의 영향을 주지 않는다. (5) 이러한 현상은 정적 타입(Java)과 동적 타입(Python) 모두에서 일관되게 나타난다.
이 논문의 의의는 두 가지이다. 첫째, 코드 분야에서 ‘부분 오염’이 실제 서비스 환경에 얼마나 흔한지를 정량화하고, 기존 연구가 과도하게 일반화한 ‘오염 = 과대평가’ 가설을 정교하게 반박한다. 둘째, 모델 종류와 사용 패턴에 따라 오염 위험도가 크게 달라짐을 보여줌으로써, 연구자와 엔지니어가 평가 데이터셋을 설계하거나 모델을 배포할 때 어떤 오염 유형을 특히 주의해야 하는지 명확한 가이드라인을 제공한다. 향후 연구는 더 다양한 코드 작업(예: 버그 수정, 자동 리팩터링)과 최신 초대형 모델에 대한 검증, 그리고 오염을 완화하기 위한 데이터 필터링·샘플링 전략 개발로 확장될 수 있다.
댓글 및 학술 토론
Loading comments...
의견 남기기