KLD는 최고의 지표가 아니며, 단 하나의 정답도 존재하지 않는다.
KLD is not the best metric out there and there isn't a single best one.
핵심 요약
KLD는 양자화 모델의 초기 필터링에는 유용할 수 있으나, 모델의 실제 작업 수행 능력을 완벽히 대변하지는 못한다는 점을 강조합니다.
- KLD의 한계 — 모델의 작업 수행 능력과 KLD 수치가 항상 비례하지 않음
- 추가 학습의 영향 — SFT나 RL 과정을 거치면 KLD는 나빠져도 모델 성능은 향상될 수 있음
- 실제 사용 사례 — 범용 지표보다는 자신의 작업 환경에 맞는 개인화된 벤치마크가 중요함
- 초기 필터링 도구 — KLD는 양자화 모델의 품질을 대략적으로 가늠하는 초기 지표로 활용 가능함
KLD가 어떻게 오해받고 있는지에 대한 지난 글을 올린 뒤에, KLD가 쓸 수 있는 최고의 지표라는 주장도 있었고 "KLD를 안 쓰면 도대체 뭘 써야 하냐?"라고 묻는 댓글들도 좀 있더라. 그래서 이 두 가지에 대해 좀 더 자세히 설명해 보려고 함.
증류(distillation)를 하는 연구실이라고 가정해 보자. 증류 과정에서는 티처 모델을 하나 고르고, 그 티처한테서 배울 더 작은 스튜던트 모델을 선택하지. 이 학습은 스튜던트 모델과 티처 모델의 출력값 사이에서 KL loss의 변형(KL 자체일 수도 있고, reverse KL이나 JS loss일 수도 있음)을 최적화하면서 시작돼. 레딧 형님들 말대로라면 최적화가 끝나면 이제 다 끝난 거겠지? 티처 모델 대비 최상의 KLD를 가진 모델을 얻었으니, 이보다 더 좋은 게 어디 있겠어?
근데 아님. 학습은 계속될 수 있음. 그 뒤에 모델 성능을 올리기 위한 SFT나 RL 단계가 올 수 있거든. 이런 단계들은 진짜 중요한 거, 즉 모델이 다양한 태스크를 해결하는 능력을 향상시켜 줌. 그리고 이 과정을 거치면서 기존의 KLD는 오히려 더 나빠질 수도 있는데, 정작 스튜던트 모델은 더 똑똑해지는 거지.
이건 PrismML이 Bonsai 모델에 사용하는 방식이랑 비슷할 수 있음. 걔네가 보여주는 KLD 수치는 진짜 입이 떡 벌어질 정도지만, 사실 그 모델은 KLD를 희생하는 대신 추가 학습 단계를 거치면서 모델 자체가 더 좋아졌을 가능성이 커. 이런 추가 단계들 때문에 걔네가 Bonsai를 단순히 원본 모델의 양자화 버전 이상으로 취급하는 걸 수도 있고. 벤치마크 점수 올리기(Benchmaxxing)는 이런 단계에서 일어날 수 있는데, 따로 떼어놓은 태스크로 최적화하는 대신 유명한 벤치마크 태스크들로 모델을 굴려버리는 거지.
그러니까 내 요점은 KLD가 낮다고 해서 다양한 태스크를 해결하는 능력이 더 좋은 건 아니라는 거야. 그리고 이 문제를 완벽하게 해결해 주는 단 하나의 loss 같은 건 존재하지 않아(적어도 우리가 아는 선에선). 만약 그런 게 있었으면 굳이 돈 들여서 여러 학습 단계를 거칠 필요 없이 증류할 때 그냥 그 loss만 쓰면 됐겠지.
그럼 해결책이 뭐냐고? 일단 KLD를 아예 쓰지 말라는 소리는 아니라는 걸 확실히 해두고 싶음. 특히 어떤 모델이 KLD 수치가 너무 엉망이라면, 어떤 양자화 모델에 시간을 투자할 가치가 있는지 판단하는 초기 필터 용도로는 쓸만함. 다만 대표성 있는 데이터로 계산해야 하고, 지난 글에서 설명했듯이 베이스 모델이 직접 생성한 데이터를 쓰는 게 특히 유용함. 안 그러면 그 수치는 모델의 실제 성능에 대해 아무것도 말해주지 못함.
두 번째는 세상 모든 양자화 모델의 순위를 매길 필요가 없다는 거야. 도대체 왜 그런 욕구가 생기는 건지 모르겠음. 그냥 네가 쓸 용도에 맞는 모델을 찾으면 되는 거잖아. 평소에 하는 업무 태스크들을 좀 저장해 뒀다가, 몇몇 양자화 모델로 테스트해 보고 네 태스크에 제일 잘 맞는 걸 고르면 됨. 물론 쉬운 과정은 아니라는 거 알아. 채점도 까다롭고, 나만의 프라이빗 벤치마크를 만들고 관리하는 것도 빡세지. 그 어려움은 나도 잘 알지만, 딱 한 번만 제대로 해두면 나중에 나오는 양자화 모델들을 테스트하고 고르는 건 훨씬 쉬워질 거야.
지난 글에서 빠졌던 부분들이 이번 글로 좀 해소됐으면 좋겠고, 댓글들 덕분에 나도 내용을 더 명확하게 정리할 수 있었음.

