데이터는 고갈되고 AI 모델들은 충분한 성능을 내기 시작했다. AI 학습 시대는 끝났고, AI 추론 시대가 열린 듯 하다. AI 모델의 가성비는 매년 좋아지고 있지만, 동시에 수요가 폭발적으로 증가하고 있다. 모델을 서빙하는 입장에서는 같은 비용으로 더 빠른 추론 성능을 내고 싶은 것이 당연하다. 여기서는 메모리를 조금 더 써서 추론 속도를 향상시키는 Speculative Decoding 기법에 대해 알아보고자 한다.
다음 영상이 아주 쉽고 재밌게 설명해준다.

직역하면 예측 디코딩인데, 작은 모델인 Draft 모델로 대충 때려 맞추고, 큰 모델인 Target 모델로 검증하는 방법이다.
큰 모델만 쓰면 좋겠지만, 보통 모델이 클수록 연산량이 늘어나고 추론 속도가 떨어진다. 이는 비용 상승으로 이어진다.
이를 보완하기 위해 작은 모델을 쓰면서 동시에 큰 모델은 병렬 처리를 하도록 해서 추론 속도를 향상시킨다. 총 연산량은 늘어나지만 메모리 대역폭 병목을 줄여서 빨라지는 것이다. GPU 입장에서는 거대한 가중치를 여러 번 끌어오는 것보다, 한 번 끌어와서 여러 개의 토큰을 동시에 처리하는 게 훨씬 빠르기 때문이다. (연산량이 늘어나지만 빨라지는 Flash Attention 기법이 생각나는 부분이다)

초록색은 작은 모델이 제출한 정답이 맞는 경우고, 빨간색은 틀린(큰 모델과 다른) 경우다.
파란색은 작은 모델이 틀린 경우, 큰 모델이 새로운 정답을 제시한 것이다.
즉, 매번 정답을 틀려서 큰 모델의 힘을 빌리지언정 결국 정답으로 가는 것이다.
순차적으로 토큰을 생성하는 것보다, 여러 토큰을 한꺼번에 넣고 정답인지 확인하는 과정이 훨씬 저렴하기 때문에 가능한 기법으로 보인다.

Gemma 릴리즈 노트를 보면, Gemma 4는 3월 출시인데 Gemma 4 - MTP라는 것이 4월에 또 출시되었다고 한다.
MTP가 도대체 무엇인가?

MTP 논문에 따르면 MTP는 헤드를 여러개 붙여서 필요한 토큰을 한꺼번에 출력하는 기법이다. Transformer는 Auto-regressive 모델이라 한번에 하나의 토큰만 생성하는 병목이 있는데, MTP를 통해 속도도 향상시키고 코딩 벤치 점수도 높아졌다고 한다. 물론 무조건 좋다는건 아니고, 어느정도 모델이 커야하고 경우에 따라 성능이 하락할 수도 있다.
그런데 토큰을 한꺼번에 출력하는 기능은 앞서 언급한 Speculative Decoding의 Draft 모델에게 매우 필요한 것이다. 성능에 차이가 있을지라도, Draft 모델에게는 빠른 출력도 중요하기 때문이다. 두 기법이 큰 시너지를 낼 수 있는 이유이다.

구글 블로그에서도 MTP가 언급되어서 gemma-4-E4B-it-assistant 모델 구조를 AI에게 분석시켰는데, 토큰을 한꺼번에 생성하는 증거는 찾지 못했다. 기대하기로는 출력 헤드가 여러개 있어야하는데, 아마 Draft 모델로서 토큰을 연속해서 여러개 생성한다는 의미의 MTP일지도 모르겠다.

아무튼 찐 MTP든 아니든 구글이 주장하는 바에 따르면 추론 속도가 최대 3배까지 빨라진다고 한다. Speculative Decoding이 효율적으로 잘 작동하나 보다.
Standard: 14.81 tokens/sec (avg)
MTP: 27.42 tokens/sec (avg)
Speedup: 1.85x
실제로 돌려보면, E4B 기준 약 1.8배 정도 빠른 것을 확인할 수 있었다.