使用 llama.cpp 部署 Qwen3.6 本地大模型
目录
前言
Qwen3.6 是阿里巴巴最新推出的多模态混合推理模型系列,包括 Qwen3.6-27B 和 Qwen3.6-35B-A3B(MoE 架构)。它支持 256K 上下文窗口,覆盖 201 种语言,在智能体编程、视觉理解和聊天任务上表现优异。
本文将介绍如何使用 llama.cpp 在本地部署 Qwen3.6-35B-A3B 模型,并通过 OpenAI 兼容 API 进行调用。
编译 llama.cpp
首先安装编译依赖:
apt-get update
apt-get install pciutils build-essential cmake curl libcurl4-openssl-dev -y
然后根据 GPU 类型选择编译命令:
NVIDIA GPU(CUDA):
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
cmake -B build -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON
cmake --build build --config Release -j --clean-first
AMD GPU(HIP/ROCm):
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
cmake -B build -DGGML_HIP=ON -DGGML_HIPBLAS=ON
cmake --build build --config Release -j --clean-first
编译完成后,安装到系统:
sudo cmake --install build
下载模型
模型推荐使用 Unsloth 的动态量化版本(UD-Q4_K_XL),在 24GB 内存配置上运行良好:
pip install huggingface_hub hf_transfer
hf download unsloth/Qwen3.6-35B-A3B-GGUF \
--local-dir unsloth/Qwen3.6-35B-A3B-GGUF \
--include "*mmproj-F16*" \
--include "*UD-Q4_K_XL*"
注意事项:量化模型也可以加载 mmproj
一个重要发现:之前我以为量化后的 GGUF 模型就不能加载视觉投影文件了,但实际上 Qwen3.6 作为多模态模型,无论是否量化,都需要下载对应的 mmproj-F16.gguf 文件来支持视觉理解功能。
部署 llama-server
使用 llama-server 启动服务,它提供 OpenAI 兼容的 API 接口:
可选参数说明
--mmproj:多模态模型需要加载视觉投影文件,例如--mmproj mmproj-F16.gguf,纯文本模型不需要--no-mmap:显存紧张时使用,禁用内存映射可提升性能,但会增加内存占用--alias:模型别名,调用 API 时使用--ctx-size:上下文窗口大小(设为 262144,即 256K)--spec-type draft-mtp --spec-draft-n-max 6:开启 MTP 投机解码,加速推理--temp:温度参数,1.0 适合通用任务,0.6 适合精确编程--presence-penalty:存在惩罚,通用任务 1.5 减少重复,编程任务 0.0 关闭
对于精确编程任务,修改: –temperature=0.6 –presence-penalty 0.0
对于推理任务,修改: –temperature 1.0 –top-p 0.95
通用任务(思考模式)
./llama-server \
--model unsloth/Qwen3.6-35B-A3B-GGUF/Qwen3.6-35B-A3B-UD-Q4_K_XL.gguf \
--alias "unsloth/Qwen3.6-35B-A3B" \
--temp 1.0 \
--top-p 0.95 \
--top-k 20 \
--min-p 0.00 \
--presence-penalty 1.5 \
--ctx-size 262144 \
--spec-type draft-mtp --spec-draft-n-max 6 \
--port 8001
通用任务(非思考模式)
./llama-server \
--model unsloth/Qwen3.6-35B-A3B-GGUF/Qwen3.6-35B-A3B-MTP-UD-Q4_K_XL.gguf \
--alias "unsloth/Qwen3.6-35B-A3B" \
--temp 0.7 \
--top-p 0.8 \
--top-k 20 \
--min-p 0.00 \
--presence-penalty 1.5 \
--ctx-size 262144 \
--spec-type draft-mtp --spec-draft-n-max 6 \
--port 8001
调用 API
安装 openai 库后,可以通过 Python 调用:
from openai import OpenAI
openai_client = OpenAI(
base_url="http://127.0.0.1:8001/v1",
api_key="sk-no-key-required",
)
completion = openai_client.chat.completions.create(
model="unsloth/Qwen3.6-35B-A3B",
messages=[{"role": "user", "content": "创建一个 Python 贪吃蛇游戏。"}],
)
print(completion.choices[0].message.content)
控制思考模式
Qwen3.6 支持"思考模式"(显示推理过程)和"非思考模式"(直接回答):
# 禁用思考
./llama-server \
--chat-template-kwargs '{"enable_thinking":false}'
# 启用保留思考(对话中保留推理轨迹)
./llama-server \
--chat-template-kwargs '{"preserve_thinking":true}'
Windows PowerShell 中需要使用转义:
--chat-template-kwargs "{\"enable_thinking\":false}"
硬件需求
| 模型 | 3-bit | 4-bit | 6-bit | 8-bit | BF16 |
|---|---|---|---|---|---|
| Qwen3.6-27B | 15 GB | 18 GB | 24 GB | 30 GB | 55 GB |
| Qwen3.6-35B-A3B | 17 GB | 23 GB | 30 GB | 38 GB | 70 GB |
确保可用总内存(VRAM + 系统 RAM)大于模型文件大小。如果不满足,llama.cpp 仍可通过 SSD/HDD 卸载运行,但推理速度会变慢。