본문으로 건너뛰기
r/LocalLLaMA조회 2

DFlash2로 Qwen3.8-27B 코드 생성 가속

DFlash2가 Qwen3.8-27B 코드 생성에서 약 200 tk/s의 순간 속도를 냈지만 메모리 사용량도 늘었습니다.

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

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는 출력 유형별 후보 적중률에 따라 효과가 달라지므로 동일한 프롬프트와 문맥에서 비교하는 편이 적절합니다.

섹션별 상세

작성자는 llama.cpp를 PR #27342와 함께 다시 빌드한 뒤 Qwen3.8-27B 본체와 Qwen3.8-27B-DFlash2 초안 모델을 연결했습니다. `--spec-type draft-dflash`와 `--spec-draft-n-max 7`로 DFlash2를 활성화하고, 160000 토큰 문맥과 q8_0 KV 캐시를 지정했습니다. 이 구성은 DFlash2가 초안 모델의 후보 토큰을 활용해 주력 모델의 코드 생성 과정을 병렬화하는 실험 조건입니다.
기존 MTP에서는 코드 생성 시 평균 약 140 tk/s, 그 외 생성에서는 약 100 tk/s가 나왔지만, DFlash2에서는 긴 코드 블록을 생성할 때 짧은 구간 기준 약 200 tk/s까지 도달했습니다. 반대로 사고 과정에서는 약 80~90 tk/s로 낮아졌고, 추론을 끈 단일 코드 생성 요청의 전체 평균은 약 120 tk/s였습니다. 따라서 DFlash2의 이점은 출력 패턴이 예측 가능한 코드 생성에 집중되며, 모든 생성 유형에서 일관된 속도 향상을 보장하지는 않았습니다.
DFlash2는 Qwen3.8-27B에서 MTP보다 나은 결과를 냈지만, 작성자가 Qwen3.6 27B에서 사용한 기존 DFlash 결과보다는 낮았습니다. 또한 MTP 사용 때 220k까지 가능했던 문맥 길이를 160k로 낮춰야 했고, 약 180k까지는 맞출 가능성이 있다고 추정했습니다. 속도 향상과 메모리 사용량 증가를 함께 고려하면 현재 환경에서는 개인적인 사용 가치가 충분하지 않다는 판단입니다.

용어 해설

추측 디코딩(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보다 문맥 길이를 줄였습니다.

코드 예제

bash
-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.0

Qwen3.8-27B 본체와 DFlash2 초안 모델을 llama.cpp에서 함께 구동하기 위한 실행 설정입니다. DFlash 추측 디코딩을 활성화하고 초안 후보 수를 7개로 제한했으며, 160k 문맥과 q8_0 KV 캐시를 사용합니다.

언급된 도구

llama.cpp중립

Qwen3.8-27B와 DFlash2 초안 모델을 GGUF 형식으로 실행하고 DFlash 추측 디코딩을 활성화하는 실행 프레임워크입니다.

언급된 리소스

AI 분석 전체 내용 보기

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

출처 · 인용 안내

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

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