Ubuntu24.04无GPU从零编译、部署llama.cpp

作者头像
袋鼠 本文作者

2026-8-7 阅读 5 约 8分钟读完

评论0

系统配置

处理器 内存 存储 系统 模型 生成速度
类型 E5-2965v4 DDR4 M.2 Linux qwen3.5-4b 纯文字
规格 60核 48G 200G Ubuntu24.04 q4量化 11token/s

11t/s算是这个配置相当不错的速度了,如果想要提升速度则需CPU更换为新架构的、内存条升级到DDR5,那么必然需要更换主板,还不如直接加显卡来的实在。

  1. 安装编译工具链
# 更新系统
sudo apt update && sudo apt upgrade -y

# 安装基础编译工具
sudo apt install -y build-essential cmake git wget curl python3-pip

# 验证版本
gcc --version    # 需要 >= 12
cmake --version  # 需要 >= 3.21
  1. 克隆并编译 llama.cpp
设置临时网络代理 ```bash export http_proxy="http://IP:port" export https_proxy="http://IP:port" ```
# 克隆仓库
cd ~
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp

# 创建构建目录
mkdir build && cd build

# 纯 CPU 编译
cmake .. -DLLAMA_BUILD_UI=OFF
make -j$(nproc)
  1. 下载模型文件
# 删除原models目录下所有文件
rm -rf ~/llama.cpp/models/*

# 安装modelscope
pip install modelscope

# 使用 modelscope 下载
modelscope download --model diodel/Qwen3.5-4B-Q4_K_M-GGUF --local_dir ~/llama.cpp/models
安装modelscope失败 ```bash mkdir -p ~/.config/pip echo -e "[global]\nbreak-system-packages=true" > ~/.config/pip/pip.conf ```
  1. 测试启动,配置核心参数
# 启动服务
~/llama.cpp/build/bin/llama-server \
  --models-dir ~/llama.cpp/models \
  --chat-template-kwargs '{"enable_thinking":false}' \  # 关闭思考过程
  --models-max 3 \
  --host 0.0.0.0 \
  --port 8080 \
  -c 8192
  --threads 22 \    # 线程数不是越多越好,自行测试
  --threads-batch 16 \  # prompt 编码阶段的并行线程数,可以不要
  --batch-size 512 \  # 一次处理的token数量,加速长prompt的首token响应,可以不要
  --ubatch-size 512 \ # 内部矩阵运算的分块大小,配合batch-size使用,可以不要
  --numa distribute \ # 双路CPU必加。将计算均匀分配到两个CPU节点,避免跨节点内存访问瓶颈,虚拟机注意CPU配置选host,开启numa
  --mlock  # 将模型锁定在物理内存中,防止被系统换出到 swap

# 网页访问webui地址
http://IP:8080
配置防火墙放行8080端口 ```bash sudo ufw enable #启动防火墙 sudo ufw allow 8080/tcp 放行8080端口 sudo ufw reload ```
  1. 配置 systemd 开机自启服务
# 创建服务文件
sudo vi /etc/systemd/system/llama-server.service

# 写入以下内容
[Unit]
Description=llama.cpp server - multi model router
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
WorkingDirectory=/root/llama.cpp/build
Environment="PATH=/usr/local/bin:/usr/bin:/bin"
ExecStart=/root/llama.cpp/build/bin/llama-server --models-dir /root/llama.cpp/models --models-max 3 --host 0.0.0.0 --port 8080 -c 8192 --chat-template-kwargs '{"enable_thinking":false}' --threads 22 --numa distribute --mlock
Restart=always
RestartSec=5
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target

# 加载并启用服务
sudo systemctl daemon-reload
sudo systemctl enable llama-server    # 设置开机自启
sudo systemctl start llama-server     # 立即启动
sudo systemctl status llama-server    # 查看状态
  1. 日常运维常用命令
# 查看服务状态
sudo systemctl status llama-server

# 重启服务
sudo systemctl restart llama-server

# 停止服务
sudo systemctl stop llama-server

# 查看实时日志
sudo journalctl -u llama-server -f

# 查看最近50行日志
sudo journalctl -u llama-server -n 50 --no-pager

# 取消开机自启
sudo systemctl disable llama-server
    上一篇 没有了 下一篇 rocky linux9.8从零编译、部署llama.cpp
    评论
    评论已关闭