본문으로 건너뛰기

DFlash2가 Qwen3.8-27B 디코드 속도를 두 배로 높였다

DFlash2는 프리필을 15% 늦추는 대신 Qwen3.8-27B 디코드 속도를 약 2배 높였다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

게시자는 Qwen3.8-27B-UD-Q4_K_XL.gguf에 DFlash2 draft 모델을 붙여 8k와 256k 프롬프트에서 추론 속도를 측정했다. DFlash2는 프리필 처리량을 약 15% 낮췄지만 디코드 속도를 8k에서 약 70 tps에서 140 tps로, 256k에서 약 40 tps에서 75 tps로 높여 전체 wall time을 줄였다. draft 토큰을 7개로 늘리면 디코드 속도는 약 2.7배까지 올라갔지만 토큰 하나마다 약 599MB의 VRAM이 추가로 필요했다. Q4_K_M draft 모델은 Q8_0과 동일한 draft acceptance를 유지했지만 256k 컨텍스트에서는 메모리 부족으로 추가 토큰을 더 넣지 못했다.

실용적 조언

  • DFlash2를 재현하려면 PR 27342를 체크아웃하고 CUDA 옵션으로 llama.cpp를 빌드한 뒤, Qwen3.8-27B-UD-Q4_K_XL.gguf와 Qwen3.8-27B-DFlash2-Q4_K_M.gguf를 함께 지정하면 된다. 실행 설정에는 262144 컨텍스트, q8_0 KV 캐시, GPU offload 99, 최대 5개 draft 토큰이 포함됐다. VRAM이 허용하면 draft 토큰 수를 7개까지 늘려 약 2.7배 디코드 속도를 측정할 수 있지만, 토큰 하나당 약 599MB가 추가로 필요하다.

섹션별 상세

게시물은 DFlash2를 붙였을 때 프리필 처리량이 약 15% 낮아지는 대신 디코드 속도가 거의 2배가 된다는 측정값을 제시했다. 8k 프롬프트에서는 프리필이 약 3000 tps에서 2500 tps로 줄었지만 디코드는 약 70 tps에서 140 tps로 늘었다. 256k 프롬프트에서도 프리필은 약 1300 tps에서 1100 tps로 낮아졌고 디코드는 약 40 tps에서 75 tps로 높아져 전체 wall time은 DFlash2 사용 쪽이 짧아졌다.
DFlash2의 draft 토큰 수를 늘리면 디코드 속도가 더 높아지지만 VRAM 비용이 함께 증가했다. 게시자는 7개 draft 토큰에서 약 2.7배 디코드 속도를 얻었고, Qwen 계열에서는 draft 토큰 하나가 추가될 때마다 정적으로 약 599MB의 VRAM을 더 사용한다고 기록했다. 256k 컨텍스트와 4bit Unsloth 모델 조합에서는 메모리 부족으로 추가 토큰을 넣을 수 없었으며, 게시자는 Qwen3.5-arch의 hybrid linear-attention 구조 때문에 각 speculative branch가 recurrent state의 별도 복사본을 필요로 하는 현상으로 추정했다.

용어 해설

추측 디코딩(Speculative Decoding)
작은 draft 모델이 다음 토큰 후보를 먼저 생성하고 큰 모델이 이를 검증해 생성 단계를 묶어 처리하는 추론 방식이다. 후보가 많이 수용되면 디코드 반복 횟수가 줄어들어 토큰 생성 속도가 높아지지만, draft 모델 실행 비용과 메모리 사용량이 추가된다.
프리필(Prefill)
입력 프롬프트 전체를 모델에 넣어 초기 attention과 내부 상태를 계산하는 단계다. 긴 프롬프트에서는 처리해야 할 토큰 수가 커져 시간이 늘어나며, DFlash2를 함께 실행하면 이 단계의 처리량이 약 15% 낮아지는 결과가 기록됐다.
디코드(Decode)
모델이 이미 처리한 문맥을 바탕으로 출력 토큰을 한 개씩 이어 생성하는 단계다. 게시물에서는 DFlash2가 draft 토큰을 먼저 만들고 큰 모델의 검증과 결합하면서 8k 문맥에서 약 70 tps를 140 tps로, 256k 문맥에서 약 40 tps를 75 tps로 높였다.
초안 모델(Draft Model)
큰 모델의 출력 후보를 먼저 생성해 추론 과정을 줄이는 보조 모델이다. 게시물에서는 Qwen3.8-27B-DFlash2-Q4_K_M.gguf를 초안 모델로 사용했으며, Q4_K_M 양자화에서도 Q8_0과 동일한 draft acceptance를 기록해 더 많은 draft 토큰을 위한 메모리 여유를 확보했다.
양자화(Quantization)
모델 가중치나 상태를 더 낮은 비트 표현으로 저장해 메모리 사용량을 줄이는 기법이다. 이 사례에서는 DFlash2를 Q4_K_M으로 실행해 Q8_0과 같은 후보 수용률을 유지했고, 그 결과 추가 draft 토큰을 일부 확보했다.

코드 예제

bash
gh pr checkout 27342 && cmake -B build -DGGML_CUDA=ON && cmake --build build

llama-server -m Qwen3.8-27B-UD-Q4_K_XL.gguf \
  -md Qwen3.8-27B-DFlash2-Q4_K_M.gguf \
  -ngl 99 -ngld 99 -fa on --jinja \
  -c 262144 -ctk q8_0 -ctv q8_0 -ctkd q8_0 -ctvd q8_0 \
  --spec-draft-n-max 5

PR 27342를 체크아웃한 뒤 CUDA 지원으로 빌드하고, Qwen3.8-27B 모델과 DFlash2 draft 모델을 256k 컨텍스트 및 최대 5개 draft 토큰 설정으로 실행하는 명령이다.

언급된 도구

llama-server중립

Qwen3.8-27B 본 모델과 DFlash2 draft 모델을 함께 실행해 speculative decoding 성능을 측정하는 서버 실행 도구다.

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 08. 21.수집 2026. 08. 21.출처 타입 REDDIT

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.