Speculative Decoding 실전: DeepSeek DSpark / DFlash / Eagle3로 로컬 추론 가속하기
Speculative Decoding 실전
로컬 추론에서 가장 체감하기 쉬운 병목현상은 '생성이 느리다'입니다. 양자화는 모델을 VRAM에 넣기 위한 수단이고, speculative decoding(투기 디코딩)은 모델을 바꾸지 않고 생성 대기 시간을 줄이는 수단입니다. DeepSeek은 HuggingFace에서 DSpark, DFlash, Eagle3 세 시리즈를 공개하며 자사 V4 모델에 더해 Qwen3, Gemma4 같은 타사 베이스를 커버합니다. 이 글은 원리, 준비된 페어, 설정 방식, 유용한 장면을 정리합니다.
30초 요약
speculative decoding = 작은 모델이 여러 토큰을 초안 → 큰 모델이 한 번의 병렬 검증으로 확인 → 통과한 접두사를 그대로 채택. 채택되는 각 토큰은 큰 모델이 확인했으므로 출력 분포가 변하지 않습니다. DeepSeek의 DSpark / DFlash / Eagle3는 공식 공개의 초안 모델이므로, 직접 초안 모델을 훈련하기 전에 먼저 이것을 시도하는 것이 유리합니다.
원리: 왜 빠르고 왜 결과가 바뀌지 않는가
자기회귀 생성은 직렬입니다. N번째 토큰을 내기 위해 N-1번째 완료를 기다려야 하고, GPU는 한 번에 1토큰만 계산하며 계산 자원의 상당 부분이 놀고 있습니다. speculative decoding의 생각:
- 훨씬 작은 '초안 모델'이 이후 토큰을 여러 개, 저렴하게 연속 예측
- 그 후보를 큰 모델에 몰아서 넣어 병렬 검증(한 번의 순전파로 여러 위치를 확인, 계산 이용률이 높아짐)
- 큰 모델이 동의한 접두사를 채택, 처음 불일치가 나온 위치부터 초안을 다시 하기
요점은 검증 과정입니다. 채택되는 토큰은 모두 큰 모델이 직접 확인한 것이므로 최종 출력은 비가속 시와 동일합니다. 그것은 '모델을 더 대충 하게 한다'가 아니라 '같은 계산을 더 적은 대기 시간으로 한다'는 것입니다. 출력 분포가 불변이라는 점이 '더 작은 모델로 바꾼다'와의 근본적 차이입니다.
양자화와의 차이
양자화가 줄이는 것은 모델 크기와 VRAM(Q4는 FP16의 약 3분의 1), speculative decoding이 줄이는 것은 생성 대기 시간입니다. 작용하는 차원이 다르므로 병용할 수 있습니다. 양자화된 모델에 그대로 speculative decoding을 얹을 수 있습니다.
DeepSeek이 공개한 페어
HuggingFace의 deepseek-ai 조직이 2026-06-27/28에 공개한 정보를 기반으로 합니다(다운로드 수는 수집 시점의 참고값, 최신은 각 모델 카드를 참조).
| 시리즈 | 대표 리포지토리 | 대상 베이스 | DL 참고 |
|---|---|---|---|
| DSpark (V4) | DeepSeek-V4-Flash-DSpark | DeepSeek V4-Flash | 약 12.8만 |
| DSpark (V4) | DeepSeek-V4-Pro-DSpark | DeepSeek V4-Pro | 약 2.1천 |
| DSpark (범용) | dspark_qwen3_8b_block7 | Qwen3-8B | 약 2.2만 |
| DSpark (범용) | dspark_qwen3_14b/4b_block7, dspark_gemma4_12b_block7 | Qwen3-14B/4B, Gemma4-12B | 수천 |
| DFlash | dflash_qwen3_4b/8b/14b_block7, dflash_gemma4_12b_block7 | Qwen3, Gemma4 | 수백~수천 |
| Eagle3 | eagle3_qwen3_4b/8b/14b_ttt7, eagle3_gemma4_12b_ttt7 | Qwen3, Gemma4 | 수백 |
세 시리즈는 서로 다른 초안 생성 전략에 대응합니다(block7, ttt7 접미사는 구조·학습 설정의 식별자, 정확한 의미는 각 모델 카드). 명명 규칙이 실용적입니다: dspark_qwen3_8b_block7은 'Qwen3-8B용 DSpark 초안 모델'. 페어를 고를 때는 먼저 베이스 이름과 규모를 맞추세요 — 14B 초안을 4B 대상에 맞추지 마세요.
베이스 일치가 제1원칙
효과는 초안 모델과 대상 모델의 일치도에 크게 좌우됩니다. 베이스나 규모가 어긋난 페어는 검증 채택률이 뚝 떨어지고 초안 측 연산이 낭비됩니다. 모델 카드에 대상 베이스가 명시된 페어를 우선하세요.
설정 방식
프레임워크마다 필드 이름이 다르지만 절차는 공통 3단계입니다.
1. 대상 모델 로드 + 초안 모델 지정. llama.cpp 계열은 초안 모델 경로 플래그(-md나 --model-draft 계열, 실제로는 사용 버전의 --help 확인). vLLM은 speculative config로 초안 모델과 방식을 지정합니다.
# llama.cpp 형태 예시: 필드명은 버전 --help에 따름
./build/bin/llama-server \
-m ./models/Qwen3.8-27B-Q4_K_M.gguf \
-md ./models/draft-model.gguf \
-ngl 40 -c 8192 \
--host 127.0.0.1 --port 8080
2. 먼저 돌려서 조정. 초안 길이(한 번에 몇 토큰 예측하는가), 병렬 검증 배치 크기가 효과에 영향을 줍니다. 기본값으로 돌리고 같은 프롬프트 세트로 가속 on/off의 token/s를 비교하세요.
3. 고정 프롬프트 세트로 실측. 비가속 시 token/s와 VRAM, 가속 시 값을 기록합니다. 가속 이익은 모델·하드웨어·작업 분포에 따라 다르므로 이 글에서는 보편 배율을 쓰지 않습니다 — 직접 측정한 값이 유일한 근거입니다.
초안 모델도 VRAM을 사용합니다
초안 모델도 VRAM을 점유합니다. 대상 모델보다 훨씬 작지만, 원래 VRAM이 빠듯한 머신에서는 공간을 확보해야 합니다. 유효화 전 '대상 가중치 + KV cache + 초안 + 오버헤드'로 예산을 잡으세요.
어떤 장면에서 유용한가
| 장면 | 유용한가 | 이유 |
|---|---|---|
| 배치 문서 처리(긴 출력) | 유용 | 채택률이 높은 반복 패턴이 많음 |
| 긴 에이전트 루프, 코드 생성 | 유용 | 생성량이 커서 누적 절약이 큼 |
| 단발 짧은 Q&A | 제한적 | 직렬 단계가 적어 늘릴 공간이 작음 |
| VRAM이 이미 꽉 찬 경우 | 신중 | 초안 모델이 추가 VRAM을 요구 |
| 출력이 불확실한(창작) | 신중 | 초안 채택률이 낮을 수 있음 |
| 구조화 출력(JSON/표) | 유용 | 템플릿 토큰이 많아 적중률이 높음 |
경험 법칙: 출력이 길고 예측 가능할수록 speculative decoding이 제값을 합니다. 짧은 Q&A는 직렬 단계가 얼마 되지 않아 애초에 가속 천장이 낮습니다.
다른 가속 수단과의 관계
| 수단 | 작용 계층 | 병용 |
|---|---|---|
| 양자화(Q4/Q5/Q8) | 가중치 크기/VRAM | 가능 |
| GPU 레이어 수(-ngl) | 계산 배치 | 가능 |
| speculative decoding | 생성 직렬성 | 본 주제 |
| 더 작은 모델로 교체 | 모델 능력 | 다른 트레이드오프(품질 하락) |
| 배치 추론 | 스루프트 | 가능 |
'더 작은 모델로 교체'와 speculative decoding의 본질적 차이: 전자는 품질을 속도와 교환하고, 후자는 품질을 교환하지 않습니다. 작업이 품질에 민감하면 speculative decoding이 더 깨끗한 선택입니다.
FAQ
speculative decoding은 답변 품질을 떨어뜨리나요?
DeepSeek 페어를 Qwen 모델에 쓸 수 있나요?
유효화로 VRAM은 얼마나 늘어나나요?
몇 배 빨라지나요?
양자화와 충돌하나요?
EXAIV 클라우드에서 사용할 수 있나요?
관련 글
- VRAM 계산 실전 — VRAM 예산 수립
- 로컬 배포 완전 플레이북 — 7단계
- Qwen 모델 선택 가이드 — 패밀리 사용 구분
- 로컬 계산 비용 모델 — 비용 판단
- 로컬 LLM용 GPU 선택 가이드 — 하드웨어 선정