llama.cpp 是一个用 C++ 编写的 轻量级、跨平台的 LLM(大语言模型)推理框架,最初由 Georgi Gerganov 开发。它的主要目标是:
让 Meta 的 LLaMA 模型(以及后续各种开源大模型)能在 普通电脑甚至手机上本地运行,不依赖 GPU。
一、核心特点
-
纯 C/C++ 实现,无需 GPU
- 不依赖 CUDA、PyTorch 等库,只需 CPU。
- 在 Mac、Windows、Linux 都可直接运行。
- 对 Apple M 系列芯片(Metal API)支持特别好。
-
高效量化 (Quantization)
-
llama.cpp 支持多种量化格式(如 Q2、Q4、Q5、Q6、Q8)。
-
量化可极大减小模型体积,例如:
原始 LLaMA-7B 约 13GB,量化后可降至 3~4GB。
-
牺牲少量精度,换取巨大的内存和速度提升。
-
-
跨平台 & 简易运行
- 可直接通过命令行运行
.gguf模型文件。 - 支持 Web UI(通过扩展如 llama.cpp + text-generation-webui)。
- 也能作为后端给 ChatGPT 前端风格的界面使用。
- 可直接通过命令行运行
-
多模型支持
除了 LLaMA/LLaMA 2/LLaMA 3,还支持:- Mistral、Mixtral、Phi-2、Gemma、Yi、Qwen、ChatGLM 等。
- 支持新通用模型格式 GGUF(替代早期的 GGML)。
-
嵌入式推理
- 可用于桌面应用、本地搜索、插件或边缘设备。
- 被广泛集成到项目中,如 Ollama、LM Studio、GPT4All 等。
二、基本运行流程
-
下载模型(GGUF 格式)
- 模型来源如:
👉 Hugging Face
👉 Ollama
- 模型来源如:
-
编译 llama.cpp
git clone https://github.com/ggerganov/llama.cpp cd llama.cpp make -
运行模型
./main -m ./models/llama-2-7b.Q4_K_M.gguf -p "Hello, world!" -
交互模式
./main -m ./models/llama-2-7b.Q4_K_M.gguf -i输入指令即可与模型聊天。
三、关键组件简介
| 模块 | 功能 |
|---|---|
ggml | 底层张量计算库,支持量化、矩阵运算 |
gguf | 模型权重文件格式(替代旧的 ggml.bin) |
main.cpp | 命令行推理入口 |
examples/ | 提供不同语言接口示例(如 C、Python、Go) |
bindings/ | 各语言绑定,如 Python、Rust、JavaScript |
四、生态系统与应用
| 项目 | 基于 llama.cpp 的用途 |
|---|---|
| Ollama | 提供桌面友好的本地模型加载器 |
| LM Studio | GUI 版本,支持可视化选择模型 |
| GPT4All | 提供统一接口管理多个本地模型 |
| koboldcpp | 游戏/角色扮演聊天引擎 |
| llama-cpp-python | Python 封装版,方便嵌入应用开发 |
五、性能示例(以 MacBook M2 为例)
| 模型 | 量化 | 速度 (tokens/s) |
|---|---|---|
| LLaMA 2 7B | Q4_K_M | ~25 |
| Mistral 7B | Q4_K_M | ~22 |
| Phi-2 | Q8_0 | ~35 |
实际速度依 CPU、线程数和上下文长度而异。
六、总结一句话
llama.cpp = 在你自己的电脑上运行 LLM 的最轻量框架。
无需云端,无需显卡,一切本地完成。
下一篇: llama.cpp 与 Ollama 的区别与关系?
可以更清楚理解两者在本地运行 LLM 时的分工。
914

被折叠的 条评论
为什么被折叠?



