TL;DR
RTX 3090용 Qwen3.8-27B inference engine은 단일 요청 처리량을 기본 sampling 약 114 tps, greedy 약 124 tps까지 높였으며, 이전 수치는 각각 90 tps와 98 tps였다. 자체 출력에 맞춘 draft vocabulary로 speculative decoding 후보의 누락을 줄이고, 모델 hidden states로 보정한 GPTQ-int4 lm_head와 MTP module 및 Triton Split-KV attention kernel을 결합한 결과다. Split-KV kernel은 1.5k 컨텍스트에서 5배, 16k에서 10배 빨라졌고 sampler patch는 기본 sampling 처리량을 4% 높였다. KVarN 4/2비트 KV cache를 사용하면 262k 컨텍스트가 들어가지만 100k 컨텍스트 디코드는 약 20% 느려지며, 동시 요청 64개에서의 피크 처리량은 약 1,000 tps로 유지됐다.
실용적 조언
- 재현 가능한 성능 비교를 위해 저장소의 bench/run_benchmarks.sh를 실행하고 verify.sh로 설치된 패치가 실제 적용됐는지 확인할 수 있다. 기본 구성은 fp8 KV cache, int8 lm_head와 embed_tokens, fp16 recurrent state, int8 activations, MTP-4 draft를 함께 사용한다. 긴 컨텍스트가 필요하면 vLLM 0.27.1용 KVarN KV cache를 KV=kvarn 및 CTX=huge 설정으로 선택할 수 있지만 100k 컨텍스트에서는 디코드 속도가 약 20% 낮아진다.
섹션별 상세
용어 해설
- 추측 디코딩(Speculative Decoding)
- — 작은 draft 모델이 다음 토큰 후보를 먼저 생성한 뒤 target 모델이 여러 토큰을 한 번에 검증하는 추론 방식이다. 검증 결과가 거부되지 않은 후보는 그대로 사용해 순차 디코딩의 계산 시간을 줄이며, 이 글에서는 정확한 sampled distribution을 유지한다.
- KV 캐시(KV Cache)
- — Transformer가 이전 토큰의 Key와 Value를 저장해 긴 대화에서 같은 어텐션 계산을 반복하지 않도록 하는 메모리 구조다. 저장 공간이 컨텍스트 길이에 따라 커지므로 양자화를 적용하면 262k 토큰을 RTX 3090에 적재할 수 있지만 디코드 속도는 100k 컨텍스트에서 약 20% 느려진다.
- 멀티토큰 예측(MTP)
- — 한 번에 여러 미래 토큰을 예측하는 모듈로, 여기서는 MTP-4 draft를 생성해 target 모델의 검증 단계를 보조한다. 40k 토큰 draft head와 자체 출력에 맞춘 draft vocabulary를 사용해 후보가 강제로 거부되는 비율을 낮추고 단일 요청 처리량을 높인다.
- GPTQ 4비트 양자화(GPTQ-int4)
- — 모델 가중치를 4비트 정수로 압축해 메모리 사용량과 연산 비용을 줄이는 양자화 방식이다. 이 글에서는 모델 자체 hidden states로 lm_head와 MTP module을 보정했으며, PPL은 0.6% 증가했지만 GSM8K와 acceptance는 유지되고 단계당 1.8ms가 줄었다.
언급된 도구
vLLM 0.27.1에 KVarN 4/2비트 KV cache를 포팅해 최대 262k 토큰 컨텍스트를 적재하는 실행 환경으로 사용됐다.
여러 draft를 검증하는 verify 단계에서 KV를 분할하는 소형 attention kernel을 구현하는 데 사용됐다.
기존 verify 단계의 attention 구현으로 사용됐지만 여러 draft 상황에서 KV 분할이 제한돼 Split-KV kernel로 보완됐다.
언급된 리소스
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.