Andy5k, 텐서별 민감도 반영한 498MB Qwen3.5 GGUF 공개
Hugging Face의 Andy5k 계정이 Qwen3.5-0.8B의 498.5MB GGUF와 제작 스크립트를 공개했습니다. 계정 작성자는 Opus 5.5 에이전트가 텐서별 민감도를 측정해 정밀도를 배분했다고 밝혔으며, 봉인된 평가 텍스트에서 BF16 출력 분포와의 평균 KLD가 비슷한 용량의 UD-Q3_K_XL보다 약 5.9배 낮았다고 보고했습니다. 더 큰 UD-Q5_K_XL의 KLD에는 미치지 못했습니다.

Hugging Face의 Andy5k 계정이 Qwen3.5-0.8B의 498,454,560바이트짜리 GGUF 파일과 제작 스크립트를 공개했습니다. 모델 카드에 따르면 계정 작성자가 만든 과제 brief에 따라 Opus 5.5 에이전트가 양자화 절차를 수행했습니다. 작업은 2026년 11월 7일 16GB MacBook Air M4에서 약 3시간 반 동안 진행됐습니다. 목표는 llama-quantize나 llama-imatrix 같은 양자화 도구, 공개된 텐서별 레시피 없이 500,000,000바이트 미만의 파일을 만들어 기본 llama.cpp에서 실행하는 것이었습니다.
이 파일은 모든 가중치를 같은 정밀도로 낮추지 않았습니다. 에이전트는 BF16 모델을 부동소수점으로 실행해 튜닝 텍스트에서 행렬 입력의 열별 신호 크기를 측정했습니다. 행렬이 입력을 출력으로 바꿀 때 같은 반올림 오차라도 신호가 강한 열에서 생기면 출력에 더 큰 영향을 줄 수 있습니다. 이에 따라 입력 신호가 큰 열의 오차를 줄이도록 가중 최소제곱법으로 블록별 스케일을 정하고, 저장할 정수 코드를 좌표 하강 방식으로 조정했습니다.
이어 각 텐서를 하나씩 양자화해 BF16 기준 출력에 미치는 손상을 측정하고, 그 결과로 텐서별 민감도 지도를 만들었습니다. 최적화기는 이 지도를 바탕으로 정해진 용량 안에서 텐서별 형식을 배분했습니다. 낮은 정밀도의 IQ4_XS는 가중치당 4.25비트, Q5_K는 5.5비트, Q6_K는 6.56비트입니다. 결과 파일은 세 형식을 섞어 쓰며, 작은 정규화·상태공간 텐서 133개는 F32 또는 BF16으로 유지했습니다. 전체 752,393,024개 가중치의 평균 정밀도는 가중치당 5.18비트입니다.
작성자가 공개한 평균 KLD는 양자화 모델의 출력 분포가 BF16 기준 분포와 얼마나 달라지는지를 나타냅니다. 모델 카드에 따르면 측정은 stock llama.cpp b11928, Metal, 컨텍스트 길이 2048에서 봉인된 평가 텍스트 20개 청크로 진행됐습니다. 이 조건에서 498.5MB 파일의 평균 KLD는 0.015704였습니다. 용량이 비슷한 UD-Q3_K_XL은 492.2MB에서 0.092486을 기록해, 이 파일의 평균 KLD가 약 5.9배 낮았습니다. 이 수치는 해당 평가 텍스트에서 BF16 출력 분포와의 차이를 비교한 결과입니다. 작성자는 평가 텍스트를 열어보지 않은 채 공개 파일을 평가에 한 번 사용했다고 밝혔습니다.
더 큰 파일과 비교하면 결과의 범위가 드러납니다. UD-Q4_K_XL은 558.8MB에서 평균 KLD 0.027323으로, 이 파일보다 BF16 기준 분포와의 차이가 컸습니다. 반면 UD-Q5_K_XL은 606.6MB에서 0.010375를 기록해 더 낮은 KLD를 보였습니다. 모델 카드도 공개 파일이 Q5 기준에는 도달하지 못했다고 설명합니다.
작성자가 지목한 병목은 어휘 테이블입니다. Qwen3.5-0.8B에서는 입력 토큰의 임베딩과 다음 토큰의 점수 계산에 같은 테이블을 씁니다. 이 테이블은 전체 가중치의 33.8%를 차지하며, 작성자의 측정에서 평균 KLD 약 0.010을 설명했습니다. 어휘 테이블을 5.5비트로 올리려면 39.8MB가 더 필요합니다. 작성자가 공개한 최적화 결과에서는 그 용량을 다른 텐서에서 가져올 때 다른 부분의 오차 증가가 어휘 테이블의 개선보다 컸습니다. 그래서 공개 파일은 어휘 테이블에 IQ4_XS를 배정했습니다.
저장소에는 NumPy로 작성한 반올림 코드와 텐서 민감도 측정, 용량 배분기, GGUF 작성 스크립트가 있습니다. 재현에는 NumPy와 gguf-py가 필요하고, 측정 단계에는 MLX도 필요합니다. 작성자는 파일이 수정하지 않은 llama.cpp b11928 환경에서 실행된다고 보고했습니다. GGUF 메타데이터의 양자화 도구 항목에는 Unsloth가 남아 있습니다. 작성자는 이 표기가 원본 파일에서 이어받은 메타데이터라며, 실제 양자화는 별도의 NumPy 절차로 수행했다고 설명했습니다.