llama.cpp 是一款纯 C/C++ 开发的开源大模型离线推理引擎,所有 AI 计算都在本地完成。支持 Linux、Windows、macOS 及多种 GPU 后端(CUDA、HIP、SYCL、Vulkan、WebGPU),提供 1.5–8 bit 量化能力。GitHub 上已有十多万 Star。

安装
Docker Compose(纯 CPU 推理)
services:
llama:
image: ghcr.io/ggml-org/llama.cpp:server
container_name: llama
ports:
- 8080:8080
volumes:
- ./models:/models
command:
- "-m"
- "/models/Qwen3.5-0.8B-Q4_K_M.gguf"
restart: always
Docker Compose(GPU 加速)
services:
llama:
image: ghcr.io/ggml-org/llama.cpp:server-vulkan
container_name: llama
ports:
- 8080:8080
volumes:
- ./models:/models
devices:
- /dev/dri:/dev/dri
command:
- "-m"
- "/models/Qwen3.5-0.8B-Q4_K_M.gguf"
restart: always
参数说明:
/models:存放模型的挂载路径/dev/dri:透传核显设备Qwen3.5-0.8B-Q4_K_M.gguf:根据实际模型名称填写
Docker Compose(根据设备情况特调)
services:
llama:
image: ghcr.io/ggml-org/llama.cpp:server-vulkan
container_name: llama
devices:
- /dev/dri:/dev/dri
ports:
- "8080:8080"
volumes:
- ./models:/models
command:
- "-m"
- "/models/Qwen3.5-0.8B-Q4_K_M.gguf"
- "--chat-template-kwargs"
- '{"enable_thinking": false}'
- "--gpu-layers"
- "99"
- "--threads"
- "4"
restart: unless-stopped
准备模型文件
第一步是准备 GGUF 格式的模型文件。国内用户可通过魔搭社区(ModelScope)下载,速度快且无需科学上网。

在 ModelScope 中筛选格式为 GGUF 的模型,根据需求选择合适的模型:

本次测试用到的模型:
- https://www.modelscope.cn/models/unsloth/Qwen3.5-0.8B-GGUF
- https://www.modelscope.cn/models/unsloth/Qwen3.5-2B-GGUF
- https://www.modelscope.cn/models/unsloth/Qwen3.5-4B-GGUF

使用
浏览器访问 http://NAS的IP:8080 即可看到 Web UI 界面。

界面支持深色模式切换,右下角可上传文件资料作为上下文:


右下角显示当前运行模型,点击可查看参数详情:

日常聊天使用 0.8B 模型时,回复速度可达 33.21 t/s:

底部圆点指示上下文长度,点击可查看输入输出速度:

点击模型可查看具体参数设置:

支持添加 MCP 服务扩展功能:


llama.cpp 兼容 OpenAI 协议,按要求填写 URL 即可调用,密钥可随意填写:

模型可正常识别和加载:

其他工具首次调用时可能会嵌入提示词,回复稍慢:

性能测试
测试目的:对比纯 CPU 与核显加速的差距,以及不同模型大小的表现。所有测试使用默认参数,关闭思考模式。

测试硬件:12th Gen Intel Core i5-1235U + 32GB DDR5 4800MHz
测试对象:llama.cpp:server(纯 CPU)vs llama.cpp:server-vulkan(GPU 加速)
测试模型:Qwen3.5-0.8B / 2B / 4B(均为 Q4_K_M 量化)
测试问题:我们为什么存在?
纯 CPU 推理结果
| 模型 | CPU | GPU | 内存 | 耗时 | 速度 |
|---|---|---|---|---|---|
| Qwen3.5-0.8B | 16% | 0% | 3592MB | 22s | 27.87 t/s |
| Qwen3.5-2B | 16%-17% | 0% | 4093MB | 45s | 14.11 t/s |
| Qwen3.5-4B | 16%-17% | 0% | 10800MB | 1min 46s | 6.41 t/s |
GPU 加速(Vulkan)结果
| 模型 | CPU | GPU | 内存 | 耗时 | 速度 |
|---|---|---|---|---|---|
| Qwen3.5-0.8B | 6%-9% | 29% | 4569MB | 17s | 31.08 t/s |
| Qwen3.5-2B | 5%-7% | 99% | 5906MB | 40s | 17.33 t/s |
| Qwen3.5-4B | 4%-5% | 100% | 12563MB | 1min 11s | 8.57 t/s |
GPU 加速(特调参数)结果
| 模型 | CPU | GPU | 内存 | 耗时 | 速度 |
|---|---|---|---|---|---|
| Qwen3.5-0.8B | 6% | 99% | 4689MB | 25s | 31.59 t/s |
| Qwen3.5-2B | 5%-7% | 99% | 5867MB | 32s | 17.37 t/s |
| Qwen3.5-4B | 4%-8% | 30% | 12256MB | 52s | 8.74 t/s |
总结
llama.cpp 是本地运行大模型最成熟的方案,纯 C/C++ 编写保证了推理运行效率。日常使用中多数设备的核显长期闲置,借助本地 AI 推理可充分利用闲置硬件性能。相较纯 CPU 运行,开启核显加速后推理速度有明显提升,同时大幅削减 CPU 负载。受限于硬件性能,可流畅运行轻量化小模型,适合数据脱敏、模型微调、离线私人助手等场景。