搬瓦工 VPS 使用 Llama.cpp 部署本地大模型推理教程

Llama.cpp 是目前最流行的本地大语言模型推理引擎,它使用纯 C/C++ 编写,无需 GPU 即可在 CPU 上高效运行各种大语言模型。通过 GGUF 格式的量化模型,即使在搬瓦工 VPS 这样的普通服务器上也能运行 Llama、Qwen、Mistral 等主流开源大模型。本教程将从编译安装到搭建 API 服务进行完整讲解。

一、环境要求

  • 操作系统:Ubuntu 20.04 或更高版本。
  • 内存:至少 4GB(运行 7B 量化模型),8GB 以上更佳。
  • 磁盘:至少 10GB 可用空间存放模型文件。
  • 编译工具:GCC/G++ 和 CMake。

模型大小与内存需求的对应关系:7B Q4 量化约需 4GB 内存,13B Q4 约需 8GB,选择方案时请参考 全部方案

二、安装编译依赖

apt update && apt upgrade -y
apt install build-essential cmake git curl wget -y

三、编译 Llama.cpp

cd /opt
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release -j$(nproc)

编译完成后,可执行文件位于 build/bin/ 目录中。

3.1 验证编译结果

./build/bin/llama-cli --version

四、下载 GGUF 模型

GGUF 是 Llama.cpp 使用的模型格式,HuggingFace 上有大量预量化的 GGUF 模型。以下载 Qwen2.5 为例:

mkdir -p /opt/models

# 下载 Qwen2.5-1.5B 量化模型(适合内存较小的 VPS)
wget -O /opt/models/qwen2.5-1.5b-instruct-q4_k_m.gguf \
  "https://huggingface.co/Qwen/Qwen2.5-1.5B-Instruct-GGUF/resolve/main/qwen2.5-1.5b-instruct-q4_k_m.gguf"

常用的量化级别说明:

  • Q2_K:最小体积,质量损失较大,适合极度受限的环境。
  • Q4_K_M:推荐选择,体积和质量的最佳平衡。
  • Q5_K_M:更高质量,体积稍大。
  • Q8_0:接近原始精度,但占用更多内存。

五、命令行交互模式

使用交互模式直接与模型对话:

./build/bin/llama-cli \
  -m /opt/models/qwen2.5-1.5b-instruct-q4_k_m.gguf \
  -c 2048 \
  -t $(nproc) \
  --interactive-first \
  -p "You are a helpful assistant."

参数说明:

  • -m:模型文件路径。
  • -c:上下文长度(token 数量)。
  • -t:使用的 CPU 线程数。
  • -p:系统提示词。

六、启动 API 服务器

Llama.cpp 内置了兼容 OpenAI API 格式的服务器,非常方便与各种客户端集成:

./build/bin/llama-server \
  -m /opt/models/qwen2.5-1.5b-instruct-q4_k_m.gguf \
  --host 0.0.0.0 \
  --port 8080 \
  -c 2048 \
  -t $(nproc) \
  --parallel 2

服务启动后,可以使用 curl 测试:

curl http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen2.5",
    "messages": [
      {"role": "system", "content": "你是一个有用的助手。"},
      {"role": "user", "content": "什么是向量数据库?"}
    ],
    "temperature": 0.7,
    "max_tokens": 500
  }'

七、配置 Systemd 服务

cat > /etc/systemd/system/llama-server.service <<EOF
[Unit]
Description=Llama.cpp API Server
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/opt/llama.cpp
ExecStart=/opt/llama.cpp/build/bin/llama-server \
  -m /opt/models/qwen2.5-1.5b-instruct-q4_k_m.gguf \
  --host 0.0.0.0 --port 8080 \
  -c 2048 -t 4 --parallel 2
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable llama-server
systemctl start llama-server

八、配合前端界面使用

Llama.cpp 的 API 服务器兼容 OpenAI 格式,可以轻松对接各种前端聊天界面:

只需将这些前端的 API 地址配置为 http://your-server-ip:8080 即可使用。

九、性能优化

9.1 调整线程数

最佳线程数通常等于 CPU 物理核心数,设置过多反而会降低性能:

# 查看 CPU 核心数
nproc
lscpu | grep "Core(s) per socket"

9.2 添加 swap 空间

对于内存紧张的情况,可以添加 swap 作为缓冲:

fallocate -l 4G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab

9.3 使用 mmap 内存映射

Llama.cpp 默认使用 mmap 加载模型,这允许操作系统按需将模型文件映射到内存,而不是一次性加载。对于内存不足的场景非常有帮助,但会增加磁盘 I/O。

十、常见问题

模型加载失败

确认模型文件是 GGUF 格式(不是旧的 GGML 格式),确认文件下载完整没有损坏:

ls -lh /opt/models/
md5sum /opt/models/qwen2.5-1.5b-instruct-q4_k_m.gguf

推理速度很慢

在纯 CPU 环境下,7B 模型的推理速度一般在每秒 5-15 个 token。如果明显低于此水平,检查 CPU 利用率和内存是否有交换活动。

总结

Llama.cpp 让在 CPU 服务器上运行大语言模型成为现实。配合量化技术,即使是搬瓦工的入门级 VPS 也能运行小型模型进行实验。如果需要更高的推理效率,可以参考 vLLM 高速推理 方案。选购搬瓦工 VPS 请查看 全部方案,使用优惠码 NODESEEK2026 可享受 6.77% 的折扣,购买链接:bwh81.net

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。