前言
在使用 LMStudio 调用 AI 模型时,发现显存占用率一直未达预期,尝试多种方案未果后,决定转向 llama.cpp 进行本地部署。在此记录使用过程中遇到的一些典型问题及解决思路。
基础启动
从官方发布页下载最新二进制包:
https://github.com/ggml-org/llama.cpp/releases
以下是一个基础的启动脚本示例(保存为 .bat 文件,与 llama-server.exe 同目录):
@echo off
setlocal
set "MODEL_PATH=F:\Models\Yakyu"
set "MODEL_FILE=Qwen3-235B-A22B-Instruct-2507-UD-Q8.gguf"
set CTX_SIZE=32768
set HOST=127.0.0.1
set PORT=1234
echo 正在启动 OpenAI 兼容 API 服务...
echo 模型:%MODEL_PATH%\%MODEL_FILE%
echo 端口:http://%HOST%:%PORT%
echo.
llama-server.exe ^
-m "%MODEL_PATH%\%MODEL_FILE%" ^
--ctx-size %CTX_SIZE% ^
--host %HOST% ^
--port %PORT%
echo.
echo 服务已停止。按任意键关闭窗口...
pause >nul
运行后若 CMD 窗口显示'all slots are idle',说明模型加载完成。如果出现乱码,请将 bat 文件保存为 ANSI 编码格式。
关于参数配置,默认开启了自动适应显存 (--fit on)。对于大多数设备,不强制指定 --gpu-layers 或 --n-cpu-moe 反而效果更稳定。当然,根据硬件情况调整这些参数也能带来性能提升。
如果需要合并分片模型,可使用 llama-gguf-split 工具:
D:\Yakyu\llama-b7640-bin-win-cuda-12.4-x64\llama-gguf-split.exe --merge F:/Models/Yakyu/Qwen3-235B-A22B-Instruct-2507/Qwen3-235B-A22B-Instruct-2507-UD-Q8_K_XL-00001-of-00006.gguf F:/Models/Yakyu/Qwen3-235B-A22B-Instruct-2507-UD-Q8.gguf
常见问题排查
1. SillyTavern 调用时报错
当使用 DeepSeek 模型时,SillyTavern 可能会报错:Chat Completion API Assistant response prefill is incompatible with enable_thinking。
解决方案:
- 在启动参数中增加
--reasoning-budget 0以关闭思考模式。 - 由于关闭思考后可能出现输出截断或模板不匹配问题,建议指定自定义聊天模板文件。
修改后的启动脚本如下:
@echo off
setlocal
set "MODEL_PATH=F:\Models\Yakyu"
set "MODEL_FILE=DeepSeek-V3.1-Terminus-MXFP4_MOE.gguf"
set CTX_SIZE=32768
set HOST=127.0.0.1
set PORT=1234
echo 模型:%MODEL_PATH%\%MODEL_FILE%
echo 端口:http://%HOST%:%PORT%
echo.
llama-server.exe ^
-m "%MODEL_PATH%\%MODEL_FILE%" ^
--reasoning-budget 0 ^
--chat-template-file "Unslothdeepseek-v3-chat-template.jinja" ^
--ctx-size %CTX_SIZE% ^
--host %HOST% ^
--port %PORT%
echo.
echo 服务已停止。按任意键关闭窗口...
pause >nul
关于 Chat Template:
如果直接关闭思考预算导致模型输出异常(如只输出固定前缀),通常需要配合特定的 Jinja 模板。参考 Unsloth 提供的修复模板,将其保存为 .jinja 文件并与服务器放在同一目录下。
模板内容示例:

