Qwen 모델에 Q8 N-gram을 적용해도 속도 저하가 없음을 확인
Confirmed bolting Q8 NGram into IQ4 Qwen no speed degradation
핵심 요약
Qwen 모델의 N-gram 레이어를 Q8으로 교체해도 추론 속도 저하 없이 성능 향상을 기대할 수 있는지 테스트 중입니다.
- N-gram 최적화 — 모델의 N-gram 레이어를 더 높은 정밀도인 Q8으로 교체함
- 속도 테스트 — 교체 전후 추론 속도 차이가 거의 없음을 확인
- 하드웨어 구성 — 3090 GPU와 96GB DDR4 RAM 환경에서 테스트 진행
- 향후 과제 — 출력 품질 개선 여부와 스티칭 코드 공유 예정
어디 다른 스레드나 댓글에서 본 건데, 정확히 어디였는지는 기억 안 나고 핵심은 Qwen 3.8 Next의 51B N-gram 레이어를 훨씬 정밀도가 높은 버전으로 바꿔치기한다는 거였음.
5090 쓰는 어떤 놈이 자기 Qwen 3.8 UD Q4 모델의 N-gram 부분을 BF16으로 교체했더라고.
난 이미 IQ4_XS 돌리고 있어서 비슷한 거 해보고 싶었음. 지금 BF16 N-gram 가중치 담을 저장 공간이 부족해서, 그냥 저정밀도 N-gram 부분을 Q8로 바꿔치기했다.
모델 결과물이 실제로 좋아지는지는 아직 테스트 중인데, 추론 속도 면에서는 차이가 거의 없는 듯함.
Q8 N-gram 박기 전:
n_gen = 2588, tg = 8.82 t/s, tg_3s = 8.81 t/s
n_gen = 2616, tg = 8.82 t/s, tg_3s = 9.19 t/s
n_gen = 2645, tg = 8.83 t/s, tg_3s = 9.37 t/s
n_gen = 2675, tg = 8.84 t/s, tg_3s = 9.78 t/s
n_gen = 2704, tg = 8.84 t/s, tg_3s = 9.50 t/s
n_gen = 2732, tg = 8.85 t/s, tg_3s = 9.06 t/s
n_gen = 2761, tg = 8.85 t/s, tg_3s = 9.32 t/s
n_gen = 2790, tg = 8.86 t/s, tg_3s = 9.50 t/s
n_gen = 2819, tg = 8.86 t/s, tg_3s = 9.39 t/s
n_gen = 2847, tg = 8.87 t/s, tg_3s = 9.22 t/s
n_gen = 2875, tg = 8.87 t/s, tg_3s = 9.15 t/s
IQ4_XS에 Q8 N-gram 박은 후:
n_gen = 263, tg = 10.76 t/s, tg_3s = 11.04 t/s
n_gen = 294, tg = 10.70 t/s, tg_3s = 10.18 t/s
n_gen = 329, tg = 10.76 t/s, tg_3s = 11.32 t/s
n_gen = 361, tg = 10.73 t/s, tg_3s = 10.46 t/s
n_gen = 395, tg = 10.76 t/s, tg_3s = 11.11 t/s
n_gen = 430, tg = 10.81 t/s, tg_3s = 11.37 t/s
n_gen = 460, tg = 10.75 t/s, tg_3s = 9.91 t/s
n_gen = 494, tg = 10.77 t/s, tg_3s = 11.16 t/s
n_gen = 531, tg = 10.86 t/s, tg_3s = 12.15 t/s
지금까지는 저정밀도 N-gram 레이어를 Q8로 바꿨다고 해서 속도 저하 같은 건 딱히 없는 듯함. 출력 품질은 계속 테스트 중이다. Q8 Ngram이 더 빠른 것처럼 보이긴 하는데, 결국 둘 다 10.1~ tok/s 정도로 수렴함.
참고로 unsloth에서 가져온 예전 머지 버전을 쓰고 있어서 MTP는 안 썼음.
RAM 96GB DDR4 (32x3 Three channel active 2400MHZ)
Xeon e5 2690v4
RTX 3090 250W 제한
Edit: state_dict 용량이 90~ GB에서 115GB로 늘어남
Edit 2: 아 젠장 코드 올리는 거 까먹었네. 합치는 코드는 지금 밤이 너무 늦어서 8시간 뒤에 올릴게.
Edit 3, 여기 있다 : https://gist.github.com/komikndr/b17955e1a80ce6ede9a3115f16216bc5#replace-n-gram-layers-from-q4xs-into-q8_0-boltedpy , 내 IQ4 XS를 Q8_0 n-gram으로 바꾸는 거라 파일 좀 수정해서 써야 할 거임.


