MTP는 결국 수락률 싸움이다
MTP is all about acceptance rate
핵심 요약
MTP 기술이 코드 생성에는 효과적이지만, JSON 출력이나 긴 글쓰기에서는 오히려 성능 저하를 유발한다는 실험 결과.
- MTP 성능 차이 — 코드 생성 시 1.5배 속도 향상을 보이나 JSON 출력 시 0.5배로 오히려 느려짐.
- 수락률의 중요성 — 토큰 수락률이 50% 미만으로 떨어지면 오버헤드로 인해 MTP의 이점이 사라짐.
- 하드웨어 제약 — M4 Max 환경에서 MoE 모델의 복잡성으로 인해 MTP 효율이 떨어질 수 있음.
- 구조화된 출력 — JSON 스키마 제약이 없는 환경에서 MTP를 사용하는 것이 성능상 유리함.
MTP(Multi-Token Prediction) 관련 내용에 매우 흥미가 생겼는데, 특히 Gemma4가 제 '주력 모델'이 된 이후로는 더 그랬습니다. 최신 mlx-vlm을 가져와서 테스트를 해봤는데 실망스러웠습니다.
| Workload | MTP off | MTP on | Result | Draft accept rate |
|---|---|---|---|---|
| Code generation | 75 tok/s | 114.8 tok/s | 1.53× faster | 66% of slots |
| Long-form prose | 75 tok/s | 71.1 tok/s | 0.95× (wash) | 31% of slots |
| JSON output | 51.3 tok/s | 25.6 tok/s | **0.50× slower** | 8% of slots |
- 코드 생성은 "X를 수행하는 파이썬 함수 몇 개를 작성해줘"와 같은 전형적인 작업이었습니다.
- 긴 글쓰기는 "당나라 시대의 지폐에 관한 800자 에세이를 작성해줘"였습니다.
- JSON 출력은 제가 핵심적으로 사용하는 사례인데, LLM에게 항목 리스트를 주고 규칙에 따라 유사성별로 그룹화한 뒤 구조화된 출력으로 받는 작업입니다.
따라서 로컬 코딩용으로 사용하고 싶다면 MTP는 훌륭합니다. 그렇지 않다면 별로일 수 있습니다. 제 회귀 테스트 결과에 따르면 토큰 수락률이 50% 아래로 떨어지면 오버헤드가 이점을 완전히 상쇄해버리는 것으로 보입니다.
이 모든 테스트는 M4 Max Studio에서 Gemma4-26b-a4b 모델로 진행했습니다.
*해커들을 위한 보너스: Gemma의 JSON 구조 지시 이행 능력은 꽤 훌륭합니다. 구조화된 출력을 사용하면 토큰 생성 속도가 약 20% 정도 저하되는 것을 확인했습니다. 약간 엉성한 JSON을 그대로 받아 런타임에 처리하는 게 더 빠릅니다. 그래서 이 모든 결과는 mlx-vlm이 spec-decode를 지원하지 않는 json_schema를 끈 상태에서 진행되었습니다.


