DeepSeek-V4-Flash-0731 전용 IQ3 재양자화: UD-IQ3_S보다 나은 KLD, CPU 스필 환경에서 1.4배 빠른 디코딩
Expert-only IQ3 requant of DeepSeek-V4-Flash-0731: better KLD than UD-IQ3_S, 1.4x decode on a CPU-spill rig
핵심 요약
DeepSeek-V4-Flash-0731의 전문가 텐서만 IQ3로 재양자화하여 품질과 속도를 최적화한 빌드 공유.
- 전문가 재양자화 — 129개의 라우팅 전문가 텐서만 IQ3로 최적화하여 품질 유지
- 성능 비교 — 기존 MXFP4 대비 1.4배 빠른 디코딩 속도와 개선된 KLD 수치 확보
- 하드웨어 최적화 — VRAM 부족으로 CPU 스필이 발생하는 환경에 특화된 빌드
- 알려진 문제 — llama.cpp의 SWA 및 롤백 스톨 이슈가 존재할 수 있음
다들 안녕,
tldr / 누가 쓰면 좋냐면: 전문가 모델이 RAM으로 넘쳐흐르는 혼종 멀티 GPU 환경에서, Q2로 낮추는 대신 3비트 수준을 유지하고 싶은 사람들을 위한 거야.
https://huggingface.co/TacoTakumi/DeepSeek-V4-Flash-0731-GGUF
DeepSeek-V4-Flash-0731의 라우팅된 전문가 텐서 129개만 다시 양자화했고, 나머지 텐서는 원본 GGUF의 정밀도를 그대로 뒀어. 어텐션, 공유 전문가, 라우터, 인덱서는 bartowski의 MXFP4 변환본에 있던 Q8_0/BF16/F32를 그대로 유지했지. 전문가 모델만 IQ3_XXS로 낮췄고, down projection은 한 단계 위인 IQ3_S로 맞췄어. 결과물은 4개 샤드로 나뉘어 총 111.37 GiB고, imatrix는 calibration_datav3로 빌드했어.
품질 확인하려고 MXFP4 원본에서 뽑은 로짓을 기준으로 llama-perplexity KLD 점수를 매겨봤어. wikitext-2 첫 150개 청크, 컨텍스트 512 기준으로 돌렸고, 비교군으로 unsloth의 UD-IQ3_S도 같은 조건에서 테스트했지. 내 건 평균 KLD 0.2386(비교군 0.2936), top-1 일치율 84.65%(비교군 82.78%), 델타 PPL +0.536(비교군 +0.685)이 나왔어. 다만 내 게 2.12 GiB 더 크고, 최대 KLD는 UD-IQ3_S가 11.13으로 내 12.53보다 좋아서 완승이라고 보긴 어려워. 세 번 돌린 원본 퍼플렉서티 로그는 레포에 다 올려뒀으니 궁금하면 확인해 봐.
내 장비(3090 2개, 5060 Ti, 4060 Ti 2개, 총 96 GiB VRAM)에서 전문가 모델이 CPU로 넘어가는 환경 기준 속도는 이래: 깊이 0 / 4096 / 16384에서 13.91 / 13.57 / 13.26 t/s가 나와. 같은 환경에서 전체 MXFP4 원본은 9.88 / 9.69 / 9.51 t/s였으니까 대략 1.4배 정도 빨라진 셈이지. 이건 VRAM 용량 부족으로 인한 병목이 걸린 수치라, VRAM에 모델이 다 들어가는 환경에선 결과가 다를 거야.
만약 단순히 토큰 속도(t/s)가 목적이라면 더 작은 모델을 쓰는 게 훨씬 나아. antirez가 만든 같은 모델의 Q2 버전은 80.76 GiB라 내 VRAM에 98% 정도 들어가서 병목도 없고, 속도는 30.27 t/s로 내 것보다 2.18배나 빠르거든. 이번 빌드의 핵심은 최고 속도가 아니라 3비트 수준의 품질을 유지하는 거였어.
그리고 DeepSeek-V4-Flash는 llama.cpp에서 SWA랑 롤백 스톨 이슈가 있다는 걸 명심해. 난 메인라인 llama-quantize로 양자화했지만, 실제 구동은 업스트림에 없는 DSV4 스톨 수정 패치를 적용한 빌드로 돌리고 있어. 순정 llama-server에서 이 GGUF를 테스트해보진 않았으니 참고해. 긴 컨텍스트에서 멈춤 현상이 발생한다면 그건 알려진 업스트림 문제고, 모든 DSV4 GGUF에서 발생하는 증상이야.
앞으로 다른 모델들도 이 방식으로 만들어볼 생각이야. 다들 즐거운 코딩해!

