32GB VRAM에서 Qwen3.6-27B Q8 모델로 100K 컨텍스트에 근접하기
Getting close to 100K context on 32GB VRAM with Qwen3.6-27 at Q8
핵심 요약
32GB VRAM 환경에서 Qwen3.6-27B Q8 모델의 컨텍스트 길이를 최대로 확보하기 위한 설정과 벤치마크 공유.
- 컨텍스트 최적화 — 32GB VRAM 환경에서 KV 캐시 양자화를 통해 95K~115K 컨텍스트 확보 시도함
- 벤치마크 결과 — Q8 모델과 다양한 KV 캐시 설정(Q8, Q5, Q4) 조합별 추론 속도 및 수용률 비교함
- 메모리 관리 — VRAM 한계 상황에서 -b 및 -ub 옵션을 사용하여 메모리 사용량을 미세하게 절감함
- 추가 대안 — Beellama 포크의 kvarn 압축이나 MTP 드래프트 캐시 양자화 등 추가적인 최적화 방법 논의됨
이건 튜토리얼이라기보다는 32GB VRAM 환경에서 Qwen3.6-27B Q8 모델로 더 긴 컨텍스트를 확보하려고 시도한 기록을 공유하는 글입니다.
면책 조항: 심도 있는 연구는 아닙니다. 커뮤니티의 지혜에 따르면 Qwen이 모델 양자화에 더 관대하다고 하지만, 제 경험은 달랐습니다. 이를 뒷받침할 정량적인 데이터는 없고, 개인 프로젝트(규모는 작지만 몇 주간 작업해 온 것들)를 위한 바이브 코딩에 사용해 본 개인적인 경험뿐입니다.
배경: 저는 Q8을 약 60K 컨텍스트로 쉽게 돌릴 수 있었고, Q6이나 Q5보다 더 잘 작동한다고 느꼈습니다(순전히 주관적인 경험입니다). 하지만 양자화되지 않은 KV 캐시를 사용하면 Q5로 128K 컨텍스트를 쉽게 확보할 수 있어서, Q8로는 어디까지 밀어붙일 수 있을지 확인해 보고 싶었습니다.
시스템: 5090, 64GB 시스템 RAM. 헤드리스 Ubuntu를 실행하는 원격 서버.
몇 번의 시행착오 끝에 다음 설정들이 작동하는 것을 확인했습니다. 참고 사항:
- VRAM이 거의 한계치에 달해 있어서, 긴 코딩 컨텍스트에서는 공간 확보를 위해 컨텍스트를 조금 줄여야 할 수도 있습니다.
- 제가 사용하는 벤치마크는 오직 토큰 추론 속도만을 위한 것입니다.
- -b 및 -ub 옵션이 VRAM을 100MB 정도 절약하는 데 도움이 됩니다.
옵션 1: 95K 컨텍스트, KV: Q8_0 및 Q8_0, 시작 시 VRAM: 230MB, 벤치마크 후 VRAM: 90MB
build/bin/llama-server \
-m ~/myp/models/bartowski_Qwen_Qwen3.6-27B-Q8_0.gguf \
--temp 0.6 \
--top_p 0.95 \
--top_k 20 \
--min_p 0.0 \
--repeat-penalty 1.0 \
--presence-penalty 0.0 \
-c 95000 \
-t 16 \
-ngl 99 \
--flash-attn on \
--host 0.0.0.0 --port 8080 \
--no-mmproj \
--spec-type draft-mtp \
--spec-draft-n-max 4 \
--parallel 1 \
-kvo \
-ctk q8_0 \
-ctv q8_0 \
-b 1024 \
-ub 256
python3 mtp_bench.py
code_python pred= 192 draft= 183 acc= 145 rate=0.792 tok/s=141.6
code_cpp pred= 192 draft= 214 acc= 137 rate=0.640 tok/s=121.9
explain_concept pred= 192 draft= 225 acc= 134 rate=0.596 tok/s=115.6
summarize pred= 192 draft= 176 acc= 146 rate=0.830 tok/s=146.0
qa_factual pred= 192 draft= 198 acc= 141 rate=0.712 tok/s=131.4
translation pred= 192 draft= 221 acc= 135 rate=0.611 tok/s=117.3
creative_short pred= 192 draft= 256 acc= 126 rate=0.492 tok/s=101.5
stepwise_math pred= 192 draft= 192 acc= 142 rate=0.740 tok/s=134.3
long_code_review pred= 192 draft= 213 acc= 137 rate=0.643 tok/s=120.3
Aggregate: { "n_requests": 9, "total_predicted": 1728, "total_draft": 1878, "total_draft_accepted": 1243, "aggregate_accept_rate": 0.6619, "wall_s_total": 15.41 }
옵션 2: 105K 컨텍스트, KV: Q8_0 및 Q5_1, 시작 시 VRAM: 320MB, 벤치마크 후 VRAM: 180MB

