레딧에서 많은 분들이 KLD(Kullback-Leibler Divergence) 수치를 마치 존재하는 모든 양자화된 모델의 품질을 구별하고 순위를 매길 수 있는 신성한 지표처럼 다루는 것을 봅니다. 요약하자면, 그렇지 않습니다. 그렇다면 KLD가 실제로 측정하는 것은 무엇일까요? 기본 모델(base model)과 양자화된 모델(quantized model) 모두에 동일한 텍스트를 입력하면, 각 토큰에서 얻은 로짓(logits)의 확률 분포를 비교할 수 있습니다. KLD는 기본적으로 이 두 분포가 얼마나 다른지를 측정하며, 모든 토큰에 걸쳐 평균을 취합니다.
여기서 발생할 수 있는 첫 번째 큰 오류는 사람들이 무작위 텍스트, 예를 들어 위키피디아 기사들을 잔뜩 던져 모델에 입력하고 그 데이터셋으로 KLD를 계산하는 경우입니다. 하지만 이것이 모델이 실제 추론(inference) 과정에서 보는 것을 반드시 대표하지는 않습니다. 생성 과정 중에는 증가하는 컨텍스트 부분이 모델 스스로가 생성한 토큰들로 구성되는데, 무작위 텍스트만으로는 이를 재현할 수 없습니다. 좀 더 합리적인 수치를 얻고 싶다면, 기본 모델을 사용하여 자체 데이터셋을 생성한 다음, 이 생성된 토큰들에 대해 KLD를 계산하고 프롬프트 토큰에는 가중치(weight)를 주지 않아야 합니다.
KLD와 관련하여 발생할 수 있는 두 번째 큰 문제는 그것이 얼마나 터무니없이 조작하기 쉬운가 하는 점입니다. 특히 그 수치가 모델 개발자들 자신에게서 나온 경우 더욱 그렇습니다. 양자화 방법들은 종종 보정 데이터(calibration data)에 의존합니다. 만약 여러분이 보정에 사용한 것과 동일한 데이터로 KLD를 계산한다면, 여러분의 수치는 다른 모든 사람들의 수치보다 훨씬 좋게 보일 수 있습니다. 심지어 누군가 '보류된 데이터셋(held-out dataset)'을 사용한다고 주장하더라도, 여전히 그 KLD 수치를 신뢰하기는 어렵습니다.
보정 데이터셋과 평가 데이터셋은 같은 출처에서 오거나 매우 유사한 분포를 가질 수 있습니다. 어떤 사람들은 심지어 이와 동일한 데이터로 양자화 스케일 파라미터를 종단 간(end-to-end) 미세 조정할 수도 있으며, 그러면 갑자기 그들의 모델이 크기가 두 배나 되는 모델보다 KLD에서 우위를 점하는 것처럼 보이지만, 실제로는 해당 데이터셋 외부에서는 거의 일반화되지 못합니다. 따라서 KLD가 과연 의미가 있을까요? 사람들이 생각하는 것만큼은 아닙니다.
당신이 보고 있는 이 숫자는 매우 제한적인 데이터셋에서 양자화된 모델(quantized model)이 기본 모델(base model)과 얼마나 벗어나는지를 측정합니다. 하지만 더 높은 KLD가 양자화된 모델이 실제로 당신의 작업에서 실패한다는 것을 의미할까요? 물론 아닙니다. 우리 모두가 아는 것처럼 벤치마크(benchmarks)는 조작될 수 있습니다 (benchmaxxed). 하지만 모델을 양자화하는 평범한 사람들에게 벤치맥싱은 KLD 숫자를 조작하는 것보다 훨씬 어렵습니다. 벤치맥싱은 종종 진지한 하드웨어와 컴퓨팅(compute) 능력을 필요로 하는 반면, KLD를 놀랍게 보이도록 만드는 것은 터무니없이 저렴할 수 있습니다. 그러니 제발 KLD를 양자화된 모델을 위한 어떤 보편적인 리더보드처럼 취급하는 것을 멈춰주세요. 이것은 유용한 진단 도구(diagnostic)일 뿐, 모델이 실제로 얼마나 좋은지를 측정하는 지표는 아닙니다.
submitted by /u/Positive-Resource922 [link] [comments]