atomic-llama-cpp-turboquant 포크를 통해 공식 MTP 어시스턴트 헤드(assistant head) + turbo3 KV-cache 양자화(quant)를 적용하여 Gemma 4 31B (Q4_K_M)를 실행했습니다. 구현 공로: TheTom (원래의 TurboQuant) 및 AtomicBot-ai (포크의 Gemma 4 MTP 작업) — 저는 측정만 수행했습니다. 이것이 유용한 이유: 해당 포크 자체의 벤치마크는 모두 M4 Max에서 수행되었습니다. 이 결과는 CUDA 환경에서도 동일한 설정입니다 — RTX PRO 4500 Blackwell, 32 GB, 단일 스트림(single stream), 262K 컨텍스트. 처리량(Throughput): 작업 부하에 따라 34 → 41–49 t/s. 그들이 주장한 +30–50%와 일치하며, 따라서 NVIDIA에서도 속도 향상이 재현됩니다. 제가 어디에서도 측정된 것을 보지 못한 부분은 — 샘플러가 MTP 수락률(acceptance)에 미치는 영향입니다:
| 설정 | 평균 수락률 | t/s 범위 |
|---|
| 기본값 (rep-pen 1.05) | 0.74 | 33–47 |
- temp 0.9, top-p 0.95 | 0.76 | 36–48
- DRY (mult 0.8) | 0.62 | 30–41
DRY는 5가지 모든 작업 부하에 걸쳐 처리량의 5–23%를 소모하며, 5개 중 2개(설명 산문, 창의적 글쓰기)에서는 MTP를 사용하지 않는 기준치(baseline)보다 낮게 나타납니다 — 즉, 초안 작성(drafting) 오버헤드는 지불하면서 이득은 잃게 됩니다. 반면, 온도(Temperature)는 기본적으로 비용이 들지 않습니다. 돌이켜보면 타당한 결과입니다: DRY는 최근 반복된 토큰에 페널티를 부여하는데, 이는 초안이 수락되기 쉽게 만드는 패턴(JSON 키, 반복되는 문구)과 정확히 일치하기 때문입니다. 비용의 일부는 DRY 자체의 토큰당 오버헤드이기도 합니다: 수락률이 높게 유지되는 경우에도 몇 t/s를 손해 봅니다.
재미있는 부수적 발견: JSON 생성은 temp 0.9에서도 완전히 결정론적(deterministic)이었습니다 — 토큰 단위로 동일한 초안 횟수(331/359)를 기록했습니다. 또한 진행 과정에서 혼란스러운 로그 메시지(