ggml
大模型本地化部署的底层加速引擎,支持10+种硬件后端与多精度量化
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
大模型本地化部署的底层加速引擎,支持10+种硬件后端与多精度量化
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

图1:GGML 项目组织标识
2023年初,当 OpenAI、Anthropic 的闭源大模型席卷全球时,一位保加利亚开发者 Georgi Gerganov(@ggerganov)在 GitHub 上悄悄上线了一个项目。他的目标听起来很简单:让 LLaMA 模型——以及任何大语言模型——能在你自己电脑的 CPU(甚至手机)上跑起来。
这个项目叫 llama.cpp。而它背后真正的引擎,就是今天的主角——GGML(General Graph ML)。
但 GGML 的野心远不止运行 LLaMA。它是一个通用的张量计算库(Tensor Library),设计目标类似 Google 的 JAX 或 PyTorch 的底层张量引擎,但必须做到:没有第三方依赖、零运行时内存分配、支持量化压缩、覆盖你能想到的所有硬件。
这个目标的难度如何?看看项目目录就明白了——光是硬件后端支持,就包含了 CUDA、Metal(Apple Silicon)、Vulkan、OpenCL、SYCL、CANN(华为昇腾)、HIP(AMD)、WebGPU、MUSA(摩尔线程)等超过 10 种。
如果把 AI 应用比作一座摩天大楼,GGML 就是地基和钢筋骨架——普通用户看不到它,但它决定了整座楼能盖多高、盖多稳。
想象你要开一家连锁奶茶店:
GGML 的核心设计哲学是:最小依赖、最广兼容、最高效率。它不需要 Python 运行时、不需要 CUDA 驱动(可选)、不需要任何第三方库,一份 C 头文件 + C 源文件,编译即用。
大模型最大的问题是体积太大——一个 7B 参数模型,FP16 精度需要 ~14GB 内存,根本塞不进普通消费级设备。
GGML 实现了多种整数量化方法(Q4_0、Q5_1、Q6_K 等),将模型权重从 16 位浮点压缩到 4-6 位整数。实测显示,Q4_K_M 量化的 7B 模型仅需约 3.5GB 内存,在一台普通 MacBook Pro(M1)上就能流畅运行每秒 15-20 个 token 的推理速度。
GGML 实现了神经网络所需的基础算子:
所有运算均支持自动微分(Automatic Differentiation),可进行模型训练。
GGML 抽象了一套后端注册系统,同一套代码可无缝切换硬件:
| 后端 | 硬件 | 备注 |
|---|---|---|
| CPU | x86/ARM 通用处理器 | 默认后端,零依赖 |
| CUDA | NVIDIA GPU | 官方维护 |
| Metal | Apple Silicon (M1/M2/M3) | 官方维护 |
| Vulkan | 通用 GPU | 开源社区贡献 |
| HIP | AMD GPU | 开源社区贡献 |
| SYCL | Intel GPU / 多架构 | 开源社区贡献 |
| WebGPU | 浏览器/跨设备 | 实验性 |
这套抽象层让 llama.cpp、whisper.cpp 等项目无需修改上层代码,就能自动利用所有可用硬件加速。
GGUF(GGML Universal File format)是 GGML 生态的模型文件标准,它解决了 AI 模型的分发困境:
目前 Hugging Face 上的 GGUF 格式模型下载量已达数千万次,成为本地 LLM 部署的事实标准之一。
GGML 源码目录 src/ 下所有 .c/.cpp 文件都是手写的,没有引入任何外部库。这在 C/C++ 项目中极为罕见,意味着:
add_subdirectory(ggml) 即可接入大多数普通用户不会直接使用 GGML——他们用的是基于 GGML 的上层应用,例如:
git clone https://github.com/ggml-org/ggml
cd ggml && mkdir build && cd build
cmake .. && cmake --build . --config Release -j 8
CMakeLists.txt 提供了丰富的构建选项:
GGML_BUILD_EXAMPLES=ON:编译官方示例(LLaMA 推理、MNIST 分类等)GGML_BUILD_TESTS=ON:运行单元测试集成到自有项目只需:
add_subdirectory(ggml)
target_link_libraries(my_app PRIVATE ggml)
GGML 正处于一个微妙的定位:作为 llama.cpp 的"卫星库",它的发展与 llama.cpp 深度绑定(CONTRIBUTING.md 中明确要求核心改动去 llama.cpp 提 PR)。这让 GGML 的独立演进路线存在一定不确定性——它是 llama.cpp 的技术底座,还是一个独立的通用张量库?
没有 GGML,就不会有 llama.cpp 数百万次的下载,也不会有 Ollama、Jan、LM Studio 等一众本地 AI 应用的成功。它证明了:在闭源大模型统治的时代,精简高效的开源方案依然有强大生命力。
GGML 的技术路线——极致轻量、硬件普适、量化压缩——深刻影响了 2023-2025 年整个本地 AI 部署生态。它的贡献不仅在于代码,更在于重新定义了"大模型本地化"的可行性边界。
| 维度 | 内容 |
|---|---|
| Stars | 14,700+ |
| 主语言 | C/C++ |
| 许可证 | MIT |
| 最新版本 | v0.13.0 |
| 核心依赖 | 零(纯手写) |
| 硬件后端 | 10+ 种 |
| 量化支持 | Q2_K ~ Q8_0 全系列 |
| 模型格式 | GGUF(已成为 HF 事实标准) |
| 维护者 | ggerganov + ggml-org 团队 |
| 生态项目 | llama.cpp、whisper.cpp 等数十个衍生项目 |
本报告基于 ggml-org/ggml GitHub 仓库(master 分支)及 GGUF 格式规范生成。