可在本地快速部署具备视觉、思考及工具使用能力的大模型,支持 OpenAI 和 Anthropic 双 API,实现 2.5 倍生成速度与 262K 上下文,适配多种硬件配置,优化 KV 缓存降低内存占用。【此简介由AI生成】
language:
- en
- zh
- multilingual license: apache-2.0 library_name: llama.cpp tags:
- gguf
- qwen3.6
- qwen3_5
- conversational
- vision
- multimodal
- speculative-decoding
- mtp base_model:
- Qwen/Qwen3.6-27B pipeline_tag: image-text-to-text quantization:
- F16
- Q8_0
- Q6_K
- Q5_K_M
- Q4_K_M
- IQ4_XS
- IQ3_M
- IQ2_M
具备视觉、思维与工具调用能力的 270 亿参数密集型模型——支持自推测解码,
可配置 KV 缓存(f16 精度优先,q8_0/q4_0 适合更长上下文),修复 Jinja 模板(工具调用与思维链在 C++ 运行时可正常工作),
并提供兼容 OpenAI 和 Anthropic API 的服务端。
一行命令。双 API 支持。无需云端。
警告: 当视觉功能(图像输入)与 MTP 推测解码一同使用时,会导致 llama.cpp 崩溃(PR #22673 缺陷,全平台)。纯文本 MTP 可实现 2.5 倍速度提升。如需使用视觉功能,请启动服务端时不带
--spec-type mtp参数——详见视觉功能章节。
启动服务端
您需要基于 PR #22673 或更新版本构建的 llama.cpp。Homebrew 及稳定版均不支持 MTP GGUF 格式。
构建支持 MTP 的 llama.cpp
git clone --depth 1 https://github.com/ggml-org/llama.cpp.git
cd llama.cpp
git fetch origin pull/22673/head:mtp-pr && git checkout mtp-pr
cmake -B build -DGGML_METAL=ON -DCMAKE_BUILD_TYPE=Release
cmake --build build --target llama-cli llama-server
llama-server -m Qwen3.6-27B-Q5_K_M-mtp.gguf \
--spec-type mtp --spec-draft-n-max 3 \
--cache-type-k q8_0 --cache-type-v q8_0 \
-np 1 -c 262144 --temp 0.7 --top-k 20 -ngl 99 --port 8081
就是这样。一条命令实现三项优化:
| 标志 | 功能说明 | 效果 |
|---|---|---|
--spec-type mtp --spec-draft-n-max 3 |
多令牌预测(模型内置) | 生成速度提升 2.5 倍 |
--cache-type-k q8_0 --cache-type-v q8_0 |
8 位 KV 缓存(替代 16 位) | KV 内存减半,质量损失可忽略不计 |
-c 262144 |
262K 上下文窗口 | 在配备 q8_0 KV 的 48 GB Mac 上实现完整原生上下文 |
根据您的硬件调整 -m、-c 和 --cache-type-k/v 参数 — 详见下方的我应该下载哪个量化版本?表格。
我应该下载哪个量化版本?
在下方找到您的硬件 — 每行提供了最适合的量化版本、KV 缓存类型以及可容纳的最大上下文长度。
Apple Silicon
Qwen3.6-27B 是一个混合模型 — 只有65 层中的 16 层使用 KV 缓存(已验证)。其余 48 层为线性注意力(固定 898 MiB 循环状态)。KV 内存比标准密集型模型少约 4 倍。不支持此特性的运行时(如 vllm)会为所有 65 层分配 KV,导致内存占用显著增加。
以下数值为总内存使用量(模型 + KV 缓存 + 0.9 GB 循环状态)。必须为 macOS 预留 ≥ 8 GB(16 GB Mac 除外)。
| 内存 | 量化版本 | KV 缓存 | 最大上下文 | 总使用量 | 视觉功能 |
|---|---|---|---|---|---|
| 16 GB | IQ2_M |
q8_0 |
42K | 12.0 GB | ✗ |
| 24 GB | IQ3_M |
46K | 16.0 GB | ✗ | |
| 24 GB | IQ3_M |
q8_0 |
91K | 16.0 GB | ✗ |
| 32 GB | Q5_K_M |
74K | 24.0 GB | ✗ | |
| 32 GB | Q5_K_M |
q8_0 |
147K | 24.0 GB | ✗ |
| 32 GB | Q4_K_M |
99K | 24.0 GB | ✓ | |
| 48 GB | Q6_K |
262K | 39.7 GB | ✓ | |
| 48 GB | Q8_0 |
173K | 40.0 GB | ✓ | |
| 48 GB | Q8_0 |
q8_0 |
262K | 37.3 GB | ✓ |
| 64 GB | Q8_0 |
262K | 45.8 GB | ✓ | |
| 96 GB | Q8_0 |
262K | 45.8 GB | ✓ |
NVIDIA GPU
模型内存与 Apple Silicon 相同,另加约 1 GB CUDA 开销。
| 显存 | 量化版本 | KV 缓存 | 最大上下文 | 总显存使用量 | 视觉功能 |
|---|---|---|---|---|---|
| 12 GB | IQ2_M |
q8_0 |
11K | 12.0 GB | ✗ |
| 16 GB | IQ3_M |
30K | 16.0 GB | ✗ | |
| 16 GB | IQ3_M |
q8_0 |
60K | 16.0 GB | ✗ |
| 24 GB | Q4_K_M |
83K | 24.0 GB | ✓ | |
| 24 GB | Q4_K_M |
q8_0 |
167K | 24.0 GB | ✓ |
| 24 GB | Q5_K_M |
58K | 24.0 GB | ✗ | |
| 48 GB | Q6_K |
262K | 40.7 GB | ✓ | |
| 48 GB | Q8_0 |
262K | 46.8 GB | ✓ | |
| 80 GB | Q8_0 |
262K | 46.8 GB | ✓ |
16 GB Mac:
IQ2_M/q8_0 — 42K 纯文本。无视觉功能。24 GB Mac:
IQ3_M— 46K(f16 KV)或 91K(q8_0)。在 32–65K 上下文时支持视觉功能。32 GB Mac:
Q5_K_M— 74K 纯文本(f16 KV),147K(q8_0)。Q4_K_M支持 99K 上下文的视觉功能。48 GB Mac:
Q6_K/f16 KV — 262K 上下文并支持视觉功能。Q8_0/q8_0 KV 可在更高模型质量下实现 262K 上下文。64 GB+ Mac:
Q8_0/f16 KV — 262K 上下文并支持视觉功能。在实际速度下实现最高质量。12 GB GPU:
IQ2_M/q8_0 — 11K。非常有限,无视觉功能。16 GB GPU:
IQ3_M— 30K(f16 KV)或 60K(q8_0)。无视觉功能。24 GB GPU:
Q4_K_M— 83K 上下文并支持视觉功能(f16 KV)。Q5_K_M— 58K 纯文本(f16 KV),116K(q8_0)。48 GB+ GPU:
Q6_K/f16 KV — 262K 上下文并支持视觉功能。Q8_0可获得最高质量。
为获得最佳质量,请将 KV 缓存保留为 f16(表格中对应列为空)。仅当 f16 无法提供足够上下文时才使用 q8_0 KV。q4_0 KV 的上下文不应超过 64K。
视觉功能会为 mmproj 额外增加约 0.9 GB 内存。macOS 需要**≥ 8 GB** 内存供自身使用(16 GB Mac 除外 — 约使用 4 GB)。您可以通过提高有线内存限制来增加可用内存,例如对于 96 GB Mac:sudo sysctl iogpu.wired_limit_mb=90112(88 GB)。NVIDIA 会为 CUDA 预留约 1 GB 内存。
API 使用方法
兼容 OpenAI(/v1/chat/completions)
curl http://localhost:8081/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"qwen","messages":[{"role":"user","content":"Hello"}]}'
可与任何 OpenAI 客户端配合使用 — 只需将其指向 http://localhost:8081/v1 即可。
兼容 Anthropic(/v1/messages)
curl http://localhost:8081/v1/messages \
-H "Content-Type: application/json" \
-d '{"model":"qwen","max_tokens":1024,"messages":[{"role":"user","content":"Hello"}]}'
可与任何 Anthropic 客户端配合使用——服务器原生支持 Messages API,包括流式传输、工具调用和视觉功能。
Claude 代码
ANTHROPIC_BASE_URL=http://127.0.0.1:8081 claude
Claude Code 使用 Anthropic Messages API。只需设置这个环境变量,它就会与您本地的 Qwen3.6-27B 对话,而非云端。
工具使用(两个 API 均适用)
curl http://localhost:8081/v1/messages \
-H "Content-Type: application/json" \
-d '{
"model": "qwen",
"max_tokens": 1024,
"tools": [{
"name": "get_weather",
"description": "Get current weather for a location",
"input_schema": {
"type": "object",
"properties": {"location": {"type": "string"}},
"required": ["location"]
}
}],
"messages": [{"role": "user", "content": "What is the weather in Paris?"}]
}'
愿景
MTP + 视觉功能在 PR #22673 上崩溃(所有平台,已确认的 bug)。对于图像输入,请不要使用
--spec-type mtp启动服务器:llama-server -m Qwen3.6-27B-Q5_K_M-mtp.gguf \ --mmproj mmproj-Qwen3.6-27B-f16.gguf \ --cache-type-k q8_0 --cache-type-v q8_0 \ -c 262144 --temp 0.7 --top-k 20 -ngl 99 --port 8081
curl http://localhost:8081/v1/messages \
-H "Content-Type: application/json" \
-d '{
"model": "qwen",
"max_tokens": 1024,
"messages": [{"role": "user", "content": [
{"type": "image", "source": {"type": "base64", "media_type": "image/jpeg", "data": "'$(base64 < photo.jpg)'"}},
{"type": "text", "text": "Describe this image"}
]}]
}'
直接命令行界面使用
# Text generation
llama-cli -m Qwen3.6-27B-Q5_K_M-mtp.gguf \
--spec-type mtp --spec-draft-n-max 3 \
--cache-type-k q8_0 --cache-type-v q8_0 \
-np 1 -c 4096 -n 2048 --temp 0.7 -ngl 99 \
-p "Your prompt here"
# Vision (MTP does not work with images — omit --spec-type mtp)
llama-cli -m Qwen3.6-27B-Q5_K_M-mtp.gguf \
--mmproj mmproj-Qwen3.6-27B-f16.gguf \
--cache-type-k q8_0 --cache-type-v q8_0 \
-c 4096 -n 2048 --temp 0.7 -ngl 99 \
--image photo.jpg \
-p "Describe this image"
KV 缓存选项
--cache-type-k 和 --cache-type-v 标志用于控制 KV 缓存精度。精度越低,占用内存越少,相同硬件可支持的上下文越长。
| 类型 | 每值位数 | KV 大小(80K 上下文) | 质量 | 速度 | 使用场景 |
|---|---|---|---|---|---|
f16 |
16 | 5.3 GB | 完整 | 基准 | 最佳质量——在内存允许时使用 |
q8_0 |
8 | 2.8 GB | 损失可忽略 | 比 f16 更快 | 当 f16 KV 无法提供足够上下文时 |
q4_0 |
4 | 1.5 GB | 轻微损失 | 略慢 | 内存有限时最大化上下文(仅支持 ≤64K) |
建议:保持 KV 为 f16 以获得最佳质量。当 f16 无法提供足够上下文时,使用 q8_0。仅在内存紧张时保留 q4_0 使用,且上下文最多为 64K。
对硬件要求的影响(Q5_K_M,80K 上下文):
| KV 类型 | 模型 + 循环 + KV | 硬件 |
|---|---|---|
| f16 | 24 GB | 48 GB Mac |
| q8_0 | 22 GB | 32 GB Mac |
推测解码模式
MTP(推荐 — 快 2.5 倍)
该模型通过自身的 MTP 头在每步预测额外 5 个 token,然后通过一次验证完成。无需额外模型。
--spec-type mtp --spec-draft-n-max 3 -np 1
MTP 当前需要使用 -np 1(单序列模式)。如果不使用该参数,你将收到以下提示:MTP currently supports only n_parallel=1。
调整 --spec-draft-n-max:3 是通用场景下的最佳值(接受率为 83%)。1–2 的值更为保守;4–5 的值会在被拒绝的 token 上浪费计算资源。
草稿模型(速度提升约 2.3 倍)
搭配使用更小的、共享相同分词器的 Qwen 3.5/3.6 模型。
llama-cli -m Qwen3.6-27B-Q5_K_M-mtp.gguf \
-md Qwen3.5-0.8B-Q8_0.gguf \
--spec-draft-n-max 10 -ngl 99 -ngld 99 \
-c 4096 -n 2048 --temp 0.7 \
-p "Your prompt"
ngram-mod(无需额外模型,有利于重复提示)
使用来自先前提示的缓存 n-gram。
--spec-type ngram-mod \
--spec-ngram-mod-n-match 24 \
--spec-ngram-mod-n-min 48 \
--spec-ngram-mod-n-max 64 \
--repeat-penalty 1.0
下载
| 文件 | 大小 | 最低配置(4K 上下文) | 推荐配置(80K 上下文) | 最高配置(262K 上下文) |
|---|---|---|---|---|
Qwen3.6-27B-F16-mtp.gguf |
51 GB | 64 GB Mac · 80 GB GPU | 64 GB Mac · 80 GB GPU | 96 GB Mac · 80 GB GPU |
Qwen3.6-27B-Q8_0-mtp.gguf |
27 GB | 48 GB Mac · 48 GB GPU | 48 GB Mac · 48 GB GPU | 48 GB Mac · 48 GB GPU |
Qwen3.6-27B-Q6_K-mtp.gguf |
21 GB | 32 GB Mac · 24 GB GPU | 48 GB Mac · 48 GB GPU | 48 GB Mac · 48 GB GPU |
Qwen3.6-27B-Q5_K_M-mtp.gguf |
18 GB | 32 GB Mac · 24 GB GPU | 32 GB Mac · 24 GB GPU | 48 GB Mac · 48 GB GPU |
Qwen3.6-27B-Q4_K_M-mtp.gguf |
16 GB | 32 GB Mac · 24 GB GPU | 32 GB Mac · 24 GB GPU | 48 GB Mac · 48 GB GPU |
Qwen3.6-27B-IQ4_XS-mtp.gguf |
14 GB | 24 GB Mac · 24 GB GPU | 32 GB Mac · 24 GB GPU | 32 GB Mac · 48 GB GPU |
Qwen3.6-27B-IQ3_M-mtp.gguf |
12 GB | 24 GB Mac · 16 GB GPU | 24 GB Mac · 24 GB GPU | 32 GB Mac · 24 GB GPU |
Qwen3.6-27B-IQ2_M-mtp.gguf |
10 GB | 16 GB Mac · 16 GB GPU | 24 GB Mac · 16 GB GPU | 32 GB Mac · 24 GB GPU |
mmproj-Qwen3.6-27B-f16.gguf |
885 MB | 视觉编码器(可选,任何层级) | — | — |
所有层级均包含 MTP 头。F16 和 Q8_0 为直接转换版本;其他所有层级均基于 Q8_0 并使用重要性矩阵进行量化。Q5_K_M 是性价比之选——若内存紧张,可使用 Q4_K_M;若追求最高质量,可选择 Q8_0。F16 版本可供实验使用,但速度明显慢于 Q8_0。GPU 指 NVIDIA 显卡(RTX 3060 = 12 GB,RTX 3090/4090 = 24 GB,A6000 = 48 GB,A100 = 80 GB)。
硬件数据假设“最低配置”(4K)使用 f16 KV 缓存,“推荐配置”(80K)和“最高配置”(262K)使用 q8_0 KV 缓存。若要在较低配置硬件上达到推荐或最大上下文,可添加参数 --cache-type-k q8_0 --cache-type-v q8_0。
内存要求
基于 Apple Silicon(统一内存)的近似显存需求,以 Q5_K_M 为参考。包含 0.9 GB 循环状态(固定大小,不随上下文长度变化)。65 层中仅 16 层使用 KV 缓存,其余 48 层使用线性注意力。
| 上下文 | 模型 | KV(f16) | KV(q8_0) | 总计(f16) | 总计(q8_0) | 最低 Mac 配置 |
|---|---|---|---|---|---|---|
| 4K | 18 GB | 0.3 GB | 0.1 GB | 19 GB | 19 GB | 32 GB |
| 8K | 18 GB | 0.5 GB | 0.3 GB | 19 GB | 19 GB | 32 GB |
| 32K | 18 GB | 2.1 GB | 1.0 GB | 20 GB | 20 GB | 32 GB |
| 64K | 18 GB | 4.1 GB | 2.1 GB | 21 GB | 21 GB | 32 GB |
| 80K(推荐) | 18 GB | 5.2 GB | 2.6 GB | 22 GB | 22 GB | 32 GB |
| 128K | 18 GB | 8.3 GB | 4.1 GB | 25 GB | 23 GB | 32 GB |
| 262K(原生最大) | 18 GB | 17.0 GB | 8.5 GB | 34 GB | 27 GB | 48 GB |
“总计”= 模型 + 循环状态 + KV 缓存。macOS 需至少 8 GB(16 GB Mac 除外)。若启用视觉功能:需额外添加 0.9 GB 用于 mmproj。
所有量化层级的内存需求(4K 上下文,q8_0 KV)
| 量化版本 | 模型 | KV + 循环状态 | 总计 | 最低 Mac 配置 |
|---|---|---|---|---|
| Q8_0 | 27 GB | 1.0 GB | 28 GB | 48 GB |
| Q6_K | 21 GB | 1.0 GB | 22 GB | 32 GB |
| Q5_K_M | 18 GB | 1.0 GB | 19 GB | 32 GB |
| Q4_K_M | 16 GB | 1.0 GB | 17 GB | 32 GB |
| IQ4_XS | 14 GB | 1.0 GB | 15 GB | 24 GB |
| IQ3_M | 12 GB | 1.0 GB | 13 GB | 24 GB |
| IQ2_M | 10 GB | 1.0 GB | 11 GB | 16 GB |
系统提示词
第一行必须是:
You are Qwen, created by Alibaba Cloud. You are a helpful assistant.
没有它,模型的表现会不佳。在该行之后附加任何内容。
思考切换
在任何消息中加入 <|think_on|> 或 <|think_off|> 即可切换思考模式。模板会剥离该标签,因此模型永远不会看到它。
System: You are a coding assistant. <|think_off|>
User: What's 2+2?
快速回答,无需内部推理。
System: You are a coding assistant. <|think_on|>
User: Implement a red-black tree in Rust.
模型会逐步思考,然后给出答案。
采样
来自Qwen官方作者。为思考模式预留128K+上下文。
| 模式 | temp | top_p | top_k | repeat_penalty |
|---|---|---|---|---|
| 思考(编码) | 0.6 | 0.95 | 20 | 1.0 |
| 思考(通用) | 1.0 | 0.95 | 20 | 1.0 |
| 非思考(通用) | 0.7 | 0.8 | 20 | 1.0 |
兼容性
| 运行时 | 状态 | 原因 |
|---|---|---|
| llama.cpp(PR #22673+) | 完全可用 | 这是目标运行时 |
| llama.cpp(稳定版/ homebrew) | 无法加载 | missing tensor — MTP头未被识别 |
| LM Studio | 无法加载 | 相同问题 — 捆绑的llama.cpp拒绝MTP GGUF文件 |
| Ollama | 无法加载 | 暂不支持推测解码 |
| koboldcpp | 未知 | 取决于捆绑的llama.cpp版本 |
LM Studio用户: 请改用 MLX 8-bit 或 MLX 4-bit — 完整的视觉+工具+思考能力,无MTP。
聊天模板修复
捆绑的Jinja模板修复了官方Qwen 3.6模板中的几个bug:
- C++引擎上工具调用崩溃。 官方模板使用Python的
|items过滤器和|safe,这些在C++ Jinja运行时(llama.cpp、LM Studio)中不存在。此模板使用直接字典键查找。 developer角色崩溃。 现代API发送message.role == "developer"。官方模板会抛出异常。此模板将其映射为system。- 空
preserve_thinking垃圾信息。 官方模板在每个过往对话轮次都包裹空的<think/>块,浪费上下文 tokens。此模板仅在有实际内容时才会生成思考块。 </thinking>幻觉处理。 模型有时会生成</thinking>而非预期的闭合标签。两种情况均能被优雅处理。
独立模板仓库请参见 Qwen-Fixed-Chat-Templates。
架构详情
| 规格 | 值 |
|---|---|
| 总参数 | 27.8B(密集型,全部激活) |
| 层数 | 64层(3层线性注意力 + 1层全注意力,重复16次) + 1层MTP层 |
| 注意力 | 24个Q头,4个KV头(GQA),头维度256 |
| 线性注意力 | 16个QK头,48个V头,头维度128 |
| FFN | 中间层大小17408 |
| 上下文 | 原生262K,使用YaRN可达1M+ |
| RoPE | theta 10M,partial_rotary_factor 0.25,mrope_interleaved |
| 词表 | 248K tokens |
| 多token预测 | 1个MTP draft层(15个张量) |
| model_type | qwen3_5 |
转换详情
使用 llama.cpp PR #22673 中修改后的convert_hf_to_gguf.py从官方Qwen3.6-27B safetensors转换而来。标准转换器会跳过MTP张量 — 此PR包含了这些张量。Q8_0是直接转换结果;所有更低等级均由此量化而来。
使用llama-quantize和unsloth的重要性矩阵进行量化(使用聊天模板在6K–12K上下文、76个块、496个条目下校准)。I-quant等级将MTP张量保持在Q8_0以确保稳定性。
转换前,聊天模板已替换为 Qwen-Fixed-Chat-Templates 中的修复版本。
链接
- 原始模型
- MLX 8位(LM Studio,Apple Silicon原生,无MTP)
- MLX 4位
- 固定聊天模板
- Qwen3.6博客文章
作者信息
| 角色 | 作者 |
|---|---|
| 原始模型 | 阿里云(Qwen团队) |
| GGUF转换 + MTP + 视觉 + 固定聊天模板 + 量化 | froggeric |
| 重要性矩阵 | unsloth |
许可证
Apache-2.0,继承自Qwen3.6。