使用 llama.cpp 运行千问(Qwen)Coder 系列模型,是目前在本地部署和运行这些高性能编程模型最主流、最高效的方法之一。它通过.gguf量化格式,能显著降低对硬件资源的占用,为开发者提供流畅的AI编程助手体验。

下面是为Qwen的Coder模型定制的一份详细指南。

🏗️ 环境准备与编译

可以通过源码编译(推荐)或包管理器安装:

  • 源码编译 (推荐):首先克隆仓库并编译。这个方式可以针对你的硬件获得最优性能。
    git clone https://github.com/ggml-org/llama.cpp.git
    cd llama.cpp
    
    # 使用 NVIDIA GPU 加速(CUDA)
    cmake -B build -DGGML_CUDA=ON
    cmake --build build --config Release -j --clean-first
    
    # 在 macOS 上使用 Metal 加速
    cmake -B build -DGGML_METAL=ON
    cmake --build build --config Release -j $(sysctl -n hw.activecpu)
    
  • 包管理器 / 预编译包:Mac和Linux用户可使用 brew install llama.cpp 安装,Windows用户可直接从GitHub的Releases页面下载预编译版。

编译完成后,常用的可执行文件位于 build/bin/ 目录下。

🖥️ 硬件配置要求(以80B MoE模型为例)

Qwen Coder系列包含多个规格,其中Qwen3-Coder-80B-A3B-Instruct(约800亿总参数,激活约30亿)非常适合消费级硬件。
其4-bit (Q4_K_XL) 和 3-bit (Q3_K_XL) 量化版本在不同上下文长度下的显存占用参考值如下表所示:

上下文长度 Q4_K_XL 显存占用 Q3_K_XL 显存占用
4k tokens 47 GB 37 GB
32k tokens 48 GB 38 GB
256k tokens 54 GB 44 GB

对于30B等较小规格模型,硬件要求会相应降低。

🤖 快速上手:运行一个GGUF模型

  • 1. 选择并下载GGUF模型
    模型文件名中的量化等级标识了压缩和性能的平衡。推荐使用 Q4_K_M(良好平衡)或 Q5_K_M(更高质量),硬件受限可用 Q2_KQ3_K 系列。
    Qwen官方精选的GGUF模型可在此查找:
    Qwen3-Coder GGUF 模型列表

    • unsloth / Qwen3-Coder-Next-GGUF (Hugging Face)
    • ggml-org / Qwen3-Coder-30B-A3B-Instruct-Q8_0-GGUF (Hugging Face)
    • 你也可以直接通过 huggingface-cli 下载模型。
  • 2. 命令行交互模式 (llama-cli)
    使用 llama-cli 命令可直接与模型对话。

    ./llama-cli \
      -hf unsloth/Qwen3-Coder-Next-GGUF:Q4_K_M \   # 从 Hugging Face 直接加载模型
      --jinja \                                                      # 使用模型的聊天模板
      -c 8192 \                                                      # 上下文大小
      -ngl 99 \                                                      # 将全部层加载到GPU
      -fa \                                                          # 启用Flash Attention
      --temp 0.7 \                                                   # 温度参数
      --top-p 0.8 \                                                  # Top-p采样控制
      --top-k 20 \                                                   # Top-k采样控制
      --repeat-penalty 1.05 \                                        # 重复惩罚系数
      -cnv                                                           # 开启交互式对话模式
    
    • 如果模型文件已在本地,用 -m /path/to/your/model.gguf 替换 -hf ...
    • -n 参数用于控制生成的最大token数。
  • 3. 启动API服务器 (llama-server)
    启动一个与OpenAI API兼容的本地服务,便于集成到各类客户端。

    ./llama-server \
      -hf unsloth/Qwen3-Coder-Next-GGUF:Q4_K_M \
      --jinja \
      -c 8192 \
      -ngl 99 \
      -fa \
      --host 0.0.0.0 \                                              # 允许外部访问
      --port 8080                                                   # 服务端口
    

    调用服务 (示例):服务启动后,你可以使用 curl 命令通过简单的HTTP POST请求来验证它是否正常工作。

    curl http://localhost:8080/v1/completions \
      -H "Content-Type: application/json" \
      -d '{
        "prompt": "你好!",
        "temperature": 0.7,
        "max_tokens": 100
      }'
    

⚙️ 推荐参数与性能调优

  • 推荐参数:Qwen官方建议使用 temperature=0.7top_p=0.8top_k=20repetition_penalty=1.05

模型下载渠道

  • 国际站 (推荐): Hugging Face上的 unsloth/Qwen3.6-35B-A3B-GGUF 是获取 Unsloth 动态量化版的最佳地点。
  • 国内加速: ModelScope(modelscope.cn) 提供了国内镜像,下载速度会更快。有用户分享的经验就是从这里下载了 IQ4_NL 量化的模型。

🖥️ 运行模型 (常见优化)

使用以下优化的 llama-server 命令启动模型。请将 model.gguf 替换为你的模型文件实际路径。

.\build\bin\Release\llama-server.exe `
  --model D:\my-models\qwen3.6-35b\model.gguf `
  --host 0.0.0.0 --port 8080 `
  --n-gpu-layers 99 `
  --n-cpu-moe 33 `
  --ctx-size 64000 `
  --flash-attn auto `
  --cache-type-k q4_0 --cache-type-v q4_0 `
  --temp 0.6 --top-p 0.95 --top-k 20 --min-p 0 `
  --jinja

🧠 Qwen3.6:配置“思考模式”

Qwen3.6 支持像人一样的“思考”模式。在启用思考的情况下,它的回答质量会更高,但生成的内容会更长。

  • 开启思考 (高质量): 在 llama-server 命令中添加 --chat-template-kwargs '{"enable_thinking": true}'
  • 关闭思考 (高速度): 在 llama-server 命令中添加 --chat-template-kwargs '{"enable_thinking": false}'

在使用 API 请求时,你还可以通过在用户消息前添加 # /think/no_think 来更精细地控制,比如:

"messages": [
  { "role": "user", "content": "/no_think 不用解释,直接输出代码。" }
]
Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐