
llama.cpp 是由 Georgi Gerganov 于 2023 年 3 月发布的开源大模型推理引擎,用纯 C/C++ 实现,无任何外部依赖。核心目标是”在各类硬件上以最小配置实现最先进性能的大模型推理”。发明了 GGUF 模型格式(2023 年 8 月),现已成为本地 LLM 分发的通用标准。支持 Llama、Mistral、Gemma、DeepSeek、Qwen、Phi 等 50+ 模型架构,1.5-bit 到 8-bit 整数量化。提供 llama-cli(命令行交互)、llama-server(OpenAI 兼容 API 服务)、llama-bench(性能测试)、llama-quantize(量化工具)等全套工具链。MIT 协议,免费使用、修改和分发。
产品概述
llama.cpp 最初只是作者想在 MacBook 上跑 Meta Llama 模型的一个周末项目,如今已成为整个本地 LLM 生态的基石——Ollama、LM Studio、Jan、AnythingLLM 等几乎所有本地工具都将其作为核心推理后端。技术上,llama.cpp 基于自研的 ggml 张量库,通过 AVX/AVX2/AVX512/NEON 等 SIMD 指令集做汇编级优化,在 CPU 上达到极致性能;同时原生集成 CUDA、ROCm、Metal、Vulkan、OpenCL、SYCL 等 GPU 后端。
2025-2026 年的重要更新包括:llama-server 从简单 HTTP 服务扩展为完整 OpenAI 兼容 API 服务端(支持 chat/completions、embeddings、rerank、function calling、speculative decoding、多模态等);2026 年 4 月合并 NVFP4 量化支持 Blackwell 架构;同月引入后端无关的张量并行(通过 NCCL/RCCL),多 GPU 吞吐提升 3-4 倍;Hugging Face 缓存迁移使 llama.cpp 下载的模型可与其他 HF 工具共享。安装体积小于 90MB,无云依赖,无账号要求,数据不出本机。
核心能力
- 模型推理:
llama-cli命令行交互,llama-server提供 OpenAI 兼容 API - 量化工具:
llama-quantize支持 1.5-bit 到 8-bit 整数量化,Q4_K_M 为 7B 模型默认推荐 - GGUF 转换:
convert_hf_to_gguf.py将 PyTorch/SafeTensors 模型转为 GGUF 格式 - 混合推理:模型超出显存时自动将层拆分到 CPU+GPU,优雅降级
- 多后端执行:Metal/CUDA/HIP/Vulkan/SYCL/OpenCL/CPU BLAS 全支持,单一二进制可通过
--device运行时选择 - 多模态:
llama-mtmd-cli统一多模态接口(2026 年 4 月新增,替代 llava-cli 等) - 高级功能:function calling、MCP 工具调用、schema 约束的 JSON 输出、speculative decoding、continuous batching
优势亮点
- 纯 C/C++ 实现,无外部依赖,可编译到任何平台(含树莓派、手机、路由器)
- 量化技术最成熟:GGUF 格式 + 1.5-8bit 量化,7B 模型 Q4_K_M 仅占 4.5GB 且质量损失可忽略
- 硬件兼容性最广:Apple Silicon/CPU/NVIDIA/AMD/Intel/摩尔线程/Vulkan 全都支持
- 是整个本地 LLM 生态的底层引擎,Ollama/LM Studio/Jan 都基于它
- MIT 协议,完全免费,可商用
- 2026 年 4 月新增 NVFP4 量化,Blackwell GPU(RTX 5090/B200)获得原生张量核心加速
- 多 GPU 张量并行:NCCL/RCCL 后端无关实现,相比旧的层划分方式吞吐提升 3-4 倍
- Hugging Face 直接集成:
llama-cli -hf repo/model一行命令下载并运行
短板
- 学习曲线陡峭:需要编译或熟练使用命令行,不适合非技术用户(这也是 Ollama/LM Studio 存在的价值)
- 高并发服务能力弱:相比 vLLM,llama.cpp 在连续批处理和多请求并发上性能差距明显,不适合生产级高并发
- 多 GPU 效率不及 vLLM:虽有张量并行,但模型拆分效率仍不如 vLLM 的 PagedAttention
- 量化控制过于精细:对新手是负担,需要理解 Q4_K_M/Q5_K_M/IQ2_XS 等量化类型的取舍
- 纯 CPU 跑大模型极慢:70B 模型纯 CPU 推理可能只有 1 token/s 级别
- 无图形界面:需要自行搭配前端(如 Open WebUI)才能获得聊天体验
适用人群
开发者、需要最大控制力的进阶用户、边缘/嵌入式设备部署、下游工具开发者(基于其做二次开发)、需要在非标准硬件(ARM、旧 GPU、树莓派)上跑模型的用户、量化研究者。
安装与快速开始
Step 1:安装 llama.cpp
macOS(Homebrew):
brew install llama.cpp
Windows(winget):
winget install llama.cpp
Linux(包管理器):
# Ubuntu/Debian sudo apt install llama.cpp
从源码编译(获取最新特性):
git clone https://github.com/ggml-org/llama.cpp cd llama.cpp cmake -B build cmake --build build --config Release -j$(nproc)
Docker:
docker pull ghcr.io/ggml-org/llama.cpp:full
Step 2:下载并运行模型(命令行交互)
直接从 Hugging Face 下载并运行(推荐):
llama-cli -hf ggml-org/gemma-3-1b-it-GGUF
使用本地 GGUF 文件:
llama-cli -m ./my_model.gguf
指定量化版本(以 Q4_K_M 为例):
llama-cli -hf ggml-org/Llama-3.3-70B-Instruct-GGUF:Q4_K_M
Step 3:启动 API 服务
llama-server -hf ggml-org/gemma-3-1b-it-GGUF
服务默认在 http://localhost:8080 启动,提供 OpenAI 兼容 API。
Step 4:调用 API(任选一种方式)
curl 调用:
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "gemma-3-1b-it",
"messages": [{"role": "user", "content": "Hello!"}]
}'
Python 调用:
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:8080/v1",
api_key="sk-no-auth" # 本地无需真实 key
)
response = client.chat.completions.create(
model="gemma-3-1b-it",
messages=[{"role": "user", "content": "你好"}]
)
print(response.choices[0].message.content)
Step 5:(可选)模型量化
如果你有 HuggingFace 原始模型,转为 GGUF 并量化:
# 转换为 GGUF 格式 python convert_hf_to_gguf.py ./models/7B/ # 量化为 Q4_K_M ./llama-quantize ./models/7B/ggml-model-f16.gguf ./models/7B/ggml-model-q4_k_m.gguf Q4_K_M
量化类型选择参考:
| 量化类型 | 位数 | 适用场景 |
|---|---|---|
| Q4_K_M | ~4.5 bpw | 默认推荐,质量与体积最佳平衡 |
| Q5_K_M | ~5.3 bpw | 质量优先 |
| Q8_0 | 8 bpw | 近无损,需大内存 |
| IQ2_XS | ~2.3 bpw | 极致压缩,质量损失明显 |
硬件配置参考
- 7B Q4_K_M 模型:4.5GB 内存,Apple Silicon 上 40+ tokens/s
- 13B Q4 模型:8GB 内存
- 70B Q4 模型:约 40GB 内存(需 CPU+GPU 混合推理)
- 纯 CPU 推理可行但速度较慢;Apple Silicon/RTX 4090 可获最佳体验
- 24GB RTX 4090 可流畅运行 32B Q4
最佳实践:消费级硬件首选 Q4_K_M 量化;超出显存时 llama.cpp 自动将层拆分到 CPU,优雅降级;多 GPU 用户可通过 NCCL/RCCL 启用张量并行提升吞吐;Blackwell GPU(RTX 5090/B200)建议用 b8967+ 版本启用 NVFP4 原生加速。
相关导航


LM Studio

PocketPal AI

Ollama

vLLM

LocalAI

MLC LLM

