Cohere에서 흥미로운 논문을 하나 발표했다. 현재 LLM의 성능 평가 한 축을 담당하는 코드 부분에서 쓰는 주요 벤치마크들이 오염이 심해지고 있다는 것을 제시한 것이다. 여기서 오염이란 모델을 훈련할 때 쓰는 데이터세트에 직, 간접적으로 평가용으로 쓰이는 데이터들이 섞여들어가는 것을 말한다. 시험으로 예를 들면, 학생이 미리 답안지를 직, 간접적으로 훑게 했다고 보면 된다. 그렇게 공부한 학생은 테스트에서 높은 성적이 나오겠지만 실제 성적은 그렇지 않은 것처럼 말이다.
Cohere는 오염이 세 가지로 진행된다고 말했다.
- 직접적인 데이터 누출(직접적으로 훈련 데이터에 들어간 것)
- 합성데이터를 통한 간접 누출
- 모델이 학습 자체를 평가세트에 너무 과적합하게 훈련된 것
3번째의 경우는 AI 모델 개발자들이 벤치마크 데이터셋, 코드의 경우 가장 널리 쓰이는 벤치마크가 Humaneval, MBPP 인데, 이러한 벤치마크에서 높은 성능을 보이도록 하고 싶어 그 데이터세트에서만 최적화시키는 것을 말한다. 이렇게 과적합되면 당연히 시험지에서의 성능은 좋게 나오겠지만 실제 성능은 많이 부족할 가능성이 높다.
본 논문에서는 HumanEval(Chen et al., 2021), MBPP(Austin et al., 2021)을 기존 벤치마크로써 실험했다. 댄 헨드릭스의 APPS 등도 있지만 가장 널리 쓰이는 벤치마크를 채택했다.
오염의 세 이유 중 첫 번째, 직접적인 데이터 누출.
가장 명백한 이유이자 가장 단순한 이유다. 의도적이든 의도하지 않았든 직접적으로 누출된다면 벤치마크에 대한 신뢰도 자체를 무너뜨리고 모델의 유용성도 망가진다. 이제 한 예제를 만들때마다 수십달러씩 들기 때문에 비용이 부담되는 팀일수록 이는 부담될 것이고, 깃헙, Stackoverflow 등에서 직접 긁어와 데이터로 활용하면 당연하게도 벤치마크 내용이 섞여들어가기 때문에 오염의 잠재적 출처가 된다고 명시하고 있다.
이렇게 웹에서 긁어온 자료로 학습시킨 후 오염을 제거하기 위해 필터를 사용하는데 일반적으로 n-그램 매칭, 해시함수를 사용한다.
n그램 매칭의 경우 This is a test 라는 문장이 있다고 가정하면 "This is" "is a" "a test" 식으로 n개의 연속된 단어 묶음으로 나누어 중복을 찾아 없앤다. 정확한 중복을 찾아내 제거하는 데는 쓸만하지만 약간의 순서만 바뀌어도 잘 작동하지 않는다는 단점이 있다.
해시함수의 경우는 일정길이의 텍스트를 해시함수로 해시값을 생성해 그 안에서 중복을 확인해 제거한다. 해시값으로 만들어 처리하기 때문에 효율성은 높아지지만 아주 작은 수정만 있어도 영 다른 해시값이 나오기 때문에 여기서도 한계가 있다.
이런 방법들은 한마디로 수박 겉핥기 식의 표면적인 제거에 불과한 것이다. 하지만 대규모로 진행해야하기 때문에 대부분은 이러한 표면적인 방법을 사용하고 있다.(Lee et al., 2022) 이는 거꾸로 말하면 오염이 공공연하게 진행되고 있다는 뜻이기도 하다.
이는 합성데이터 쪽에서도 동일하다고 지적하고 있다.
Figure 1을 확인해보면 좌측은 HumanEval, 우측은 MBPP 자료다. x축은 각각의 기존 '오염이 진행되었다고 보는' 벤치마크들이며 y축은 LBPP, 이번 논문에서 내놓은 새로운 벤치마크다. 수치는 Pass@1, 즉 모델이 첫 테스트에서 정답을 맞추는 비율이다.
OpenAI 모델이 모든 벤치마크에서 가장 높은 성능을 보이고 있다. HumanEval 에서는 0.9, 즉 90% 가량의 정답률을 보였다. 하지만 저자들이 내놓은 새로운, 오염되지 않고 좀 더 어려운 LBPP 벤치마크에서는 0.65, 약 65% 가량의 정답률을 기록했다.
우측도 경향은 비슷하다. 기존 벤치마크인 MBPP에서는 80%의 정답률을, LBPP에서는 0.65 가량의 정답률을 보였다.
거의 대다수의 모델들이 기존 벤치마크에서는 고득점을, 새로운 벤치마크에서는 낮은 정답률을 보였다는 것은 이 논문이 지적하는 것처럼 이미 상당부분 오염이 진행중에 있다는 것을 의미한다.
LBPP는 Less Basic Python Problems 의 약자로 HumanEval, MBPP 두 벤치마크들과 유사한 스타일, 규모의 데이터셋이지만 오염되지 않았고, 약간 더 어려운 예제들을 담은 새로운 벤치마크다.
이번에는 합성데이터셋 쪽을 살펴보자. Starcoder V2 OSS Instruct, evol Instruct 둘다 코드 생성 모델에 트레이닝용으로 사용되는 대규모 합성데이터세트다.
x축은 코사인 유사도로 그 값이 1에 가까울수록 '닮았다'는 것을 의미한다. 두 벡터간 코사인값을 구하는 것이다. 두 벡터간 사이각이 0이라면 '일치'한다는 것, 그리고 그때의 코사인 값은 '1'이라는 점을 생각해보면 간단하게 이해할 수 있을 것이다.
y축은 그 유사도를 가진 예제의 비율을 의미한다.
우선 좌측의 Starcoder 쪽을 살펴보자.
HumanEval의 경우 파란색 바인데 대부분이 0.7 이상이다. 유사도가 높은 예제가 대다수라는 것은, 훈련용으로 새로 합성해서 만드는 예제들조차 기존 벤치마크 데이터셋과 아주 흡사하다는 것을 의미한다. evol 쪽은 더 심하다. HumanEval의 파란 바가 0.9 이상인 것이 대부분이다. 합성해서 만들어도 기존 데이터셋과 아주 아주 비슷하다는 뜻. MBPP는 조금 덜하지만 오른쪽으로 치우쳐있다. 마찬가지로 오염이 되어있다는 것이다.
저자들이 새로이 제시한 LBPP는 기존의 두 벤치마크보다는 좌측에 쏠려있다. 유사도가 상대적으로 더 낮아서 독립적인 테스트로 유용하게 쓸 수 있다는 것을 의미한다. 하지만.. 이후에도 말하겠지만 이러한 데이터셋의 오염은 시간문제이기도 하다. 결국은 시간이 지나면 또다시 오염이 될 것이기 때문.
이번엔 3번째, 과적합에 대한 이야기다. 각 개발사들이 "우리 모델은 코드 생성 벤치마크에서 아주 높은 점수를 받았습니다" 식으로 어필하기 위해서 이러한 HumanEval, MBPP 등의 벤치마크의 중요성이 더 커지고 있다. 이렇게되면 좁은 범위인 이러한 벤치마크들에만 과도하게 최적화되어 실제 성능은 떨어지는, 성능의 왜곡이 일어날 수 있음을 말한다.
p-값이 0.05 미만이어야 대립가설이 인정받고 영가설이 기각되기 때문에, 가설을 세워놓고 실험을 진행한 결과 p-값이 중요하다. 하지만 이러한 p-값이 0.05를 살짝 윗돌거나 한다면, 연구원들은 해당 실험 데이터를 은근슬쩍 폐기하고 다른 데이터로 바꾼다든지 할 수 있다. 이런 것들을 p-해킹이라 하는데 모델의 훈련에서 HumanEval 의 최적화에 집착하면 이 p-해킹과 비슷한 부정행위라 생각할 수 있다고 경고한다. HumanEval 에서 좋은 성능이 나올때까지 재조정할 수 있기 때문이다. 타당한 지적이다.
결론부분은 역시 '오염이 불가피'하기도 하다는 점을 말하고 있다. 하지만 최근 LLM 개발 주기가 더 짧아지면서 이러한 LBPP 같은 새로운 벤치마크의 필요성을 제시한다. Cohere는 이러한 페어플레이를 지향하는 우직함이 돋보이는 기업이다.
하지만 이 역시도 결국은 일시적인 벤치마크일 것이다. 결국 대규모로 진행되는 데이터셋 관리에는 섬세한 필터링이 불가능에 가깝다. 새로운 벤치마크를 끊임없이 제시하는 방식으로 AI 모델들을 평가할 것인지, 모델을 평가하는 방식 그 자체가 달라질지 지켜봐야할 것이다.
'AI 논문 및 깊은 생각' 카테고리의 다른 글
GPT-4.5, 25년 1분기. GPT-5 25년 12월 예상 (0) | 2025.01.25 |
---|---|
자본가와 능력가, AI 시대엔 누가 더 이득을 볼 것인가? (0) | 2025.01.21 |