使用 llama.cpp 部署 Qwen3.6 本地大模型

small parking
目录

前言

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 卸载运行,但推理速度会变慢。

参考