스크랩

DSpark 톺아보기: LLM 추론을 60~85% 빠르게 만든 DeepSeek의 새 추측 디코딩

DSpark 톺아보기: LLM 추론을 60~85% 빠르게 만든 DeepSeek의 새 추측 디코딩

한눈에 보는 핵심 요약

DeepSeek이 공개한 DSpark는 LLM 추론 속도를 끌어올리는 추측 디코딩(speculative decoding) 프레임워크입니다. 핵심은 두 가지를 결합한 데 있습니다.

  • 준자기회귀(semi-autoregressive) 생성: 빠른 병렬 생성의 장점은 살리되, 블록 후반부에서 정확도가 무너지는 문제를 보완
  • 신뢰도 스케줄링 검증: "무조건 많이 검증"이 아니라 "수익이 나는 토큰만 똑똑하게 검증"

결과적으로 기존 프로덕션 baseline인 MTP-1 대비 동일 처리량에서 사용자별 생성 속도가 60~85% 빨라졌고, DeepSeek-V4 실서비스에 적용되어 기존엔 도달 불가능했던 성능 구간(Pareto frontier)까지 열었습니다.

왜 이게 필요했나 — 병렬 드래프터의 두 가지 병목

LLM은 토큰을 하나씩 자기회귀적으로 생성하기 때문에, 출력이 길수록 지연이 비례해서 늘어납니다. GPU 활용도는 낮고 대기 시간은 길어지는 게 서빙의 고질적인 문제죠.

추측 디코딩은 가벼운 draft 모델이 후보 토큰 블록을 먼저 제안하고, 무거운 target 모델이 한 번의 순전파로 이를 검증하는 방식입니다. target 분포와 일치하는 가장 긴 접두부를 수락하므로 품질 손실 없이 가속할 수 있습니다.

그런데 드래프터에는 두 갈래의 한계가 있었습니다.

  • 자기회귀 드래프터: 각 위치를 이전 토큰에 조건화해 정확하지만, 드래프팅 비용이 블록 크기에 선형 비례 → 작고 얕은 구조에 갇힘
  • 병렬 드래프터: 블록 전체를 한 번에 생성해 빠르지만, 토큰 간 의존성을 모델링하지 못함 → "of course / no problem"이 섞여 "of problem" 같은 비일관 조합이 생기고, 블록 후반부 수락률이 급락(suffix decay)

아키텍처 — 두 개의 상호보완 요소

1) 준자기회귀 생성

무거운 병렬 백본(DFlash 채택)이 블록 전체를 단번에 처리해 속도를 유지하고, 여기에 경량 순차 모듈을 더해 블록 내부 의존성을 주입합니다.

  • 병렬 단계: 백본이 전체 블록에 단일 순전파를 수행해 은닉 상태와 기본 로짓 생성
  • 순차 단계: 기본 로짓에 접두부 의존 전이 편향을 더해, 각 위치가 블록 내 이전 샘플 토큰에 조건화되도록 함 (병렬 단계보다 충분히 가벼워야 함)
  • Markov 헤드: 직전 토큰만 보는 1차 전이로 단순화하고, V×V 행렬을 저랭크 분해(기본 r=256)로 근사 → "of" 다음엔 "course"를 강화하고 "problem"을 억제해 교차 모드 충돌을 완화

2) 신뢰도 스케줄링 검증

수락률은 도메인마다 다르고(코드↑, 개방형 채팅↓), 추가 검증 비용은 엔진 부하에 따라 달라집니다. DSpark은 기대 수익이 양수인 토큰에만 target 연산을 라우팅합니다.

  • 신뢰도 헤드: 각 위치가 검증을 통과할 조건부 확률을 스칼라로 추정 (선형 투영 + sigmoid)
  • Sequential Temperature Scaling(STS): 신경망 신뢰도가 과신하는 경향을 보정. held-out 셋에서 ECE를 최소화하되, 순서를 보존해 토큰 순위는 유지
  • 하드웨어 인지 스케줄러: 검증 길이 선택을 전역 처리량 최대화 문제로 정식화하고, 미리 프로파일링한 비용표를 O(1)로 조회해 검증 길이를 요청마다 동적으로 조정. 처리량이 떨어지면 즉시 멈추는 조기 중단으로 인과성도 보장

실험 결과

오프라인 벤치마크에서는 스케줄러를 끄고 순수 드래프트 품질만 분리해 평가했습니다.

  • Qwen3-4B/8B/14B에서 자기회귀 baseline Eagle3 대비 평균 수락 길이 30.9% / 26.7% / 30.0% 향상
  • 병렬 baseline DFlash 대비 16.3% / 18.4% / 18.3% 향상, Gemma4-12B에서도 일관된 이득으로 모델 패밀리 간 일반화 확인
  • 구조화된 과제(수학·코드)가 개방형 채팅보다 수락 길이가 높음 → 정적 검증 길이의 낭비가 신뢰도 스케줄링의 동기

흥미로운 포인트는 병렬 방식이 자기회귀를 능가한 반직관적 결과입니다.

  • 첫 위치의 우위: 병렬 드래프터는 깊은 망을 쓸 수 있어 첫 토큰 수락률이 높음(수학 0.88 vs 0.81). 첫 토큰이 거부되면 블록 전체가 무효화되므로 이 초기 우위가 결정적
  • 후반 붕괴 완화: 순수 병렬(DFlash)은 후반부가 무너지지만, DSpark은 경량 순차 헤드로 블록 전체에서 높고 안정적인 수락률 유지

또한 적은 자기회귀로도 큰 효과를 냅니다. 2층짜리 DSpark이 5층 DFlash를 전 도메인에서 능가했고, 순차 블록이 더하는 지연은 라운드당 0.2~1.3%에 불과한데 수락 길이는 최대 30%까지 늘었습니다.

마치며

DSpark의 메시지는 분명합니다. "더 길게 검증하지 말고, 더 똑똑하게 검증하라." 빠른 병렬 생성에 가벼운 순차 보정을 얹고, 하드웨어 부하까지 읽어 검증 길이를 조절하는 설계는, 추측 디코딩이 실험실을 넘어 실제 프로덕션 서빙에서 어떻게 동작해야 하는지를 잘 보여줍니다. DeepSeek-V4에 이미 배포되어 효과를 입증했다는 점에서, LLM 추론 최적화를 고민하는 분이라면 한 번쯤 원문 PDF를 들여다볼 가치가 충분합니다.


원문: https://news.hada.io/topic?id=30902