00Qwen 3.6 是什么?
Qwen 3.6 是阿里巴巴推出的新一代多模态混合推理模型家族。所谓"混合推理",指的是同一个模型既能像 GPT-4 一样快速直接回答(Instruct 模式),也能像 o1 一样先"思考"再回答(Thinking 模式)。你可以把它理解为"一个模型,两种性格"。
混合推理(Hybrid Thinking)
同一个模型支持 Thinking(先思考后回答,适合复杂任务)和 Instruct(直接回答,适合简单任务)两种模式,按需切换。
多模态(Multimodal)
支持文本 + 视觉理解,能看懂图片并基于图片内容回答问题、写代码。
超宽上下文(256K)
原生支持 256K token 上下文,通过 YaRN 技术可扩展到 100万 token,相当于能一次性读完一整本书。
多语言(201 种)
覆盖 201 种语言,包括中文、英文、日文、法文等,跨语言能力在同尺寸模型中处于顶尖水平。
01两个版本,怎么选?
Qwen 3.6 目前提供两个版本,核心区别在于模型架构:
Qwen3.6-27B(Dense)
传统密集模型,参数量 270 亿。每次推理时所有参数都会参与计算。性能均衡,适合大多数场景。
⚡ 140 tokens/s(MTP)
推荐显存:18GB(4-bit 量化)
Qwen3.6-35B-A3B(MoE)
混合专家模型,总参数量 350 亿,但每次推理只激活约 30 亿参数。用更少的计算量获得更强的性能。
⚡ 220 tokens/s(MTP)
推荐显存:22GB(4-bit 量化)
显存需求对照表
以下是在不同量化精度下的显存需求。量化可以理解为"模型压缩"——用更少的位数存储权重,换取更小的体积和更快的速度,代价是极轻微的精度损失。
| 模型 | 3-bit | 4-bit | 6-bit | 8-bit | BF16(无损) |
|---|---|---|---|---|---|
| 27B | 15 GB | 18 GB | 24 GB | 30 GB | 55 GB |
| 35B-A3B | 17 GB | 23 GB | 30 GB | 38 GB | 70 GB |
选购建议
如果你有 RTX 3090/4090(24GB)或更高级别的显卡,推荐 27B 的 4-bit 量化版,性价比最高。如果显存更充裕,35B-A3B 的 MoE 架构在同等速度下性能更强。
02开始前:重要警告
CUDA 13.2 问题
不要使用 CUDA 13.2,否则模型输出会变成乱码(gibberish)。NVIDIA 正在修复中。建议使用 CUDA 12.x 版本。
Ollama 暂不支持
目前 Qwen 3.6 的 GGUF 格式无法在 Ollama 中使用,原因是视觉模块(mmproj)使用了单独的文件。请使用 llama.cpp 兼容的后端。
03MTP:让生成速度翻倍的黑科技
MTP 是什么?
MTP(Multi-Token Prediction,多 Token 预测)是 Qwen 3.6 引入的一项加速技术。传统的大模型每次只能预测一个token(大约半个汉字),而 MTP 让模型每次能同时预测多个token。
通俗比喻:传统生成就像一个人一个字一个字地写文章;MTP 就像一个人能同时想好接下来两三句话,然后一口气写下来。
MTP 效果
⚡ Dense 模型(27B):约 1.4 倍加速,draft tokens = 2 时效果最佳
⚡ MoE 模型(35B-A3B):约 1.15~1.25 倍加速
实测:27B 可达 140 tokens/s,35B-A3B 可达 220 tokens/s
为什么不建议 draft tokens > 2?
当 draft tokens 从 2 增加到 4 时,接受率会从 83% 暴跌到 50%。这意味着模型"猜错"的概率大幅上升,反而拖慢整体速度。因此推荐始终设置为 --spec-draft-n-max 2。
第一步:编译支持 MTP 的 llama.cpp
MTP 需要特殊的 llama.cpp 分支,官方主线尚未合并。以下是编译步骤:
# 安装依赖
apt-get install pciutils build-essential cmake curl libcurl4-openssl-dev -y
# 克隆 MTP 分支
git clone -b mtp-clean https://github.com/am17an/llama.cpp.git
# 编译(NVIDIA GPU)
cmake llama.cpp -B llama.cpp/build \
-DBUILD_SHARED_LIBS=OFF \
-DGGML_CUDA=ON
cmake --build llama.cpp/build --config Release \
-j --clean-first \
--target llama-cli llama-server
# 复制编译好的二进制文件
cp llama.cpp/build/bin/llama-* llama.cpp
如果是 Apple Mac(Metal),将 -DGGML_CUDA=ON 改为 -DGGML_CUDA=OFF,Metal 支持默认开启。
第二步:运行 MTP 加速版 27B(Thinking 模式)
# 设置模型缓存路径
export LLAMA_CACHE="unsloth/Qwen3.6-27B-MTP-GGUF"
# 启动命令行对话(Thinking 模式,适合通用任务)
./llama.cpp/llama-cli \
-hf unsloth/Qwen3.6-27B-GGUF:UD-Q4_K_XL \
--temp 1.0 \
--top-p 0.95 \
--top-k 20 \
--presence-penalty 1.5 \
--min-p 0.00 \
--spec-type mtp \
--spec-draft-n-max 2
运行 MTP 加速版 27B(Instruct 模式)
export LLAMA_CACHE="unsloth/Qwen3.6-27B-MTP-GGUF"
./llama.cpp/llama-server \
-hf unsloth/Qwen3.6-27B-MTP-GGUF:UD-Q4_K_XL \
--temp 0.7 \
--top-p 0.8 \
--top-k 20 \
--presence-penalty 1.5 \
--min-p 0.00 \
--spec-type mtp \
--spec-draft-n-max 2 \
--chat-template-kwargs '{"enable_thinking":false}'
关键区别:Instruct 模式下添加了 --chat-template-kwargs '{"enable_thinking":false}',这会关闭模型的"思考"过程,直接输出答案,速度更快、风格更简洁。
运行 MTP 加速版 35B-A3B
export LLAMA_CACHE="unsloth/Qwen3.6-35B-A3B-MTP-GGUF"
./llama.cpp/llama-cli \
-hf unsloth/Qwen3.6-35B-A3B-MTP-GGUF:UD-Q4_K_XL \
--temp 1.0 \
--top-p 0.95 \
--top-k 20 \
--presence-penalty 1.5 \
--min-p 0.00 \
--spec-type mtp \
--spec-draft-n-max 2
从 Hugging Face 下载模型
hf download unsloth/Qwen3.6-35B-A3B-MTP-GGUF \
--local-dir unsloth/Qwen3.6-35B-A3B-MTP-GGUF \
--include "*mmproj-F16*" \
--include "*UD-Q4_K_XL*"
04参数调优:Thinking vs Instruct
Qwen 3.6 的核心魅力在于"一个模型,两种性格"。以下是官方推荐的参数配置:
Thinking 模式(先思考,再回答)
| 场景 | temperature | top_p | top_k | presence_penalty |
|---|---|---|---|---|
| 通用任务 | 1.0 | 0.95 | 20 | 1.5 |
| 精确编程 | 0.6 | 0.95 | 20 | 0.0 |
Instruct 模式(直接回答)
| 场景 | temperature | top_p | top_k | presence_penalty |
|---|---|---|---|---|
| 通用任务 | 0.7 | 0.8 | 20 | 1.5 |
| 推理任务 | 1.0 | 0.95 | 20 | 1.5 |
参数通俗解释
temperature:创意温度。越高越有创意但越容易胡说,越低越保守但越准确。
presence_penalty:重复惩罚。设为 1.5 可以减少模型"车轱辘话"来回说的问题。
top_p / top_k:采样范围。限制模型只从最有希望的候选词中选择。
05Preserve Thinking:保留思考痕迹
Qwen 3.6 有一个独特的功能叫 Preserve Thinking(保留思考)。在多轮对话中,模型会把上一轮"思考"的过程也保留下来,作为下一轮对话的上下文。
好处:对话连贯性更强,模型"记得"自己是怎么思考的。
代价:消耗的 token 数量显著增加。
# 启用 Preserve Thinking
--chat-template-kwargs '{"preserve_thinking":true}'
在 Python 中读取思考内容:
print(completion.choices[0].message.content) # 正式回答
print(completion.choices[0].message.reasoning_content) # 思考过程
06生产部署:OpenAI 兼容 API
llama-server 启动后,会提供一个与 OpenAI API 完全兼容的接口。这意味着你可以用任何支持 OpenAI 的客户端或框架来调用本地部署的 Qwen 3.6。
启动生产服务器
./llama.cpp/llama-server \
--model unsloth/Qwen3.6-35B-A3B-GGUF/Qwen3.6-35B-A3B-UD-Q4_K_XL.gguf \
--mmproj unsloth/Qwen3.6-35B-A3B-GGUF/mmproj-F16.gguf \
--alias "unsloth/Qwen3.6-35B-A3B" \
--temp 0.6 \
--top-p 0.95 \
--ctx-size 16384 \
--top-k 20 \
--min-p 0.00 \
--port 8001
Python 客户端调用
from openai import OpenAI
client = OpenAI(
base_url="http://127.0.0.1:8001/v1",
api_key="sk-no-key-required",
)
completion = client.chat.completions.create(
model="unsloth/Qwen3.6-35B-A3B",
messages=[{"role": "user", "content": "用 Python 写一个贪吃蛇游戏。"}],
)
print(completion.choices[0].message.content)
07Mac 用户:MLX 动态量化
Apple Silicon Mac 用户可以通过 MLX 框架运行 Qwen 3.6,利用统一内存架构获得不错的性能。
一键安装与运行
# 一键安装
curl -fsSL https://raw.githubusercontent.com/unslothai/unsloth/refs/heads/main/scripts/install_qwen3_6_mlx.sh | sh
# 激活环境
source ~/.unsloth/unsloth_qwen3_6_mlx/bin/activate
# 启动对话
python -m mlx_vlm.chat --model unsloth/Qwen3.6-27B-UD-MLX-4bit
MLX 量化版本对照
| 量化 | Hugging Face 链接 | 大小 |
|---|---|---|
| 3-bit | unsloth/Qwen3.6-27B-UD-MLX-3bit | ~24 GB |
| 4-bit | unsloth/Qwen3.6-27B-UD-MLX-4bit | ~26 GB |
| 6-bit | unsloth/Qwen3.6-27B-UD-MLX-6bit | ~30 GB |
| 8-bit | unsloth/Qwen3.6-27B-MLX-8bit | ~35 GB |
| MXFP4 | unsloth/Qwen3.6-27B-UD-MLX-MXFP4 | ~26 GB |
| NVFP4 | unsloth/Qwen3.6-27B-UD-MLX-NVFP4 | ~26 GB |
精度 benchmark
| 量化 | Mean KLD | Median KLD | PPL | Size |
|---|---|---|---|---|
| 8-bit | 0.0028 | 0.0003 | 4.812 | 34.7 GB |
| 6-bit | 0.0037 | 0.0007 | 4.809 | 30.5 GB |
| 4-bit | 0.0227 | 0.0053 | 4.821 | 26.2 GB |
| 3-bit | 0.0734 | 0.0223 | 4.976 | 24.1 GB |
Mac 选购建议
KLD(KL散度)越低,表示量化后的模型与原始模型越接近。4-bit 是性价比最佳点 — 体积比 8-bit 小 25%,精度损失仅 0.02,几乎感知不到。
08常见问题排查
输出乱码(Gibberish)
1. 检查上下文长度是否设置过低,尝试增大 --ctx-size
2. 添加 --cache-type-k bf16 --cache-type-v bf16 可能解决问题
3. 确认未使用 CUDA 13.2
显存不足
llama.cpp 支持通过 SSD/HDD 卸载(offloading)运行,但推理速度会显著下降。建议显存 + 系统内存总量大于模型文件大小。
Windows PowerShell 引号问题
Windows 用户注意:JSON 参数中的引号需要转义。
Linux/Mac: '{"enable_thinking":false}'
Windows PowerShell: "{\"enable_thinking\":false}"
09快速命令索引
最常用命令速查
MTP 加速 + Thinking(27B)
./llama.cpp/llama-cli -hf unsloth/Qwen3.6-27B-GGUF:UD-Q4_K_XL --temp 1.0 --top-p 0.95 --top-k 20 --presence-penalty 1.5 --min-p 0.00 --spec-type mtp --spec-draft-n-max 2
MTP 加速 + Instruct(27B)
./llama.cpp/llama-server -hf unsloth/Qwen3.6-27B-MTP-GGUF:UD-Q4_K_XL --temp 0.7 --top-p 0.8 --top-k 20 --presence-penalty 1.5 --min-p 0.00 --spec-type mtp --spec-draft-n-max 2 --chat-template-kwargs '{"enable_thinking":false}'
标准模式(非 MTP,27B)
./llama.cpp/llama-cli -hf unsloth/Qwen3.6-27B-GGUF:UD-Q4_K_XL --temp 1.0 --top-p 0.95 --top-k 20 --presence-penalty 1.5 --min-p 0.00