运行MTP模型的llama.cpp Docker镜像

Reddit r/LocalLLaMA 工具

摘要

提供用于通过 llama.cpp 运行 MTP 模型的 Docker 镜像,包括量化比较和使用说明。

这是对上篇文章的跟进:https://www.reddit.com/r/LocalLLaMA/comments/1t5ageq/ MTP拉取请求和llama.cpp主分支有了许多改进,例如图像支持以及各种错误修复。我最近为本地机器做了新构建,但保持指南更新是个问题,所以我构建了Docker镜像以便更轻松地运行它们。如果你已经在使用llama.cpp的Docker镜像,那么切换到这些镜像会很简单,直到官方版本支持MTP。以下是可选的版本: ``` havenoammo/llama:cuda13-server havenoammo/llama:cuda12-server havenoammo/llama:vulkan-server havenoammo/llama:intel-server havenoammo/llama:rocm-server ``` 我还没能全部测试,因为目前只运行cuda13版本。欢迎测试并看看是否适用于你的硬件。 另外,Unsloth为Qwen 3.6发布了MTP模型,这让我之前嫁接的模型过时了。如果你错过了,可以在这里找到它们: * https://huggingface.co/unsloth/Qwen3.6-27B-MTP-GGUF * https://huggingface.co/unsloth/Qwen3.6-35B-A3B-MTP-GGUF 我相信他们对部分MTP层进行了量化。我则保持了Q8量化以提高预测精度。MTP层使用更高的量化可能使它们更精确,从而以更多VRAM消耗为代价带来更高速度。我会暂时保留我的版本,直到完成一些基准测试并确认它们完全过时。 *快速编辑:* 他们确实对MTP层使用了较低的量化级别。以下是对比: | 张量 | havenoammo (UD XL + Q8_0 MTP) | Unsloth (UD XL) | |---|---|---| | `blk.64.attn_k.weight` | **Q8_0** | Q3_K | | `blk.64.attn_k_norm.weight` | F32 | F32 | | `blk.64.attn_norm.weight` | F32 | F32 | | `blk.64.attn_output.weight` | **Q8_0** | Q4_K | | `blk.64.attn_q.weight` | **Q8_0** | Q3_K | | `blk.64.attn_q_norm.weight` | F32 | F32 | | `blk.64.attn_v.weight` | **Q8_0** | Q5_K | | `blk.64.ffn_down.weight` | **Q8_0** | Q4_K | | `blk.64.ffn_gate.weight` | **Q8_0** | Q3_K | | `blk.64.ffn_up.weight` | **Q8_0** | Q3_K | | `blk.64.nextn.eh_proj.weight` | Q8_0 | Q8_0 | | `blk.64.nextn.enorm.weight` | F32 | F32 | | `blk.64.nextn.hnorm.weight` | F32 | F32 | | `blk.64.nextn.shared_head_norm.weight` | F32 | F32 | | `blk.64.post_attention_norm.weight` | F32 | F32 | | MTP层大小 | 430.41 MB | 222.33 MB | 我会做一些基准测试,看看量化是否对多令牌预测的精度/速度有影响。在此之前,如果你有足够的VRAM,可以随意测试我的版本。 * https://huggingface.co/havenoammo/Qwen3.6-35B-A3B-MTP-GGUF * https://huggingface.co/havenoammo/Qwen3.6-27B-MTP-UD-GGUF 最后,以下是我使用它的方式: ```bash docker run --gpus all --rm \ -p 8080:8080 \ -v ./models:/models \ havenoammo/llama:cuda13-server \ -m /models/Qwen3.6-27B-MTP-UD-Q8_K_XL.gguf \ --port 8080 \ --host 0.0.0.0 \ -n -1 \ --parallel 1 \ --ctx-size 262144 \ --fit-target 844 \ --mmap \ -ngl -1 \ --flash-attn on \ --metrics \ --temp 1.0 \ --min-p 0.0 \ --top-p 0.95 \ --top-k 20 \ --jinja \ --chat-template-kwargs '{"preserve_thinking":true}' \ --ubatch-size 512 \ --batch-size 2048 \ --cache-type-k q8_0 \ --cache-type-v q8_0 \ --spec-type mtp \ --spec-draft-n-max 3 ``` 请根据需要调整。对MTP来说最重要的参数是`--spec-type mtp`和`--spec-draft-n-max 3`。
查看原文

相似文章