본문 바로가기
Inference/Optimization

MTP (Multi-Token Prediction)

by AtoN 2025. 12. 3.

MTP (Multi-Token Prediction)

Multi-Token Prediction(MTP)은 한 위치에서 바로 다음 토큰 하나만 예측하는 대신, 그보다 더 먼 미래의 여러 토큰까지 예측하도록 추가 학습 신호를 주는 방법입니다. 2024년 원 논문은 이를 통해 training signal을 더 조밀하게 만들어 모델의 sample efficiency와 품질을 높일 수 있는지 살펴봤고, 동시에 여러 미래 토큰 예측을 speculative decoding에 활용해 추론을 가속하는 방법도 제시했습니다.

이후 MTP의 구현 방식도 확장됐습니다. 원 논문은 shared model trunk 위에 여러 independent prediction head를 두어 미래 토큰을 병렬로 예측했지만, DeepSeek-V3는 causal chain을 유지하는 sequential MTP module을 사용합니다. 최근 모델에서는 이렇게 학습된 MTP head나 module을 별도의 draft model 없이 speculative decoding의 native proposer로 활용하기도 합니다.

여기서 학습 효과와 추론 효과는 분리해서 보는 것이 중요합니다. MTP objective를 사용했을 때 모델 품질이 개선되는 것과, MTP proposer를 사용했을 때 latency나 throughput이 개선되는 것은 서로 다른 조건의 결과입니다. MTP가 여러 미래 토큰을 예측한다고 해서 그 토큰이 그대로 확정되는 것도 아니며, speculative decoding에서는 target model의 출력을 유지하기 위한 verification 과정이 필요합니다.

2026년 현재 vLLM은 MTP를 speculative decoding 방식 중 하나로 지원하고 있으며 Qwen3-Next, Qwen3.5, Gemma 4 assistant 계열 등 모델별 MTP 경로가 추가되어 있습니다. 하지만 지원 구조와 효과적인 speculative depth는 모델과 serving 환경에 따라 다릅니다. 따라서 +2가 항상 최적이다거나 MTP가 있으면 별도 비용 없이 빨라진다는 고정 규칙보다 acceptance rate와 proposer 비용, end-to-end latency와 throughput을 실제 workload에서 함께 측정하는 것이 중요합니다.


1장. next-token objective에 미래 예측 신호를 더한다

자기회귀의 구조적 병목. LLM 생성은 토큰을 하나씩 순차로 뽑습니다. 토큰 1을 뽑아야 토큰 2를 뽑을 수 있어서, 100개 토큰을 만들려면 본체 forward를 100번 돌려야 합니다.

이것이 낭비인 이유. decode 단계는 memory-bound입니다. 가중치를 GPU 메모리에서 읽어오는 시간이 지배하고 연산 유닛은 놀고 있습니다. 한 번 읽어온 가중치로 토큰 하나만 만들고 버리는 셈입니다.

여기서 이왕 읽어온 김에 여러 개 만들면 안 되느냐는 발상이 나옵니다.

두 가지 접근. Speculative Decoding은 작고 빠른 모델이 여러 토큰을 추측하고 본체가 한 번에 검증하는 방식인데, 별도 draft 모델을 따로 학습하고 따로 로드해야 합니다. MTP는 본체 자신에게 미리 다음 몇 개를 예측하는 능력을 학습시키고 그 능력이 추론 때 그대로 drafter가 됩니다.

MTP는 학습 목표이고 Speculative Decoding은 추론 알고리즘입니다. 둘은 다른 층위의 개념인데 MTP 헤드가 곧 drafter라는 지점에서 만납니다.


2장. 한 위치에서 여러 미래 token을 학습한다

공유된 본체 위에 여분의 출력 헤드 또는 모듈을 추가해 한 위치에서 미래의 여러 토큰을 동시에 예측하게 만듭니다.

기존
   위치 t 의 은닉 상태  ──►  헤드  ──►  t+1 예측

MTP
   위치 t 의 은닉 상태  ──►  메인 헤드   ──►  t+1 예측
                        ──►  MTP 헤드 1  ──►  t+2 예측
                        ──►  MTP 헤드 2  ──►  t+3 예측

두 이득. 학습 신호 밀도가 오릅니다. 매 위치가 다음 1개가 아니라 다음 n개를 맞히도록 강제되면 더 멀리 보는 표현을 배웁니다. 그리고 학습된 그 헤드들이 추론 때 그대로 drafter로 재활용되어 별도 draft 모델 없이 본체와 trunk를 공유합니다.

MTP가 한 번에 여러 토큰을 그냥 내보낸다는 것은 틀렸습니다. 그렇게 하면 품질이 무너집니다. t+2를 예측할 때 t+1이 뭔지 아직 확정이 안 됐으니 문맥 없이 찍는 셈입니다.

그래서 추측한 토큰을 본체가 검증하고 처음 틀린 지점부터 교정합니다. 이 검증 덕분에 출력이 무손실이고, MTP는 추측을 만드는 부분이지 검증을 생략하는 것이 아닙니다.

MTP가 Speculative Decoding과 같다는 것도 틀렸습니다. MTP는 학습 목표로 모델을 어떻게 훈련시킬 것인가이고 Speculative Decoding은 추측하고 검증하는 추론 절차입니다. MTP로 학습한 모델을 Speculative Decoding 없이 그냥 써도 되고, Speculative Decoding을 MTP 없이 별도 draft 모델로 해도 됩니다.

본체가 한 문장을 부를 때 옆의 빠른 비서가 그 다음 몇 단어까지 미리 받아 적습니다. 본체는 비서가 적은 것을 한눈에 훑어 맞은 데까지 그대로 쓰고 처음 틀린 곳부터 직접 고칩니다.

비서를 본체와 같이 길렀기 때문에 추측이 잘 맞습니다. 마지막 문장이 MTP의 핵심입니다. 별도로 데려온 draft 모델과 달리 MTP 헤드는 본체와 같은 데이터로 같이 학습돼 본체의 분포를 잘 흉내 냅니다.


3장. training signal이 더 조밀해지는 효과

본체가 위치 t의 은닉 상태를 만들면 메인 헤드는 t+1을, MTP 헤드들은 t+2와 t+3을 예측합니다. 각 헤드마다 별도 손실을 계산하고 보조 손실을 합쳐 학습하면, 결과적으로 본체가 더 먼 미래까지 의식하는 표현을 배웁니다.

왜 품질이 오르나. 다음 한 글자만 맞히기는 지역적 패턴만 봐도 어느 정도 됩니다. 인공지 다음은 능이라는 것은 문맥을 깊게 안 봐도 맞습니다. 다음 세 글자를 맞히기는 더 멀리 봐야 하고, 그 압력이 본체의 표현을 더 좋게 만듭니다.

Meta의 측정치. Gloeckle et al.의 ICML 2024 논문 저자 보고입니다.

항목 보고 내용
13B 모델 HumanEval 동급 next-token 모델 대비 12% 더 많이 해결
13B 모델 MBPP 동급 next-token 모델 대비 17% 더 많이 해결
학습 시간 추가 비용 없음
모델 크기 클수록 이득이 커진다
다중 에폭 여러 에폭 학습해도 이득이 유지된다
부수 효과 induction head 형성과 알고리즘적 추론에 유리

논문이 특히 강조한 지점은 생성형 벤치마크, 특히 코딩에서 이득이 두드러진다는 것입니다.

코드에서 이득이 큰 이유. 코드는 구조가 강합니다. 여는 괄호 뒤에는 닫는 괄호가 오고 for 뒤에는 조건과 블록이 옵니다. 미래 토큰이 현재로부터 잘 결정됩니다.

반대로 창작 텍스트는 미래가 열려 있어서 같은 문맥에서 다음 문장이 여러 갈래로 갈 수 있고 MTP의 이득이 작습니다. 이 성질은 뒤의 수용률 이야기에서 그대로 다시 나옵니다.


4장. native MTP layer를 proposer로 재사용한다

① MTP 헤드들이 다음 k 개 토큰을 추측한다 (draft)

② 본체(target)가 그 k 개를 한 번의 forward 로 병렬 검증한다

③ 앞에서부터 맞은 토큰을 채택한다

④ 처음 어긋난 지점부터 본체 분포로 교정한다

왜 무손실인가. 검증 단계에서 본체의 분포를 그대로 씁니다. 추측이 맞으면 어차피 본체가 뽑았을 토큰이라 그대로 채택하고, 틀리면 그 지점부터 본체가 다시 뽑습니다. 그래서 최종 출력 분포가 본체 단독 생성과 같습니다. 빠르지만 품질이 조금 떨어지는 것이 아니라 출력이 통계적으로 동일합니다.

MTP layer를 proposer로 사용할 때는 여러 미래 token 후보를 만들고 target path가 이를 검증합니다. acceptance length가 높을수록 verification round당 전진하는 token 수가 늘어 latency를 줄일 수 있습니다.

여러 candidate position을 함께 검증하면 작은-batch memory-bound decode에서 weight reuse와 GPU utilization을 높일 수 있습니다. 하지만 candidate가 늘면 attention·activation 계산도 증가하므로 검증 비용이 공짜인 것은 아니며, batch가 크거나 compute-bound에 가까우면 이득이 줄 수 있습니다.

별도 draft 모델 대비 이점.

별도 draft 모델 MTP 헤드
추가 학습 필요 본체 학습에 포함됨
추가 메모리 draft 모델 전체 헤드 또는 얇은 모듈
분포 정합 다른 모델이라 어긋날 수 있음 같이 학습돼 잘 맞음
배포 파일 두 개 파일 하나

온디바이스에서 이 차이가 특히 큽니다. 메모리가 빠듯한 환경에서 draft 모델 하나를 더 올리는 것은 부담입니다.


5장. parallel head와 sequential module

여분 헤드를 어떻게 배치할 것인가에서 갈리고, 이 차이가 추론 수용률을 크게 가릅니다.

Meta식, 병렬 독립 헤드.

       공유 trunk (본체)
          │
          ├──►  헤드 1  ──►  t+1
          ├──►  헤드 2  ──►  t+2
          ├──►  헤드 3  ──►  t+3
          └──►  헤드 4  ──►  t+4

   네 헤드가 서로를 안 보고 동시에 예측한다

구조가 단순하고 헤드가 가벼우며 한 번에 다 뽑으니 draft 자체는 빠릅니다. 대신 깊은 위치에서 인과 사슬이 끊깁니다. 헤드 3은 헤드 2가 뭘 뽑았는지 모르고 t+3을 찍어서 추측끼리 서로 모순될 수 있습니다.

DeepSeek식, 순차 인과 사슬.

본체  ──►  은닉 상태 h(0)
             │
             ▼
        MTP 모듈 1  ──►  t+1 예측
             │
             ▼
        MTP 모듈 2  ──►  t+2 예측

   각 모듈이 앞 모듈의 출력을 입력으로 받는다

DeepSeek-V3 논문의 실제 구성은 D개의 순차 모듈로 D개의 추가 토큰을 예측하는 것입니다.

k 번째 MTP 모듈 =
   공유 임베딩 레이어 Emb
   공유 출력 헤드 OutHead
   트랜스포머 블록 TRM_k
   투영 행렬 M_k  (차원 d x 2d)

k번째 깊이에서 앞 깊이의 표현과 해당 토큰의 임베딩을 각각 RMSNorm한 뒤 이어 붙이고 투영 행렬로 투영해 트랜스포머 블록에 넣습니다. k가 1일 때 앞 깊이의 표현은 본체 모델의 표현입니다.

임베딩과 출력 헤드를 본체와 공유하는 것이 메모리 절감의 핵심입니다. 추가되는 것은 트랜스포머 한 층과 투영 행렬뿐입니다.

비교표.

구분 Meta DeepSeek-V3
헤드 배치 n개 독립 헤드가 병렬로 동시 예측 D개 모듈이 순차, 앞 예측을 입력으로 받음
인과 사슬 깊은 위치에서 끊김 각 깊이에서 유지
모듈 구성 공유 trunk + 작은 출력 헤드 트랜스포머 한 층 + 임베딩과 출력헤드 공유
주 목적 학습 신호 밀도 (품질) 학습 신호 + 추론 drafter 정조준
보고 결과 13B에서 HumanEval +12%, MBPP +17% 2번째 토큰 수용률 85~90%, 1.8배 TPS

순차가 추론에 유리한 이유. 깊은 토큰까지 앞 토큰의 실제 문맥을 보고 추측해서 추측끼리 모순이 적고 더 깊은 위치에서도 수용률이 덜 떨어집니다.

대신 draft 생성이 순차라 그만큼 느립니다. 병렬 헤드는 draft가 빠르지만 수용률이 낮고 순차 모듈은 draft가 느리지만 수용률이 높아서, 최종 속도는 이 둘의 곱으로 결정됩니다.


6장. training gain과 inference gain을 분리해서 본다

DeepSeek-V3 논문의 MTP in Inference 절은 이렇게 적혀 있습니다.

MTP 전략의 주목적은 본체 모델의 성능을 개선하는 것이므로, 추론 때는 MTP 모듈을 그냥 버려도 본체 모델이 독립적으로 정상 동작한다. 추가로, 이 MTP 모듈을 Speculative Decoding에 재활용해 생성 지연을 더 줄일 수도 있다.

읽는 순서가 중요합니다. 본체 품질 향상이 주목적이고 Speculative Decoding은 추가로 재활용할 수 있는 덤입니다. 2차 자료가 흔히 뒤집어 소개하는 지점인데, MTP가 추론 가속 기법이라는 설명을 자주 보지만 원 논문의 강조점은 반대쪽입니다.

절제 실험이 이 점을 뒷받침합니다. DeepSeek-V3의 MTP 절제 실험은 소규모로 총 15.7B 파라미터 MoE를 1.33T 토큰에, 대규모로 총 228.7B 파라미터 MoE를 540B 토큰에 학습시켰습니다. 같은 데이터와 아키텍처에 1-depth MTP 모듈만 추가해 비교했습니다.

결정적인 조건이 있습니다. 추론 때는 MTP 모듈을 그냥 버리므로 비교 대상 모델들의 추론 비용이 정확히 동일합니다. 같은 추론 비용에서 벤치마크가 올랐다는 것이 이 실험의 요지이고, 속도 이야기가 아니라 순수한 품질 이야기입니다.

MTP는 training objective와 speculative proposer라는 두 활용이 연결될 수 있다는 점이 흥미롭습니다. 다만 추가 MTP loss와 layer/head에는 학습·메모리 비용이 있고, 품질 및 속도 이득도 architecture와 workload에 따라 다르므로 공짜 품질 향상으로 표현하면 과장입니다.


7장. acceptance와 speculative depth

수용률은 drafter의 추측이 채택되는 비율이고, acceptance length는 한 번의 검증으로 평균 확정되는 토큰 수입니다. 둘 다 높을수록 빠릅니다.

DeepSeek-V3의 수치. 논문 본문의 저자 보고입니다. DeepSeek-V3는 MTP로 다음 2개 토큰을 예측하는데, 두 번째 토큰 예측의 수용률이 생성 주제 전반에 걸쳐 85%에서 90% 사이이고 이 높은 수용률 덕에 1.8배 TPS를 냅니다. 참고로 DeepSeek-V3 자체 규모는 총 671B 파라미터에 활성 37B, 14.8T 토큰 학습입니다.

speculative depth를 늘리면 한 round에서 더 멀리 전진할 가능성이 생기지만 뒤쪽 proposal의 acceptance가 떨어지고 proposer/verification 비용이 늘 수 있습니다. 현재 vLLM 문서도 작은 num_speculative_tokens부터 시작하라고 안내하며, 최적 depth는 model family와 workload에서 benchmark해야 합니다.

도메인 의존성. 수용률이 높은 쪽은 코드와 정형 텍스트, 구조가 강한 출력이고 낮은 쪽은 창작과 높은 temperature, 열린 문맥입니다. 그래서 몇 배 빨라진다는 수치는 워크로드를 밝히지 않으면 의미가 약합니다.

배치 크기의 영향. 배치가 매우 커지면 이득이 줍니다. 배치가 크면 decode도 compute-bound로 넘어가서 가중치 읽는 김에 공짜로라는 전제가 약해집니다.

낮은 batch의 latency-sensitive inference에서는 speculative decoding의 이득이 크게 나타날 수 있습니다. native MTP가 별도 full draft model을 요구하지 않는다는 점은 memory 측면의 장점이지만, MTP layer 자체의 연산·KV와 runtime support까지 포함해 측정해야 합니다.


8장. 다른 speculative proposer와의 관계

drafter의 여러 형태. 별도 소형 모델은 가장 단순하지만 분포가 어긋날 수 있고 메모리를 더 씁니다. Medusa 헤드는 본체에 독립 예측 헤드를 붙이는 방식으로 MTP의 병렬 갈래에 가깝습니다. EAGLE은 feature 수준에서 자기회귀적으로 draft하고, MTP 헤드는 학습 목표로 심어둔 헤드를 그대로 씁니다.

EAGLE-3의 방향. feature regression을 버리고 직접 토큰 예측으로 바꿨고, 다층 은닉 상태를 융합해서 쓰며, 자기 출력을 되먹여 학습하는 training-time test를 넣었습니다.

최근 serving runtime은 native MTP, EAGLE 계열, 별도 draft model, n-gram/suffix 같은 proposer를 같은 speculative decoding 인터페이스 아래에서 선택할 수 있게 확장하고 있습니다. vLLM도 MTP를 지원하는 모델에서는 native MTP capability를 speculative proposer로 사용할 수 있게 하고, 다른 proposer와 별도의 선택지로 다룹니다.

여기서 중요한 것은 소스 코드의 내부 타입 계층이 아니라 target model에 어떤 proposer가 실제로 지원되는지와 그 조합이 lossless verification 경로를 타는지입니다. 내부 enum이나 지원 모델 목록은 릴리스마다 바뀌므로 고정된 개수나 포함 관계를 개념 설명의 근거로 삼지 않습니다. llama.cpp와 SGLang도 speculative 방식이 계속 추가되는 만큼, 실제 배포에서는 해당 버전의 CLI/API와 model metadata를 확인합니다.


9장. native MTP를 speculator로 다시 학습하는 흐름

MTP는 학습 효율과 성능에서 이득이 확실한데 추론 가속 잠재력은 아직 덜 파헤쳐졌습니다. 구체적으로는 MTP를 학습할 때의 패턴과 추론에서 실제로 쓰이는 패턴이 어긋나 있습니다.

접근. FastMTP 논문의 저자 보고입니다. 먼저 MTP 학습을 추론 패턴에 정렬합니다. 위치 공유 가중치를 쓰는 단일 MTP 헤드를 자기증류 데이터로 파인튜닝해, 연속된 미래 토큰들 사이의 의존성을 포착해 여러 번의 재귀적 draft 단계에서도 수용률을 유지합니다. 그리고 언어 인지 동적 어휘 압축을 MTP 헤드에 넣어 draft 과정의 연산 부담을 줄입니다.

결과.

항목 저자 보고
벤치마크 7종
평균 가속 2.03배 (표준 next-token 대비)
출력 품질 무손실
vanilla MTP 대비 82% 우위
학습 비용 경량 파인튜닝만

핵심은 단일 헤드를 재귀적으로 여러 번 쓴다는 것입니다. 헤드를 깊이만큼 늘리는 대신 하나를 반복 호출해도 수용률이 유지되게 학습시킵니다. 앞서 본 깊이를 늘리면 수용률이 급락한다는 한계를 정면으로 공략한 연구입니다.


10장. model support와 end-to-end latency를 먼저 잰다

vLLM은 MTP를 speculative decoding method로 지원하지만 지원 model family와 설정 키는 빠르게 바뀝니다. 따라서 특정 시점의 내부 MTPModelTypes 목록을 문서에 고정하기보다 현재 runtime 문서, 모델 config와 native MTP layer 지원 여부를 확인합니다.

MTP 계열 모듈이 여러 최신 모델에 들어가면서 특정 논문 하나의 트릭을 넘어 serving primitive로 활용되는 사례가 늘었습니다. 그렇다고 모든 모델이 같은 head 수나 같은 speculative depth를 갖는 것은 아니며, runtime이 해당 architecture를 지원해야 실제 가속에 사용할 수 있습니다.

vLLM. speculative 설정의 주요 필드는 투기 방식을 정하는 method, 한 번에 추측할 토큰 수인 num_speculative_tokens, draft 모델 경로인 model, draft 쪽 텐서 병렬도인 draft_tensor_parallel_size 입니다.

알아둘 제약이 하나 있습니다. num_speculative_tokens 는 모델의 n_predict 로 나누어떨어져야 하고, 소스 주석이 MTP 모듈 재사용을 위한 정합성이라고 이유를 밝힙니다. 1-depth MTP 모듈을 가진 모델에서 3개를 추측하려면 그 모듈을 재귀적으로 3번 호출하므로 배수 관계가 성립해야 합니다.

SGLang. --speculative-algorithm 으로 지정하고 내장 알고리즘은 EAGLE, EAGLE3, NEXTN, STANDALONE, NGRAM, DFLASH, DSPARK입니다. MTP에 해당하는 것이 NEXTN이고 소스 주석이 이를 명시합니다. SGLang에서 MTP를 켤 때 MTP라는 이름을 찾으면 안 나오고 NEXTN입니다.

llama.cpp. MTP 헤드를 사이드카 파일로 다룹니다. 여기서 오해하기 쉬운데 파일이 아예 필요 없는 것이 아닙니다. draft 저장소가 함께 배포하는 작은 사이드카 파일이 MTP 헤드이고, 풀사이즈 draft 모델 대신 이 작은 헤드만 받습니다.

common/arg.cpp 의 주석이 동작을 그대로 설명합니다.

// infer the speculative type from the sidecar shipped by the draft repo
// when none is requested

// when a sidecar type is requested,
// the draft repo resolves to its sidecar instead of a full model

// only use the discovered MTP head when no draft path is set yet

정리하면 투기 방식을 지정 안 하면 draft 저장소에 딸린 사이드카를 보고 방식을 추론하고, 사이드카가 여럿이면 MTP, DSpark, DFlash, EAGLE3 순의 우선순위가 있으며, -md 로 draft 파일을 명시하면 사이드카 자동 해석은 꺼집니다.

온디바이스에서 의미가 큰 이유가 여기 있습니다. 풀사이즈 draft 모델을 하나 더 올리는 대신 작은 헤드 파일만 얹으면 됩니다.

켜기 전 확인할 것.

① 워크로드가 코드나 정형 텍스트인가
   창작 위주면 이득이 작다

② 배치가 작은가
   대배치 서빙이면 이득이 준다

③ temperature 가 높은가
   높으면 수용률이 떨어진다

④ 실측 수용률을 재봤나
   "1.8 배" 는 남의 워크로드 숫자다

남의 벤치 수치를 그대로 기대하지 말고 자기 트래픽에서 수용률을 재는 것이 먼저입니다.


11장. auxiliary objective에서 serving primitive로

시기 발전
2024-01 Medusa. 추가 디코딩 헤드 + 트리 어텐션
2024-01 EAGLE. feature 수준 자기회귀 draft
2024-04 Meta MTP. 공유 trunk + n개 병렬 독립 헤드. 학습 신호 밀도 관점
2024-12 DeepSeek-V3 MTP. 순차 인과 사슬 모듈. 추론 drafter 재활용
2025-03 EAGLE-3. feature regression 제거 + 다층 융합 + training-time test
2025-09 FastMTP. 단일 헤드 재귀 호출로 깊은 draft 공략
2025~2026 native MTP를 지원하는 모델이 늘고 vLLM이 MTP·EAGLE·DFlash 등 여러 speculative method를 함께 지원

흐름을 한 줄로 하면 학습 기법으로 출발해서 추론 기법과 만나고 결국 하나의 계열로 합쳐졌습니다.


12장. MTP를 학습 목표와 추론 도구로 나눠 읽는다

MTP는 다음 토큰 하나만 예측하는 학습 목표에 여러 미래 위치의 예측 신호를 추가합니다. 구현에 따라 병렬 head나 순차 MTP module을 쓰며, 일부 architecture에서는 이 모듈을 추론 시 speculative proposer로 재사용합니다.

원 논문의 강조점은 품질입니다. 추론 가속은 추가로 재활용 가능한 덤입니다.

acceptance는 중요한 지표지만 실제 속도는 proposer cost, verification cost, batch/QPS와 speculative depth가 함께 결정합니다.

MTP training objective와 speculative decoding은 같은 층위의 개념이 아닙니다. native MTP layer를 proposer로 쓸 때는 verification을 포함한 lossless speculative algorithm이 target distribution을 지키는 역할을 합니다. acceptance 특성은 모델·도메인·sampling 설정에 따라 달라집니다.

MTP는 미래 token 예측을 학습 신호로 추가하고, 일부 architecture에서는 그 예측 모듈을 추론 시 proposer로 재사용할 수 있게 만든 기법으로 이해하는 편이 정확합니다.


용어 정리

용어 한 줄 뜻
MTP (다중 토큰 예측) 한 위치에서 여러 미래 토큰 예측을 학습 신호로 사용하는 기법. architecture에 따라 병렬 head나 순차 module을 사용
trunk (본체) 여러 출력 헤드가 공유하는 모델 몸통
헤드 (head) 은닉 상태를 어휘 분포로 바꾸는 출력층
drafter (초안기) Speculative Decoding에서 추측 토큰을 내는 쪽
target 추측을 검증하고 교정하는 본체 모델
Speculative Decoding 추측하고 병렬 검증해 생성을 가속하는 추론 알고리즘
무손실 (lossless) 가속해도 최종 출력 분포가 본체 단독 생성과 같음
수용률 drafter의 추측이 채택되는 비율
acceptance length 한 번의 검증으로 평균 확정되는 토큰 수
병렬 독립 헤드 여러 헤드가 서로를 안 보고 동시에 예측하는 Meta식 구조
순차 인과 사슬 앞 모듈의 출력을 다음 모듈이 입력으로 받는 DeepSeek식 구조
self-speculative 별도 모델 없이 자기 헤드나 층으로 draft를 만드는 방식
memory-bound 연산보다 메모리 읽기가 병목인 상태. decode가 여기 해당
n_predict MTP 모듈이 한 번에 예측하도록 학습된 추가 토큰 수
NEXTN SGLang에서 MTP 방식을 가리키는 알고리즘 이름
자기증류 (self-distillation) 모델 자신의 출력을 학습 데이터로 되먹이는 방법

참고자료

'Inference > Optimization' 카테고리의 다른 글

Speculative Decoding  (0) 2025.11.19
FlashAttention  (0) 2024.08.27
KV Cache 란 ?  (0) 2024.07.02
prefill vs decode  (0) 2024.03.11

댓글