1. 环境准备:从零开始的硬件与软件栈
llama.cpp 是一个用 C/C++ 编写的轻量级推理引擎,能将 Hugging Face 上的大型模型转换为 GGUF 格式,在 Mac、Windows 或 Linux 系统的 CPU 及 GPU 上实现本地推理。本文介绍从环境准备到跨平台高效推理的完整流程,重点分享在不同硬件下的部署差异及性能调优。
在开始动手之前,先理清需要准备的东西。硬件需求主要包括三种情况:纯 CPU、苹果电脑的 Metal(Apple Silicon M 系列芯片),或者带有 NVIDIA 显卡的电脑。软件栈主要围绕 llama.cpp 的编译环境。对于大多数 Linux 和 macOS 用户,系统自带的终端和包管理器(如 apt、brew)即可。Windows 用户推荐使用 WSL2(Windows Subsystem for Linux),以提供原生 Linux 环境并避免兼容性麻烦。
注意:无论你选择哪种硬件路径,第一步都是确保你的系统有基础的编译工具链。打开终端,输入
gcc --version或clang --version看看,如果没有,就用sudo apt install build-essential(Ubuntu)或xcode-select --install(macOS)来安装。
2. 编译 llama.cpp:针对不同硬件的'定制化'构建
获取 llama.cpp 源代码后,需根据硬件环境进行编译,生成适合当前机器的可执行文件。
2.1 获取源代码与基础准备
首先克隆仓库。打开终端,执行以下命令:
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
接下来需要编译工具 make。通常 Linux 系统已自带,若无则使用 sudo apt install make 安装。macOS 用户若安装了 Xcode Command Line Tools,也会包含 make。为确保万无一失,还需安装 cmake 和 pkg-config。
# Ubuntu/Debian
sudo apt update && sudo apt install build-essential cmake pkg-config
# macOS (使用 Homebrew)
brew install cmake pkg-config
准备工作就绪,现在进入关键环节:针对不同硬件编译。
2.2 CPU 版本编译:最通用的起点
CPU 版本是兼容性最广的,它不依赖任何特殊的图形 API,完全依靠中央处理器进行计算。编译命令如下:
make
该命令会调用 Makefile,自动检测系统环境,编译出纯 CPU 版本的可执行文件,如 main、llama-cli、llama-server 等。编译完成后,运行 ./llama-cli -h 查看帮助信息确认成功。对于只是想体验或硬件无 GPU 的用户来说,这一步就够了。但 CPU 推理速度相对较慢,尤其是大模型,若有 GPU 建议继续配置加速。
2.3 Metal (Apple Silicon) 版本编译:榨干苹果芯片的性能
如果你使用的是搭载 M1、M2、M3 等 Apple Silicon 芯片的 Mac,Metal Performance Shaders (MPS) 是性能利器。它允许计算任务直接跑在强大的集成 GPU 上。编译时,我们需要显式地启用 Metal 支持。
make GGML_METAL=1

