Speculative Decoding

Leviathan, Kalman, Matias·2023·arXiv:2211.17192

핵심 아이디어

디코딩은 메모리 대역폭에 묶여 있다. 한 번에 한 토큰씩 생성하는 autoregressive 방식은 GPU를 충분히 활용하지 못한다. Speculative decoding은 작고 빠른 draft 모델이 여러 개의 후보 토큰을 제안하면, target 모델이 이를 병렬로 검증하는 방식이다.

중요한 점은 출력 분포가 target 모델과 정확히 동일하다는 것이다. 근사가 아니라 수학적으로 동등하다.

메커니즘

  1. Draft 모델 M_q가 k개의 토큰을 순차적으로 생성 (빠르지만 품질은 낮음)
  2. Target 모델 M_p가 이 k개 토큰을 한 번의 forward pass로 평가
  3. M_p의 확률과 M_q의 확률을 비교해서 어디까지 accept할지 결정
  4. Rejection sampling으로 분포 보정

이 방식의 핵심은 draft 생성은 작은 모델로 빠르게 하고, 검증은 큰 모델로 병렬로 한다는 것이다.

결과

T5-XXL (11B)에서 T5X 기준:

  • 2×–3× 디코딩 속도 향상
  • 출력 분포는 vanilla autoregressive와 수학적으로 동일

병렬 작업: Chen et al., “Accelerating Large Language Model Decoding with Speculative Sampling” (arXiv 2302.01318)도 비슷한 시기에 같은 아이디어를 제안했다.

참고

  • 논문: Fast Inference from Transformers via Speculative Decoding, ICML 2023
  • arXiv: 2211.17192
← 빠른 추론 허브로 돌아가기