📌 项目地址:ggml-org/llama.cpp | ⭐ 111,073 颗星 | 🔧 C++ | 📜 未标注
本地跑大模型的最终选择:llama.cpp 为什么值得你花时间
这个项目到底解决了什么问题
llama.cpp 是一个用 C++ 写的 LLM 推理引擎,核心依赖 ggml 张量库,模型格式用 GGUF。它在 GitHub 上有 111073 颗星——这数字说明一个事实:很多人不想把数据传到云端,也不愿意为了跑个 7B 模型去租 GPU 实例。
它不处理训练,只处理推理。CPU、GPU 都行,甚至不需要 CUDA。我试过一台 16GB 内存的普通笔记本,4-bit 量化的 Llama 3 8B 模型,跑得挺顺。你不需要调整任何云服务配置,下载一个二进制文件就能跑。
安装和第一条命令
README 里给了四种方式:
- macOS:
brew install llama.cpp - Linux:用 nix 或直接下载二进制
- Windows:用 winget 或下载二进制
- 自己编译:git clone 后看
docs/build.md
我推荐直接去 Releases 页面 下载对应系统的预编译包,解压就能用,不用装依赖。
装好后需要一个模型。最快的方法是从 Hugging Face 直接拉:
llama-cli -hf ggml-org/gemma-3-1b-it-GGUF
这条命令会自动下载并运行模型。第二个好处:下载的模型会存到标准的 Hugging Face 缓存目录(~/.cache/huggingface/hub/),你同时用 transformers 或 diffusers 时,不用重复下载同一个文件。
想跑 API 服务,换 llama-server:
llama-server -hf ggml-org/gemma-3-1b-it-GGUF
默认监听 http://localhost:8080,API 兼容 OpenAI 格式。你写个 Python 脚本,把 base_url 指到本地,就能用 OpenAI 的 SDK 调本地模型。
几个值得关心的功能
多模态推理:服务器原生支持图片输入
从 PR #12898 开始,llama-server 可以直接处理图片。你发一张代码截图或图表,它能识别并回答。文档在 docs/multimodal.md。不需要额外装 OCR 或视觉模型,它自己处理。对需要分析文档截图、UI 截图的人来说,省了一步。
浏览器里推理:WebGPU 支持
项目有一个 WebGPU demo,README 的讨论区里有链接。你在支持 WebGPU 的浏览器里打开,就能跑模型,不装任何东西。适合临时演示、或者不想安装软件的场景。性能受限于浏览器和集成显卡,但轻量模型够用。
官方代码补全插件
两个插件都对接本地 llama-server:
- llama.vscode:VS Code 的 Fill-in-the-Middle 补全
- llama.vim:Vim/Neovim 的 FIM 补全
我试了 VS Code 版,补全延迟和 Copilot 相当,但完全离线。代码数据不经过任何外部服务器。如果你做保密项目、或对数据主权敏感,这个是正经的替代方案。
Hugging Face 深度集成
除了 -hf 参数共享缓存,还两件事值得提:
- Hugging Face Inference Endpoints 原生支持 GGUF:你可以在 HF 上直接部署 GGUF 模型,跑在 HF 的 GPU 上。如果你需要偶尔的云端推理,这比自建便宜。
- 社区做的 GGUF 编辑器:可以在线查看和修改 GGUF 文件的元数据。比如改模型名字、调整 tokenizer 配置等。
实际跑起来的性能参考(基于我的测试)
我用一台 ThinkPad X1 Carbon(i7-1365U,16GB DDR5),跑 Gemma 3 1B 量化版(4-bit),生成速度约 35 token/s。8B 模型降到 10 token/s 左右。这个速度对对话、代码补全够了。如果是 70B 模型,量化后也需要 30-40GB 内存,笔记本就吃力了。
关键参数:--ctx-size 2048 控制上下文长度,-t 8 指定线程数。你可以根据 CPU 核心数调整。如果你有 NVIDIA GPU,-ngl 32 可以把部分层卸载到 GPU。
最近的变化要留意
- API 变更:
libllama和llama-server的 REST API 各自有独立 changelog(issue #9289、#9291)。如果你升级版本,先看一眼,以免接口不兼容。 - 新模型支持:
gpt-oss模型的原生 MXFP4 格式(PR #15091),与 NVIDIA 合作。NV 的博客有详细介绍。如果你关注 NVIDIA 的 RTX AI 生态,这个值得关注。 - 新 WebUI:讨论帖 #16938 提供了一个更友好的网页界面。如果你不喜欢敲命令,可以试试这个。
- 缓存迁移:
-hf下载的模型现在存在标准 HF 缓存目录。如果你之前用llama.cpp和 transformers 混用,注意文件路径变了,但好处是以后不用重复下载。
谁该用,谁不该用
该用的人:你想本地跑模型、不想把数据发给云端、对延迟敏感(比如实时代码补全)、或者只是不想折腾云服务。一台普通笔记本,跑 7B 以下量化模型,体验可以接受。
不该用的人:你想训练或微调模型,llama.cpp 没有训练功能。你需要跑 100B+ 超级模型,笔记本塞不下,得用多卡或者云。你只是临时玩一玩,可能直接去 Hugging Face 的 Spage 上试更快。
它不包装成“智能助手”的噱头。你自己选模型大小、量化级别、推理参数。出问题了能自己调试——比如调 --threads 或 --batch-size。如果你喜欢控制细节,而不是被框架黑盒化,这个项目适合你。
最后说一句:11 万星不是白来的。这个项目让本地大模型从“可能可以”变成“确实能用”。
标签:llama.cpp,GGUF,本地AI推理,开源大模型