llama.cpp 本地部署大模型实战指南
什么是 llama.cpp
llama.cpp 是由 Georgi Gerganov 开发的高性能 C++ 库,旨在各种硬件上以最少配置实现大型语言模型的推理。它不仅是运行引擎,更是连接模型与硬件的桥梁。
核心特性
- 纯 C/C++ 实现:无外部依赖,移植性极强。
- 硬件优化:对 Apple Silicon(M1/M2/M3)提供 Metal/NEON 支持;x86 架构支持 AVX/AVX512;GPU 支持 CUDA、HIP、Vulkan 及 SYCL。
- 量化支持:涵盖 1.5 位至 8 位整数量化,显著降低内存占用并提升推理速度。
- 混合推理:支持 CPU+GPU 协同,可处理超出显存容量的模型。
LLaMA、llama.cpp 与 Ollama 的区别
这三个概念常被混淆,其实它们各司其职:
- LLaMA:Meta 开发的开源基础模型系列(如 LLaMA 2、3),是训练好的权重文件,相当于'大脑'。
- llama.cpp:C++ 推理引擎,专注于在消费级硬件上高效加载和运行 LLaMA 模型,相当于'引擎'。
- Ollama:基于 llama.cpp 封装的应用程序,提供 CLI 和 API,简化了模型管理与使用,相当于'应用层'。
简单来说,LLaMA 是模型本身,llama.cpp 是运行它的引擎,而 Ollama 是让普通人也能轻松使用的工具。
GGUF 格式简介
GGUF(GPT-Generated Unified Format)是专为 llama.cpp 设计的二进制格式,取代了早期的 GGML。其优势在于:
- 高效加载:利用内存映射技术加速载入。
- 自包含:文件内集成架构与超参数,无需额外依赖。
- 可扩展:支持在不破坏兼容性的前提下新增元数据。
Mac M1 环境部署
在 Mac 设备上,借助 Homebrew 可以最快地体验 llama.cpp 的性能。
安装步骤
直接使用 brew 安装即可:
brew install llama.cpp
下载模型
前往 Hugging Face 下载 GGUF 格式的模型文件。例如 Llama-3.2-3B-Instruct:
https://huggingface.co/bartowski/Llama-3.2-3B-Instruct-GGUF/blob/main/Llama-3.2-3B-Instruct-Q8_0.gguf
运行推理
将模型文件下载到当前目录后,执行以下命令启动交互:
llama-cli -m Llama-3.2-3B-Instruct-Q8_0.gguf
启动后会显示系统检测到的硬件信息,包括 Metal 图形计算支持和 ARM NEON 优化情况。在命令行中直接输入问题即可看到回复。得益于 Apple Silicon 的优化,M1 芯片上的推理速度非常快,基本能秒出结果。
Linux 环境部署
对于 Linux 服务器,通常需要从源码编译以获得最佳兼容性。


