
llama.cpp
纯 C/C++ 实现的大模型推理开源
关于 llama.cpp
llama.cpp 是一个用 C/C++ 写成、几乎不依赖第三方库的大模型推理引擎,能把量化后的开源模型跑在笔记本、台式机、手机乃至服务器上。它既是命令行工具和兼容 OpenAI 接口的本地服务器,也是 GGUF 模型格式和 ggml 张量库的发源地;Ollama、LM Studio 等大量本地 AI 应用都在底层用到它。2026 年 2 月,背后的公司 ggml.ai 加入 Hugging Face,项目仍以 MIT 许可证开源。
llama.cpp 界面截图
它解决什么问题
大模型通常默认跑在昂贵的数据中心 GPU 上,依赖 Python、PyTorch 和 CUDA 这一整套环境。llama.cpp 要解决的是另一件事:让模型在用户手上已有的硬件上跑起来。README 写明的目标是以最少的配置、在尽可能多的硬件上做到最好的推理性能。
做法有三点。第一,纯 C/C++ 实现、没有外部依赖,编译出来就是几个可执行文件。第二,使用整数量化:支持 1.5、2、3、4、5、6、8 位整数量化,把模型体积和内存占用压下来,代价是一定的精度损失。第三,硬件覆盖:苹果芯片是「一等公民」,用 ARM NEON、Accelerate 和 Metal 优化;x86 上支持 AVX、AVX2、AVX512 和 AMX;英伟达显卡有自定义 CUDA 内核,AMD 走 HIP,摩尔线程走 MUSA,此外还有 Vulkan、SYCL、CANN、OpenCL、WebGPU 等后端。显存不够时,可以 CPU 和 GPU 混合推理,把放不下的层留在内存里。
它的底层是同一团队维护的 ggml 张量库,模型文件格式是 GGUF。Hugging Face 上大量开源模型都提供 GGUF 版本,命令行一条参数就能直接从 Hugging Face 下载并运行。
2023 年 3 月 10 日,开发者 Georgi Gerganov 发布了第一版,当天的 README 写着目标是「在 MacBook 上用 4 位量化运行 LLaMA 模型」,还写道「这是一个晚上赶出来的,我也不确定它是否正确」。那一版只支持 CPU,混合使用 F16 和 F32 精度,作者只测过 7B 模型,并写明生成 30 到 40 个词元后质量通常会下降。此后项目从个人仓库迁到 ggml-org 组织下。
ggml 是这一切的地基。ggml.ai 官网把它介绍为「面向边缘的 AI」张量库,同时支撑 llama.cpp 和语音识别项目 whisper.cpp;列出的设计原则包括底层跨平台实现、整数量化、广泛的硬件支持、没有第三方依赖、运行时零内存分配,以及「尽可能让代码库小而简单」。官网还写道,项目鼓励贡献者尝试疯狂的想法、做大胆的演示。
谁做的:ggml.ai 官网介绍,这家公司由 Georgi Gerganov 于 2023 年创立,用来支持 ggml 和 llama.cpp 的开发,Nat Friedman 和 Daniel Gross 提供了种子前融资。2026 年 2 月 20 日,ggml.ai 在 GitHub 讨论区和 Hugging Face 博客同时宣布加入 Hugging Face,公告写明项目继续开源,仍由原来的维护者带领。公告称团队在技术方向上保有完全的自主权和主导权,项目将继续「100% 开源、由社区驱动」;仓库的 LICENSE 文件仍是 MIT。ggml.ai 官网的措辞则是「2026 年被 Hugging Face 收购」。Georgi Gerganov 现任职于 Hugging Face(GitHub 个人资料)。博文署名的作者中还有 Hugging Face 工程师 Xuan-Son Nguyen 和 Aleksander Grygier,两位此前就是项目的核心贡献者。
版本节奏在 2026 年有了变化。过去项目只发 b 开头的开发构建。官方把它们叫作 nightly,但并不是一天一个:b 后面的数字就是该提交在 master 分支上的提交序号,合并一次就可能出一个构建。例如 2026-10-25 的 b11869,对应 master 上第 11,869 个提交。从 2026 年 8 月 17 日的 v0.1.0 起,项目另外打语义化版本的正式版标签,标签打在某个 nightly 的同一提交上(例如 v0.7.0 与 b11669 是同一个提交)。截至 2026-10-25 的正式版:v0.1.0 和 v0.1.1(都在 8 月 17 日,只有标签、没有 Release 条目)、v0.1.2(8 月 18 日,Release 条目标为 Pre-release)、v0.2.0(8 月 22 日)、v0.3.0(8 月 25 日)、v0.4.0(9 月 5 日)、v0.4.1(9 月 15 日)、v0.5.0(9 月 24 日)、v0.6.0(10 月 6 日),最新是 10 月 16 日的 v0.7.0。
llama.cpp 的主要目标,是在各种硬件上,无论本地还是云端,以最少的配置和最先进的性能实现大模型(以及视觉语言模型)推理。
核心能力
一条命令下载并运行。 安装后,llama cli -hf ggml-org/Qwen3.5-0.8B-GGUF 会直接从 Hugging Face 拉取模型并开始对话;llama serve 则启动一个兼容 OpenAI 接口的服务器,自带网页聊天界面。v0.7.0 的网页界面加入了完整的模型管理器;服务器端重构了对话会话接口,改进了槽位和提示词缓存的恢复行为,并把 ggml 升级到 v0.27.0。
多种安装方式。 README 列出了脚本安装(curl -LsSf https://llama.,Windows 用 PowerShell 脚本)、winget、Homebrew、Docker、预编译二进制和源码编译。
量化与 GGUF。 1.5 位到 8 位的整数量化,加上 GGUF 单文件格式,让 7B、13B 级别的模型可以在普通笔记本上运行。量化级别越低,体积越小,精度损失越大。
多后端。 除 CPU 外,README 列出 Metal、CUDA、HIP、MUSA、Vulkan、SYCL、CANN、Hexagon、OpenCL、WebGPU、ZenDNN、zDNN、VirtGPU、BLAS 和 RPC 等后端,OpenVINO 仍在开发中。RPC 后端可以把推理分摊到多台机器上。
推理加速。 v0.7.0 加入了 LiliCorr 投机解码(在 DFlash 之上用小型草稿模型筛选候选),以及 GLM5-Next 的 MTP 投机解码;MoE 专家的 GPU 缓存可以在多块 GPU 之间共享。
官方桌面客户端。 llama.app 是 Mac 菜单栏和 Windows 托盘应用,官网标注「由 llama.cpp 团队和 Hugging Face 出品」,下载约 1 MB,免费、开源、可离线使用。它会根据所在机器的配置推荐合适的模型,模型存放在 Hugging Face 缓存里与其他工具共用,有程序请求时才加载、空闲 5 分钟自动卸载。官网示例中,16 GB 内存及以上的机器推荐从 Gemma 4 起步。它同时在 localhost:9931 提供兼容 OpenAI 的本地接口,编程代理、编辑器和脚本可以直接接入。
和同类比
Ollama:一个 Go 写的本地模型运行器,MIT 许可证,GitHub 约 18.5 万星(2026-10-25)。它封装了模型的下载、运行和接口。
LM Studio:Element Labs 公司出品的图形界面桌面应用,官网写明运行时底层用的是 MLX 和 llama.cpp。它提供图形界面和模型浏览;llama.cpp 的代码开源,可以嵌入其他产品。
vLLM:Apache-2.0 许可证,Python 为主,GitHub 约 9.5 万星,面向 GPU 服务器的高吞吐推理。vLLM 主要面向数据中心里的大量并发请求;llama.cpp 主要面向个人设备、边缘设备和非英伟达硬件。
MLX(mlx-lm):苹果机器学习团队的框架及其语言模型工具,MIT 许可证,只面向苹果芯片。它面向只在 Mac 上运行、使用 MLX 格式模型或做微调的场景;llama.cpp 则用同一套流程覆盖 Mac、Windows 和 Linux。
官方 llama.app:这个官方客户端提供图形界面,同时紧跟 llama.cpp 上游更新;它的菜单里直接显示所用的 llama.cpp 构建号(官网示例为 b9726),模型和命令行版共用同一个缓存。服务器部署、脚本化和嵌入产品仍由命令行版和库承担。
Ollama、LM Studio、vLLM、MLX 和 llama.app 都免费开源或免费下载。
谁在用,适合谁
采用数据(截至 2026-10-25):GitHub 主仓库 132,254 星、24,772 个复刻。GitHub 贡献者 API 含匿名提交者时返回 2,169 条记录,关联到 GitHub 账号的为 446 个;GitHub 文档写明,这个接口只把仓库里前 500 个提交邮箱关联到账号,其余算作匿名。仓库创建于 2023-03-10,2026-10-25 当天仍有推送。README 顶部的「维护者 PR」链接列出了维护者的 GitHub 账号,创始人 Georgi Gerganov 是其中之一。官方客户端的两个仓库 Llama-macOS 和 Llama-Windows 在 llama.app 页面上分别显示约 1.7K 和 270 星。
适合谁
想在自己电脑上离线跑开源模型、又在意隐私的个人。苹果芯片的 Mac 上 Metal 加速开箱即用。
需要把模型嵌进自己产品的开发者。它以库的形式提供 C API,没有 Python 依赖,便于打包进桌面应用、移动应用或嵌入式设备。
硬件不是英伟达的用户。AMD、Intel、摩尔线程、华为昇腾(CANN)、高通 Hexagon 以及只有 Vulkan 驱动的显卡,都能找到对应后端;RISC-V 处理器也有 RVV 等向量指令扩展的优化,适合做嵌入式和边缘设备实验。
显存不够但想跑大模型的人。CPU 和 GPU 混合推理可以把一部分层放在内存里;v0.7.0 新增的 --moe- 参数,能把放在内存里的 MoE 专家缓存到 GPU 上,官方称解码速度最高可提升约 2.2 倍。
想快速试新模型的研究者和爱好者。新架构往往很快获得支持,v0.7.0 一次就加入了 K2 Horizon、Prism Bonsai 2 27B、EmbeddingGemma-2、MiniCPM-V 4.7、Nemotron 等模型。
不适合谁
要在数据中心里给大量并发用户提供服务的团队。高吞吐的批量推理通常更适合 vLLM 这类专门为 GPU 集群设计的引擎。
只想点几下就用上的普通用户。llama.cpp 的主体仍是命令行;官方的 llama.app 客户端提供不需要命令行的入口。
不愿意自己管安全边界的人。它的 RPC 后端和服务器出过多个严重漏洞。
上手路径
最快的方式是官方脚本:在 macOS 或 Linux 终端运行 curl -LsSf https://llama.,Windows 在 PowerShell 里运行 irm https://llama.。也可以用 Homebrew、winget、Docker,或者从 Releases 页面下载预编译文件。llama.app 客户端提供不需要命令行的安装方式。
装好后,运行 llama cli -hf ggml-org/Qwen3.5-0.8B-GGUF 试一个小模型;确认能跑通,再换成内存装得下的更大模型。要给其他应用提供接口,运行 llama serve -hf 加模型名,再把应用的 OpenAI 接口地址指向本机服务器。v0.7.0 起默认端口是 9931,不再是 8080(Docker 镜像内仍是 8080),老教程里写的 8080 已不适用。
支持 OpenAI 兼容接口的聊天前端可以接到 llama serve 的接口上。
关于两套版本号:b 开头的是开发构建,官方称 nightly,编号即 master 上的提交序号,构建之间可能带来行为变化;v 开头的是正式版标签,例如 v0.7.0 与 b11669 是同一个提交。docs/ 描述的是计划中的做法:安装脚本下载按正式版标签构建的文件,包管理器直接使用标签。截至 2026-10-25 的情况:官方安装脚本不指定版本时,会读取 Hugging Face 存储桶里的 latest,2026-10-25 读到的是 b11852,而不是 v0.7.0;ggml 讨论 #1579 写明,llama.app 和 Winget 发布的是 nightly,不是正式版,Homebrew 和 Debian 的包则链接系统里的 ggml 库,「让 Homebrew 按正式版标签构建」仍在待办清单上。
安装脚本支持用 LLAMA_VERSION 环境变量固定版本,但它只认 b 编号(脚本会核对程序报告的构建号),而且只能装存储桶里有的构建。2026-10-25 存储桶里有与 v0.6.0 同一提交的 b11429,没有 v0.7.0 对应的 b11669,所以 LLAMA_VERSION=b11669 会下载失败。要固定在 v0.7.0,可以从 Releases 页的 b11669 下载预编译文件,或者检出 v0.7.0 标签自己编译,编译时加上 -DLLAMA_=OFF,才能得到干净的版本号。
定价与许可证
llama.cpp 免费,以 MIT 许可证开源,可以商用、修改和闭源分发,只需保留版权声明。官方客户端 llama.app 同样免费开源。ggml.ai 官网的「Open Core」一节写道,将来可能开发面向商业使用授权的扩展;截至 2026-10-25 没有收费产品。所运行的模型各有许可证,商用条件由模型许可证另行约定。
风险与局限
第一,安全。仓库安全公告页列出 13 条公告。最严重的两条都与 RPC 后端有关:2024 年 8 月的 CVE-2024-42479(rpc_server 任意地址写入,9.8 分)和 2026 年 3 月的 CVE-2026-34159(绕过检查导致未认证远程代码执行,9.8 分)。另有多条 GGUF 解析和分词器的堆溢出漏洞(如 CVE-2026-33298、CVE-2025-49847),其中 2026 年 3 月的 CVE-2026-27940 正是绕过了 2025 年 CVE-2025-53630 的修复;llama-server 本身在 2026 年 1 月也出过一个越界写入漏洞(CVE-2026-21869),各方标注如下:GitHub 安全公告把严重程度标为低(Low),公告的描述却写明远程攻击者可借此让进程崩溃,甚至进一步实现远程代码执行;NVD 给出的评分是 9.8 分(严重)。修复通常以 b 开头的构建号发布,例如 CVE-2024-42479 在 b3561 修复、CVE-2025-49847 在 b5662 修复。其中 RPC 服务和 llama-server 的漏洞可被远程触发,修复只在新构建里提供。
第二,默认值变化。v0.7.0 改了服务器默认端口。语义化版本从 2026 年 8 月开始。
第三,文档与发布页。docs/ 写着正式版不发布到 GitHub Releases、只打标签,但 Releases 页面上从 v0.1.2 起每个正式版都有条目,v0.1.0 和 v0.1.1 只有标签;v0.2.0 至 v0.7.0 的条目都只附一个记录对应构建号的 txt 文件;文档说安装脚本和包管理器使用正式版,实际装到的仍是 nightly。
第四,所有权变化后的路线。加入 Hugging Face 后,公告称团队在技术方向上保有完全的自主权,项目继续「100% 开源」,llama.app 也已和 Hugging Face 缓存打通。
我们的判断
llama.cpp 的特点是:纯 C/C++ 实现、没有外部依赖,支持 1.5 到 8 位整数量化和 GGUF 格式,后端覆盖 CPU、Metal、CUDA、HIP、Vulkan 等,以 MIT 许可证开源,官方另有 llama.app 桌面客户端。它的限制:主体仍是命令行;语义化版本从 2026 年 8 月开始;RPC 后端出过两个 9.8 分的远程漏洞,llama-server 的越界写入漏洞被 NVD 评为 9.8 分、GitHub 安全公告则标为低,模型文件解析也多次出现堆溢出。
亮点
llama.cpp 是大语言模型能在你现有笔记本上运行的原因。Georgi Gerganov 用一个晚上、以朴素的 C/C++ 代码写出了第一版(他在最初的 README 里就写着“hacked in an evening”),此后这个项目定义了本地推理的量化格式、文件格式和性能预期。
许多桌面 AI 应用都用它做本地推理,或者借用了它的思路。2026 年 2 月,Georgi 为支持 ggml 和 llama.cpp 创办的 ggml.ai 加入 Hugging Face;ggml 团队保留技术主导权,项目依旧 100% 开源(MIT 许可证)。这个仓库至今依然好读,每周都有进展,维护者在意树莓派就像在意 H100 一样。
需要提醒:server 和 RPC 后端出过严重漏洞。CVE-2026-21869 是 llama-server 的越界写入,GitHub 公告标为 Low,NVD 评分却是 9.8,公告称可导致崩溃或远程代码执行。请保持更新,暴露到网络前先做好隔离。
它定义了本地推理常用的量化格式和文件格式,采用 MIT 许可,维护时兼顾从树莓派到 H100 的硬件。
资料来源
官方
- ggml-org/llama.cpp(GitHub) · 访问于 2026 年 10 月 26 日
- llama.cpp README · 访问于 2026 年 10 月 26 日
- llama.cpp 首版 README
- llama.cpp LICENSE(MIT) · 访问于 2026 年 10 月 26 日
- llama.cpp Releases · 访问于 2026 年 10 月 26 日
- llama.cpp v0.7.0 发布说明
- llama.cpp b11669(与 v0.7.0 同一提交的 nightly 构建,含预编译文件) · 访问于 2026 年 10 月 26 日
- ggml 讨论 #1579:ggml-org 各项目的发布与版本规则
- llama.app 官方安装脚本 install.sh · 访问于 2026 年 10 月 26 日
- Hugging Face 存储桶 ggml-org/install.sh 目录(安装脚本的构建来源,2026-10-25 查询) · 访问于 2026 年 10 月 26 日
- llama.cpp 文档:发布流程(docs/release.md) · 访问于 2026 年 10 月 26 日
- ggml.ai 官网 · 访问于 2026 年 10 月 26 日
- GitHub 讨论 #19759:ggml.ai 加入 Hugging Face
- Georgi Gerganov GitHub 主页 · 访问于 2026 年 10 月 26 日
- Llama(llama.app,官方桌面客户端) · 访问于 2026 年 10 月 26 日
- llama.cpp tags (GitHub) · 访问于 2026 年 10 月 26 日
安全公告
- llama.cpp 安全公告 · 访问于 2026 年 10 月 26 日
- GitHub 安全公告 GHSA-8947-pfff-2f3c(CVE-2026-21869) · 访问于 2026 年 10 月 26 日
- NVD:CVE-2026-21869 · 访问于 2026 年 10 月 26 日
媒体与第三方
- GitHub REST 文档:List repository contributors(前 500 个邮箱上限) · 访问于 2026 年 10 月 26 日
- Hugging Face 博客:ggml.ai 加入 Hugging Face · 访问于 2026 年 10 月 26 日
相关产品
- ollama/ollama(GitHub) · 访问于 2026 年 10 月 26 日
- vllm-project/vllm(GitHub) · 访问于 2026 年 10 月 26 日
- ml-explore/mlx-lm(GitHub) · 访问于 2026 年 10 月 26 日
- LM Studio 官网 · 访问于 2026 年 10 月 26 日
数据
- GitHub API:ggml-org/llama.cpp 贡献者(anon=0,仅关联账号) · 访问于 2026 年 10 月 26 日
- GitHub API:ggml-org/llama.cpp 贡献者(anon=1,含匿名提交者) · 访问于 2026 年 10 月 26 日