TL;DR
작성자는 Qwen3.8-27B-Q6_K를 2개의 RTX 5060 Ti와 131,072 토큰 문맥에서 실행해 GTA Vice City 스타일의 플레이 가능한 소형 게임을 만들고, llama-server 설정과 실제 로그를 공개했습니다. 프리필은 25k 토큰에서 약 850~890 tokens/s였고, 디코딩은 일반적으로 36~72 tokens/s였지만 반복 출력에 ngram 추측이 작동한 경우 197.77 tokens/s까지 올랐습니다. 추측 토큰 수용률은 최대 89.46%였으며, 31,468토큰을 55.46 tokens/s로 생성한 장시간 실행에서는 뚜렷한 성능 저하가 나타나지 않았습니다. 반면 추측 캐시가 효과를 내지 못하면 36.77 tokens/s까지 떨어져 최고 속도와 81% 차이가 났습니다.
실용적 조언
- 반복되는 코드를 생성하거나 디버깅 문장을 다시 출력하는 작업에서는 ngram 기반 추측 생성이 높은 처리량을 낼 수 있습니다. 게시글의 설정처럼 draft-mtp와 ngram-mod를 활성화하되, 197.77 tokens/s는 동일 토큰 반복으로 얻은 특수한 최고치이므로 일반적인 생성 속도로 간주하지 않는 편이 적절합니다. 고유한 프롬프트를 평가할 때는 36~40 tokens/s의 기준 속도와 긴 실행의 55~72 tokens/s를 별도로 기록해야 합니다.
- 긴 문맥을 사용할 때는 131,072 토큰 설정과 q8_0 KV cache의 조합을 함께 측정하는 방식이 유용합니다. 프리필 속도, 디코딩 속도, 토큰 수용률, 생성 토큰 수를 작업별로 나누어 기록하면 캐시 적중과 추측 생성의 효과를 구분할 수 있습니다. 특히 짧은 고유 프롬프트와 반복 프롬프트를 같은 평균값으로 합치지 않아야 게시글처럼 36.77~197.77 tokens/s의 차이를 재현 가능한 형태로 비교할 수 있습니다.
섹션별 상세
용어 해설
- 프리필(Prefill)
- — 모델이 입력 프롬프트 전체를 먼저 처리해 KV cache를 채우는 단계입니다. 입력 토큰을 병렬로 계산하므로 긴 프롬프트에서는 생성 단계와 다른 처리량이 나타나며, 이 글에서는 25k 토큰 입력을 약 850~890 tokens/s로 처리했습니다.
- 디코딩(Decoding)
- — 모델이 이미 생성한 토큰을 바탕으로 다음 토큰을 순차적으로 출력하는 단계입니다. 한 번에 처리할 수 있는 토큰 수가 제한되므로 일반적으로 Prefill보다 느리며, 글에서는 프롬프트 특성과 캐시 적중 여부에 따라 36~198 tokens/s의 차이가 관측됐습니다.
- 추측 디코딩(Speculative Decoding)
- — 초안 토큰을 먼저 만든 뒤 주 모델이 여러 토큰을 한꺼번에 검증해 생성 단계를 줄이는 방식입니다. 초안이 주 모델의 출력과 많이 일치할수록 수용률과 처리량이 높아지며, 이 설정에서는 draft-mtp와 ngram-mod를 함께 사용해 최대 89.46%의 수용률을 기록했습니다.
- KV 캐시(KV Cache)
- — Transformer가 이전 토큰의 attention 계산 결과인 Key와 Value를 저장해 이어지는 생성에서 재사용하는 메모리 구조입니다. 캐시를 유지하면 반복되는 문맥의 재계산을 줄일 수 있지만 메모리 사용량이 늘어나며, 글에서는 K와 V를 모두 q8_0 형식으로 저장하도록 설정했습니다.
- N-gram 기반 추측(N-gram)
- — 앞서 등장한 연속 토큰 패턴을 이용해 다음에 반복될 토큰을 미리 추정하는 방법입니다. 디버깅처럼 같은 문장을 반복 생성하는 작업에서는 초안과 실제 출력이 잘 맞아 높은 속도가 나오지만, 고유한 짧은 프롬프트에서는 효과가 작아집니다. 게시글의 최고 속도 197.77 tokens/s도 ngram이 작동한 경우였습니다.
코드 예제
"C:\Users\dsdt\llama\llama-server.exe" ^
-m "C:\Users\dsdt\Modeller\Qwen3.8-27B-UD-Q6_K.gguf" ^
--mmproj "C:\Users\dsdt\Modeller\mmproj-BF16.gguf" ^
--jinja ^
--chat-template-kwargs "{\"reasoning_effort\":\"medium\"}" ^
--chat-template-file "C:\Users\dsdt\Modeller\chat_template.jinja" ^
--reasoning on ^
--reasoning-preserve ^
-c 131072 ^
--split-mode tensor ^
--flash-attn on ^
--cache-type-k q8_0 ^
--cache-type-v q8_0 ^
--spec-type draft-mtp,ngram-mod ^
--spec-draft-n-max 2 ^
--spec-ngram-mod-n-match 24 ^
--spec-ngram-mod-n-min 24 ^
--spec-ngram-mod-n-max 86 ^
-t 8 ^
--batch-size 8869 ^
--ubatch-size 531 ^
-ngl 105 ^
-np 1 ^
--fit off ^
--temp 1.0 ^
--top-p 0.95 ^
--top-k 20 ^
--min-p 0.00 ^
--presence-penalty 0.0 ^
--host 127.0.0.1 ^
--port 8080llama-server에서 Qwen3.8-27B 양자화 모델을 131,072 토큰 문맥으로 실행하고 Flash Attention, q8_0 KV cache, draft-mtp와 ngram-mod 기반 추측 생성을 적용하는 설정입니다.
언급된 도구
Qwen3.8-27B-UD-Q6_K 모델을 로컬에서 실행하고 긴 문맥, KV cache, 추측 생성을 적용하는 추론 서버입니다.
언급된 리소스
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.