이것은 이전 게시물의 후속 글입니다: https://www.reddit.com/r/LocalLLaMA/comments/1t5ageq/
이미지 지원 및 다양한 버그 수정을 포함하여 MTP Pull Request (PR)와 llama.cpp 메인 브랜치에 많은 개선 사항이 있었습니다. 최근 제 로컬 머신을 위해 새로운 빌드를 만들었지만, 가이드를 최신 상태로 유지하는 것이 문제여서 실행을 더 쉽게 만들기 위해 Docker 이미지를 빌드했습니다. 이미 llama.cpp Docker 이미지를 사용 중이라면, 공식 빌드가 MTP를 지원할 때까지 전환하는 과정이 간단할 것입니다.
여기서 원하는 버전을 선택하세요:
havenoammo/llama:cuda13-server
havenoammo/llama:cuda12-server
havenoammo/llama:vulkan-server
...
저는 현재 cuda13만 실행하고 있기 때문에 모든 이미지를 테스트해 볼 수는 없었습니다. 자유롭게 테스트해 보시고 귀하의 하드웨어에서 작동하는지 확인해 보세요.
또한, Unsloth에서 Qwen 3.6용 MTP 모델을 출시하여 제가 이전에 만든 접합(grafted) 모델들이 쓸모없게 되었습니다. 혹시 놓치셨다면 여기서 찾을 수 있습니다:
2026년 5월 15일 수정: Docker 이미지를 업데이트했습니다. 새 버전에서는 draft engine의 이름을 mtp에서 draft-mtp로 변경했습니다. 따라서 --spec-type draft-mtp를 사용하세요.
2026년 5월 14일 수정: 벤치마크를 실행한 결과 제가 만든 접합 모델들은 완전히 구식이 되었습니다. Q8 MTP 레이어에서 발생하는 추가 VRAM은 미미한 정확도 향상만을 제공하는 반면, Unsloth의 양자화(quants) 모델들이 평균적으로 약간 더 빠르다는 것이 밝혀졌습니다. 그럴 가치가 없습니다! 그러니 그냥 Unsloth 모델을 사용하세요.
양자화(Quant) 비교:
| Quant | Haveno t/s | Unsloth t/s | Haveno MTP% | Unsloth MTP% |
|---|
| q4 | 94.47 | 94.40 | 97.49 | 97.39 |
| ... | | | | |
전체 평균:
| Source | Avg t/s | Avg MTP% |
|---|
| havenoammo | 88.85 | 97.48 |
| unsloth | 89.14 | 97.38 |
따라서 아래의 모든 내용은 무시해 주세요.
그들은 MTP 레이어(layers)를 더 낮은 양자화 레벨(quantization levels)로 양자화합니다. 저는 더 나은 예측을 위해 제 모델을 Q8 양자화로 유지했습니다. MTP 레이어에 더 높은 양자화를 적용하면 더 정밀해질 수 있으며, 이는 VRAM 사용량을 대가로 더 빠른 속도를 제공할 가능성이 있습니다. 저는 벤치마크(benchmarks)를 완료하고 제 버전들이 완전히 구식이 되었다고 확신할 때까지 당분간은 제 버전들을 유지할 것입니다. 다음은 비교 내용입니다:
| Tensor | havenoammo (UD XL + Q8_0 MTP) | Unsloth (UD XL) |
|---|
blk.64.attn_k.weight | Q8_0 | Q3_K |
| ... | | |
양자화가 다중 토큰 예측(multi-token prediction)의 정밀도나 속도 저하를 유발하는지 확인하기 위해 벤치마크를 진행할 예정입니다. 그때까지 VRAM 여유가 있다면 제 릴리스(releases)를 자유롭게 테스트해 보세요.
- Unsloth UD + Q8 Grafted MTP
마지막으로, 제가 사용하는 방법은 다음과 같습니다:
docker run --gpus all --rm \
-p 8080:8080 \
-v ./models:/models \
...
필요에 따라 조정하십시오. MTP에서 가장 중요한 것은 --spec-type mtp와 --spec-draft-n-max 3입니다.