在 VPS 上使用 LLaMA.cpp 搭建本地运行大语言模型环境

一开始选型的是 Ollama 这个工具套件的,而且也是想着在手机上部署来使用,可惜的就是没有折腾成功的说。

之所以会折腾自己编译,主要是因为自己没有打开下拉,错误下载了一个欧拉版本的二进制包,看着运行运行库的问题“百思不得其解”。眼看如此就决定尝试编译一个“适合的”版本,反正都打算在手机上部署的,就干脆在 Linux 上准备编译安卓上用的版本,在编译的时候发现这编译用的配置太低,老是在编译到90%左右的ui.cpp这一步被杀进程。多次尝试无果后才毅然发现,我特么没有展开 Github 发布页的列表,全部展开后终于发现“心心念的” Linux 二进制可执行安装包。

介绍

llama.cpp 是一个用 C/C++ 编写的大语言模型推理框架,目标是在消费级硬件上高效运行 LLM。它支持 macOS、Linux、Windows 以及各种 GPU 加速后端,是目前最流行的本地 AI 推理工具之一。

安装

二进制可执行文件安装

下载

大部分设备只需在 Github 下载好编译好的二进制可执行文件即可,根据具体的设备类型选择对应的下载链接。

  • 比如我是在 X86_64 的虚拟服务器上部署的,则下载:
    wget https://github.com/ggml-org/llama.cpp/releases/download/b9245/llama-b9245-bin-ubuntu-x64.tar.gz
    
  • 解压:
    tar -zxvf llama-b9245-bin-ubuntu-x64.tar.gz
    
  • 移动到对应目录:
    mv llama-b9245 /usr/local/llama
    

编译安装

拉取仓库

git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp

编译

CPU构建

使用以下方法构建lama.cpp:

cmake -B build
cmake --build build --config Release
  • 为了更快地编译,请添加以下内容-j并行运行多个作业,或使用一个自动执行此操作的生成器(如 Ninja)。例如:
    cmake --build build --config Release -j8
    

    将同时运行8个编译线程。

  • 为了更快的重复编译,安装 ccache
  • 对于调试构建,有两种情况:
    • 单配置生成器
      例如,默认值=Unix Makefiles,注意,他们只是忽略了--config

      cmake -B build -DCMAKE_BUILD_TYPE=Debug
      cmake --build build
      
    • 多配置生成器
      -G参数设置为Visual Studio、XCode…

      cmake -B build -G "Xcode"
      cmake --build build --config Debug
      
  • 对于静态构建,添加-DBUILD_SHARED_LIBS=OFF
    cmake -B build -DBUILD_SHARED_LIBS=OFF
    cmake --build build --config Release
    
  • 更多请参考官网文档……

BLAS 构建

构建支持BLAS的程序可能会在使用大于32的批量大小(默认是512)的提示处理时带来一些性能改进。使用BLAS不会影响生成性能。目前有几种不同的BLAS实现可供构建和使用:

Metal Build

SYCL

CUDA

MUSA

HIP

Vulkan

CANN

ZenDNN

Arm® KleidiAI™

OpenCL

Android

OpenVINO

Notes about GPU-accelerated backends

注册成 service 服务

编写注册成 service 服务以便于 Llama 的启动/重启/停止等操作。

service文件内容如下:

[Unit]
Description=Llama Large Language Model Inference Server
After=network-online.target

[Service]
ExecStart=/usr/local/llama/llama-server -c 2048 -b 2048 -t 1 -np 1 -n 4096 --temp 0.7 --top-k 20 --top-p 0.6 --repeat-penalty 1.05 --no-warmup --host 127.0.0.1 --port 11456 --api-key tk_www.cyzwb.com  --log-file /var/log/llama-server.log --log-verbose --log-prefix --log-timestamps
User=llama
Group=llama
Restart=always
RestartSec=3
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

[Install]
WantedBy=default.target

部署步骤

创建专用运行用户

useradd -r -s /sbin/nologin llama

创建必要目录并设置权限

mkdir -p /home/llama/
chown -R llama:llama /usr/local/llama/ /home/llama/

安装服务文件

将上述配置保存为llama-server.service

nano /etc/systemd/system/llama-server.service

重新加载systemd配置

systemctl daemon-reload

使用

启动一个模型

sudo -u llama /usr/local/llama/llama-cli -hf ggml-org/gemma-3-1b-it-GGUF

这将在命令行启动一个交互式的使用大模型的界面。

体验

很好可以使用,就是受限于配置的原因速度不是很理想……吃得咸鱼抵得渴的话还是能接受的!

参考

  • LLM inference in C/C++https://github.com/ggml-org/llama.cpp
  • LLaMA.cpphttps://llama-cpp.com/

ChiuYut

2026年05月20日

发布者

ChiuYut

咦?我是谁?这是什么地方? Ya ha!我是ChiuYut!这里是我的小破站!