在 LMStudio 调用 AI 模型时发现显存占用率一直不超过 80%,尝试多种方法无果后,决定换用 llama.cpp。这里记录一下使用过程中遇到的一些问题和解决方法,希望能帮到同样在折腾本地大模型的朋友。
基础启动与配置
llama.cpp 的下载地址是:https://github.com/ggml-org/llama.cpp/releases
为了便于调用,建议将启动命令保存为 .bat 文件,放在 llama-server.exe 同目录下运行。确保模型路径正确,并根据机器能力调整 GPU 层数和线程数。
@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 编码格式即可。
注:通过 llama-server.exe -h 可以看到默认开启了自动适应内存 (--fit)。对于大多数情况,不填 --gpu-layers、--n-cpu-moe 等参数效果反而更好,因为每个人的设备情况不同。不过根据相关技术文章,合理设置 --n-cpu-moe 的值在某些场景下能提速。
如果需要更精细的控制,可以参考以下版本:
@echo off
setlocal
set "MODEL_PATH=F:\Models\Yakyu"
set "MODEL_FILE=Qwen3-Next-80B-A3B-Instruct-abliterated-Q8_0.gguf"
set GPU_LAYERS=64
set THREADS=64
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%" ^
--gpu-layers %GPU_LAYERS% ^
--threads %THREADS% ^
--ctx-size %CTX_SIZE% ^
--n-cpu-moe 10 ^
--host %HOST% ^
--port %PORT%
echo.
echo 服务已停止。按任意键关闭窗口...
pause >nul
GGUF 分片合并
如果是多个分片(shard)组成的 GGUF 模型,需要用 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
直接在 cmd 输入上述代码即可执行。
问题一:SillyTavern 调用时报错
当我加载 DeepSeek 模型时,SillyTavern 会报错:Chat Completion API Assistant response prefill is incompatible with enable_thinking。
解决办法有两个方向:
- 换用文本补全模式。
- 在启动脚本中增加
--reasoning-budget 0来关闭思考模式。

