准备
- 一台配备 NVIDIA 显卡的 Linux 服务器
- 系统已安装 CUDA Toolkit(推荐 12.x 或以上)以及基础编译工具链(GCC、CMake、Make、Git)
下载与编译 llama.cpp
1 2 3 4 5 6 7 8 9 10
| git clone https://github.com/ggml-org/llama.cpp cd llama.cpp
cmake -B build -DGGML_CUDA=ON cmake --build build --config Release
ln -s build/bin/llama-server ./llama-server
|
准备 GGUF 模型
在服务器上创建模型存放目录,并使用 ModelScope 镜像极速下载 Qwen3.6-27B-UD-Q8_K_XL.gguf 模型。
1 2 3 4
| mkdir -p /workspace/models
wget -P /workspace/models https://www.modelscope.cn/models/unsloth/Qwen3.6-27B-MTP-GGUF/resolve/master/Qwen3.6-27B-UD-Q8_K_XL.gguf
|
启动 API 服务
在 llama.cpp 编译根目录下启动推理服务。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| CUDA_VISIBLE_DEVICES=0 ./llama-server \ -m /workspace/models/Qwen3.6-27B-UD-Q8_K_XL.gguf \ -c 131072 \ -ngl 99 \ -fa on \ -np 1 \ --spec-type draft-mtp \ --spec-draft-n-max 2 \ --port 8080 \ --host 0.0.0.0 \ --alias qwen3.6 \ --jinja \ --chat-template-kwargs '{"preserve_thinking":true}' \ --temp 0.6 \ --top-k 20 \ --top-p 0.95 \ --min-p 0.0 \ --presence-penalty 0.0 \ --api-key sk-123456
|
关键参数解析:
-c 131072: 将上下文窗口设置为 128k 长度。
-ngl 99: 将 99 层网络卸载到显卡执行,实现 CUDA 硬件全显存加速。
-fa on: 启用 Flash Attention,优化长上下文下的显存占用与吞吐速度。
--spec-type draft-mtp --spec-draft-n-max 2: 启用 MTP(多 Token 预测)推测解码,大幅提升生成速度。
--jinja --chat-template-kwargs '{"preserve_thinking":true}': 启用 Jinja 模板渲染,并保留模型思考链(Thinking)输出。
--api-key sk-123456: 开启 API 访问鉴权,指定 API Key 为 sk-123456。
验证
在同一台服务器上,使用 curl 发送带有 API-Key 鉴权头的请求。
1 2 3 4 5 6 7 8 9
| curl http://localhost:8080/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-123456" \ -d '{ "model": "qwen3.6", "messages": [ {"role": "user", "content": "你好,请问你是谁?"} ] }'
|
参考资料