최근 QAT에 대한 짧은 메모
Quick note on the QAT of recent
핵심 요약
구글의 QAT 구현 오류를 지적하며, 현재로서는 Unsloth의 UD Q4_K_XL 사용을 권장하는 기술적 분석글입니다.
- 구글 QAT 오류 — 토큰 임베딩 양자화 방식과 그룹 최적화 설정에 문제가 있음
- 데이터 정렬 문제 — 32개 블록 그룹이 잘못 정렬되어 별도의 정렬 및 양자화가 필요함
- Unsloth 모델 — Q4_k_xl 명칭은 오해의 소지가 있으나 실제로는 순수 Q4_0 방식임
- 패치 작업 진행 — 작성자가 오류 수정을 위한 패치를 준비 중임
tldr: 구글의 양자화는 망가졌으니, 당분간은 unsloth UD Q4_K_XL을 사용하세요.
이 글은 수준 낮은 글일 수도 있지만, 뭐 어쩌겠어요, 그냥 가는 거죠.
llama-quantize는 구글이 "--pure"를 사용했어야 할 때 토큰 임베딩을 q6k로 양자화해버리는데, 이건 첫 번째 문제일 뿐입니다.
llama-quantize의 양자화 함수는 -7로 하드코딩되어 있는데, 어떤 그룹들은 사실 8에 최적화되어 있습니다.
32개 블록 그룹들이 잘못 정렬되어 서로 섞이는 문제가 발생하므로, 그냥 정렬해서 따로 양자화하면 됩니다.
unsloth Q4_k_xl은 오해의 소지가 있는데, 실제로는 (당연히 그래야 하듯이!) 순수 q4_0이기 때문입니다.
그들이 언급하는 bf16/f16 스케일은 무시할 수준이지만 완벽을 추구한다면 여전히 필요합니다.
패치를 작업 중이지만 다른 누군가가 더 빨리 제출할지도 모르겠네요. 오차 범위 내에 들어오긴 합니다; unsloth가 그냥 자기들 프로세스를 숨기고 싶은 게 아닌가 싶네요.

