일단 이번에 TurboQuant 가 나왔다고 해서 내용을 보니 kv cache 를 말도 안되게 압축하더군요. 근데 속도나 품질은 전혀 손상이 없이 그렇게 바라고 바라던 ctx window 가 늘어날 수 있다고 해서 눈이 번쩍 뜨였습니다. 그래서 github 를 좀 뒤져보니 https://github.com/tonbistudio/turboquant-pytorch 가 벌써 나와있는걸 발견했습니다.
그래서 간단하게 웹앱이나 기타 앱 소소하게 만들던 ubuntu 에 적용해볼까 하고 잠시 뻘짓을 좀 했는데...
오! 놀라워요! 이젠 그냥 이놈으로 코딩하는데 써도 되겠더라구요.
사실 ctx window 를 16384도 겨우겨우 우겨넣는 수준이라 코딩은 언감생심 꿈도 못꿨는데 110,000까지도 잘 돌아갑니다. 으잉? 이게 왜 가능한건데... 대체 왜...
암튼 실험을 좀 해봤는데 실제로 해보니 문제없이 잘 되고 있습니다.
코드베이스 코드 리뷰부터해서 간단하게 만들었던 것들 다 돌려보는데도 뻗지를 않아요.
미친 것 같다는 생각이 들었습니다.
암튼 이게 저 소스를 바로 가져다 쓰면 반드시 오류가 나게 마련입니다.
그래서 조금 삽질한 결과를 repo 로 공개합니다.
분명 하수인 저보다 고수이신 AI당 여러분들께서 더 잘 만들어주시리라 믿으면서... 좀 창피하지만 삽질한 결과물을 공개합니다. (욕은 하지 말아주세요...)
https://github.com/lowhillfoto/Ubuntu-vLLM-TurboQuant
일단 가보시면 설치 절차부터 삽질했던 기록까지 있으니 다른 분들께서는 부디 저와 같은 삽질을 하지 마시길 바라며 간단히 벤치마크 결과도 올려봅니다.
vLLM + TurboQuant + OpenCode 설정 문서
RTX 3090 (24GB) 단일 GPU 환경에서 Qwen3-Coder-30B-A3B MoE 모델을 운용하기 위한 TurboQuant KV cache CPU offload 패치 및 OpenCode 연동 설정 전체 기록.
벤치마크 요약
측정 환경: RTX 3090 24GB · vLLM 0.18.0 · compressed-tensors W4A16 · fp8 KV cache 상세 결과 → BENCHMARK.md
실제 코딩 속도 (Decode)
출력 규모 | 출력 토큰 | 소요 시간 | 생성 속도 |
|---|
짧은 함수 | ~200 t | 5.6 s | 35.7 t/s |
중간 클래스 | ~500 t | 14.2 s | 35.2 t/s |
긴 구현체 | ~1,000 t | 28.8 s | 34.7 t/s |
대형 리팩토링 | ~1,500 t | 42.0 s | 35.7 t/s |
평균 35.3 t/s — 출력 길이와 무관하게 일정
전체 성능 지표
항목 | 수치 |
|---|
Decode speed | 35.3 t/s (±0.5, 매우 안정) |
TTFT — prefix cache hit | 0.06 s |
TTFT — cold start | 0.5 – 5 s (컨텍스트 의존) |
Peak prefill | 4,371 t/s @ 10K ctx |
최대 안정 컨텍스트 | ~115,000 tokens (~88,000 단어) |
Coding 정확도 | 5/5 (100%) |
Tool call 성공률 | 10/10 (100%), 0.88–0.92 s/회 |
실용 기준 체감 속도
함수 1개 (~100t) → ~3초
함수 + 테스트 (~300t) → ~9초
클래스 구현 (~800t) → ~23초
파일 리팩토링 (~1500t) → ~43초
목차
시스템 구성 개요
신규 설치 절차
TurboQuant 패치
vLLM 서비스 설정
OpenCode 설정
vLLM 업데이트 시 주의사항
트러블슈팅 기록
1. 시스템 구성 개요
항목 | 값 |
|---|
GPU | RTX 3090 24GB |
OS | Ubuntu (Linux 6.8) |
vLLM | 0.18.0 (/opt/vllm/venv) |
모델 | Qwen3-Coder-30B-A3B-Instruct-W4A16-awq |
모델 경로 | /home/models/Qwen3-Coder-30B-A3B-Instruct-W4A16-awq
|
가중치 크기 | 16GB (compressed-tensors W4A16) |
GPU KV 메모리 | 5.38 GiB (0.18.0 기준) |
max_model_len | 117,616 tokens |
메모리 레이아웃 (추론 시)
RTX 3090 24GB
├── 모델 가중치 (W4A16) : ~15.6 GB
├── GPU KV cache (fp8) : ~5.4 GB → 117,616 tokens
└── CUDA/PyTorch 오버헤드 : ~2.6 GB
모델 아키텍처 (Qwen3-Coder-30B-A3B MoE)
항목 | 값 |
|---|
총 파라미터 | 30.5B |
활성 파라미터 (추론 시) | 3.3B |
레이어 수 | 48 |
Q heads | 32 |
KV heads | 4 (GQA) |
head_dim | 128 |
전문가 수 | 128 (토큰당 8개 활성) |
native context | 262,144 tokens |
양자화 | compressed-tensors W4A16 |