모델

멀티 토큰 예측

Multi-Token Prediction (MTP)

언어 모델에 작은 예측 모듈을 덧붙여 다음 토큰 하나가 아니라 그 뒤의 토큰 여러 개까지 함께 예측하게 만드는 기법이다. 학습할 때는 같은 문맥에서 정답 신호를 더 주는 보조 과제로 쓰고, 추론할 때는 초안을 미리 써서 생성 속도를 높이는 데 쓴다.

구분다음 토큰 예측멀티 토큰 예측
한 위치에서 맞히는 것다음 1개다음 여러 개
학습 때 효과기본 신호만같은 문맥에서 정답 신호가 여러 개
추론 때 효과한 번에 1토큰여러 토큰을 미리 써 보고 검증

추론에서는 '초안 작성자' 역할

MTP 모듈이 다음 몇 토큰을 미리 써 두면, 본 모델이 한 번의 계산으로 그 초안을 검사한다. 맞으면 여러 토큰을 한꺼번에 얻고, 틀리면 틀린 지점부터 다시 만든다. 결과는 늘 본 모델이 정한 대로 나오기 때문에 추측이 빗나가도 품질은 그대로이고, 속도만 평소 수준으로 돌아온다. 구조로 보면 추측적 디코딩의 한 형태다.

로컬 모델은 옵션 하나로 빨라진다

MTP 모듈이나 전용 드래프터를 함께 배포하는 모델이 늘었다. vLLM 계열에서는 num_speculative_tokens로 한 번에 미리 쓸 토큰 수를 정한다. 젬마 4용 MTP 드래프터는 LiteRT-LM, MLX, Hugging Face Transformers, vLLM에서 쓸 수 있다. llama.cpp와 LM Studio에서도 이 기능을 켜서 로컬 생성 속도를 높이는 방법이 나와 있다.

애플 방식 · 코드/수학약 5배
젬마 4 드래프터최대 3배
애플 방식 · 일반 대화약 2.5배

각 개발사가 발표한 속도 향상 수치다. 애플 방식은 이미 학습된 모델에 파인튜닝으로 MTP를 덧붙인다.

직접 학습할 때는 작게 시작한다

사전학습에 MTP를 넣으면 전체 손실은 '다음 토큰 손실 + 가중치 × MTP 손실 평균'이 된다. 가중치를 너무 키우면 본래 목표가 흐려지므로 작은 값으로 둔다.

설정 (Megatron 기준)권장값설명
mtp_num_layers1부터2는 100B 이상 모델에서 메모리가 허락할 때
mtp_loss_scaling_factor0.1보통 0.05~0.2 범위

속도는 내용에 따라 다르다

뻔하게 이어지는 문장이나 코드에서는 초안이 잘 맞아 빨라지지만, 예측이 어려운 대목에서는 초안이 자주 버려진다. 예측 깊이를 늘리면 학습 메모리와 시간도 그만큼 늘어난다. 원 논문에서 4토큰이 가장 좋았던 결과도 코드 실험에서 나온 것이라 정답처럼 쓰면 안 된다. 내 작업으로 직접 속도를 재 보고 미리 쓸 토큰 수를 정하는 게 좋다.

주로 로컬 실행과 추론 서버의 속도를 올리는 데 쓴다

가장 흔한 건 이미 배포된 MTP 드래프터를 켜서 생성 속도를 올리는 방식이다. 직접 모델을 학습하는 경우가 아니면, 보통은 옵션을 켜고 미리 쓸 토큰 수만 조절한다.

어디서어떻게 쓰나
로컬 LLM 실행llama.cpp·LM Studio·MLX에서 드래프터를 켜서 코드 작성·긴 답변을 더 빨리 받는다
추론 서버vLLM에서 num_speculative_tokens를 바꿔 가며 내 요청 유형에 맞는 값을 찾아 응답 지연을 줄인다
모델 사전학습MTP 손실을 작은 가중치로 더해 학습 신호를 늘리고, 학습된 모듈은 추론 때 초안 작성자로 다시 쓴다
#MTP#추론 가속#사전학습#추측적 디코딩
참고 자료
관련 영상
← AI Wiki에서 더 보기
updated at 2026-10-20