TL;DR
작성자는 llama.cpp를 PR #27342 기준으로 다시 빌드하고 Qwen3.8-27B와 DFlash2 초안 모델을 연결해 추측 디코딩 성능을 측정했습니다. 기존 MTP의 코드 생성 평균 약 140 tk/s와 비교해 DFlash2는 긴 코드 블록에서 짧은 구간 약 200 tk/s까지 올랐지만, 전체 코드 요청 평균은 약 120 tk/s였고 사고 과정에서는 약 80~90 tk/s에 그쳤습니다. 대신 메모리 사용량이 늘어 220k였던 문맥 길이를 160k로 줄여야 했으며, Qwen3.6 27B에서의 기존 DFlash 결과보다도 낮았습니다. 코드 생성 가속은 확인됐지만 메모리 비용 때문에 작성자의 환경에서는 당장 실용성이 제한적이라는 결론입니다.
실용적 조언
- DFlash2를 재현하려면 llama.cpp를 PR #27342가 포함된 상태로 다시 빌드하고, 주력 Qwen3.8-27B GGUF와 Qwen3.8-27B-DFlash2 GGUF를 함께 지정해야 합니다. `--spec-type draft-dflash`와 `--spec-draft-n-max 7`을 사용하고, 작성자가 제시한 160000 문맥과 q8_0 KV 캐시 설정을 출발점으로 삼을 수 있습니다. 긴 코드 생성과 사고 과정에서 속도를 따로 측정해야 실제 적용 가치와 메모리 손실을 판단할 수 있습니다.
- MTP와 비교할 때 평균 속도만 보지 말고 코드 블록의 짧은 최고 속도와 전체 단일 요청 평균을 분리해 기록해야 합니다. 이 사례에서는 긴 코드 생성 중 약 200 tk/s가 나왔지만 전체 코드 요청 평균은 약 120 tk/s였고, 사고 과정은 약 80~90 tk/s였습니다. DFlash2는 출력 유형별 후보 적중률에 따라 효과가 달라지므로 동일한 프롬프트와 문맥에서 비교하는 편이 적절합니다.
섹션별 상세
용어 해설
- 추측 디코딩(Speculative Decoding)
- — 큰 주력 모델이 모든 토큰을 순차적으로 생성하는 대신 작은 초안 모델이 여러 후보 토큰을 먼저 만들고 주력 모델이 이를 한꺼번에 검증하는 추론 방식입니다. 후보가 맞으면 여러 토큰을 한 번에 확정해 토큰 생성 속도를 높이지만, 초안 모델의 메모리 사용량과 후보 적중률에 따라 실제 성능이 달라집니다.
- 초안 모델(Draft Model)
- — 추측 디코딩에서 다음 토큰 후보를 빠르게 생성하는 보조 모델입니다. 주력 모델은 초안 모델이 만든 후보를 검증하므로, 예측이 잘 맞는 코드처럼 규칙적인 출력에서는 한 번의 검증으로 여러 토큰을 확정할 수 있습니다. 초안 모델을 추가하면 메모리 사용량이 늘어날 수 있습니다.
- 다음 토큰 다중 예측(MTP)
- — 한 번에 여러 미래 토큰을 예측해 순차 디코딩의 횟수를 줄이는 방식입니다. 이 글에서는 Qwen3.8-27B의 기존 가속 방식으로 사용됐으며, 코드 생성에서 평균 약 140 tk/s, 그 외 생성에서 약 100 tk/s의 기준 성능을 제공했습니다.
- KV 캐시(KV Cache)
- — Transformer가 이전 토큰의 Attention 계산에 필요한 Key와 Value를 저장해 긴 문맥에서 반복 계산을 줄이는 메모리 구조입니다. 이 글의 설정은 K와 V를 각각 q8_0으로 저장하고 160k 문맥을 사용했으며, DFlash2 적용 뒤 메모리 부담 때문에 MTP보다 문맥 길이를 줄였습니다.
코드 예제
-hf bartowski/Qwen3.8-27B-GGUF:Q5_K_L \
-hfd incoai/Qwen3.8-27B-DFlash2-GGUF:Q4_K_M \
--no-mmproj \
--spec-type draft-dflash \
--spec-draft-n-max 7 \
--host 0.0.0.0 \
--port 8080 \
--alias qwen3.8-27b \
-ngl 99 \
-fa on \
--ctx-size 160000 \
--cache-type-k q8_0 \
--cache-type-v q8_0 \
--batch-size 2048 \
--ubatch-size 1024 \
-np 2 \
--kv-unified \
--no-context-shift \
--temp 0.8 \
--top-p 0.95 \
--top-k 20 \
--min-p 0.0Qwen3.8-27B 본체와 DFlash2 초안 모델을 llama.cpp에서 함께 구동하기 위한 실행 설정입니다. DFlash 추측 디코딩을 활성화하고 초안 후보 수를 7개로 제한했으며, 160k 문맥과 q8_0 KV 캐시를 사용합니다.
언급된 도구
Qwen3.8-27B와 DFlash2 초안 모델을 GGUF 형식으로 실행하고 DFlash 추측 디코딩을 활성화하는 실행 프레임워크입니다.
언급된 리소스
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.