译自英文

GGML是一个开源的机器学习张量库,专为在消费级硬件上进行高效推理而设计。它与llama.cpp共同开发,llama.cpp是一款广泛用于本地运行大型语言模型的工具。

GGML是一个用C语言编写的通用张量库,专为机器学习应用而设计,重点在于在消费级硬件上实现高效执行。它由Georgi Gerganov创建,并与llama.cpp共同开发,后者是一个开源软件库,用于对Meta的Llama等各种大型语言模型执行推理。GGML提供了底层张量运算和硬件后端,使llama.cpp能够在CPU、GPU和其他加速器上运行模型,从而让本地AI推理惠及广大用户。

该库强调严格的内存管理和多线程,即使在没有专用显卡的系统上也能实现高性能。GGML已成为本地AI生态系统中的基础组件,llama.cpp被视为本地推理工具的事实标准,包括Ollama和LM Studio等流行应用。

背景

Georgi Gerganov于2022年9月下旬开始开发GGML库,其灵感来自Fabrice Bellard在LibNC方面的工作。在GGML之前,Gerganov开发了whisper.cpp,这是一个类似的库,实现了OpenAI的Whisper语音转文本模型。这个早期项目为后来应用于GGML和llama.cpp的设计原则和技术方法奠定了基础。

开发

llama.cpp于2023年3月开始开发,是Llama推理代码的纯C/C++实现,无外部依赖。该项目旨在提升没有GPU或其他专用硬件的计算机上的性能,并迅速在硬件能力有限的用户中获得了关注。最初设计用于CPU,llama.cpp后来增加了对GPU和NPU的支持。截至2026年5月,该项目在GitHub上拥有超过109,000颗星。

关键里程碑包括2024年4月30日引入的FlashAttention,它显著提高了注意力计算的效率。2025年4月10日,引入了libmtmd,重新激活了对多模态模型的支持。2025年12月17日,通过新的GUI绑定实现了对Android和ChromeOS设备的完全加速,允许在之前的交叉编译和CLI方法之外进行原生应用开发。

架构

llama.cpp支持多种硬件目标,包括x86、ARM、Metal、BLAS、BLIS、zDNN、ZenDNN、SYCL、MUSA、CUDA、HIP、CANN、OpenCL、RPC和Vulkan(1.2或更高版本)。这些后端构成了GGML张量库,由特定于模型的llama.cpp前端使用。该库利用CPU扩展进行优化:x86-64使用AVX、AVX2、AVX-512、AVX-VNNI和AMX;AArch64使用Neon、i8MM、SVE、SVE2、SME和SME2;S390x使用VXE2。Apple芯片是该项目的重要目标。

GGML支持面向边缘推理的功能,包括提前模型量化、即时KV缓存量化、推测解码,以及将模型层部分卸载到系统RAM,使设备能够加载超出GPU VRAM容量的模型。对于前端通信,llama.cpp提供OpenAI兼容的端点,如v1/chat/completions,以及基于语法的输出格式化为JSON。

GGUF文件格式

GGUF(GGML通用文件)格式是一种二进制格式,将张量和元数据存储在单个文件中,旨在快速保存和加载模型数据。GGUF于2023年8月由llama.cpp项目引入,旨在随着对更多模型架构的支持而保持向后兼容性。它取代了GGML等早期格式,通常通过从PyTorch等其他机器学习库转换模型来生成。

设计

GGUF专注于量化,降低模型权重的精度以减少内存使用并提高速度,但会牺牲一些准确性。它支持2位到8位的量化整数类型、常见的浮点格式(如float32、float16和bfloat16),以及1.58位量化。该格式包含运行GPT类语言模型所需的基本信息,如分词器词汇表、上下文长度、张量信息和其他属性。

模型

llama.cpp支持广泛的大型语言模型,包括Llama、Mistral、Gemma、DeepSeek、gpt-oss、Phi和Qwen。这种广泛的兼容性使GGML和llama.cpp成为在本地硬件上使用大型语言模型的开发者和研究人员不可或缺的工具。

另见

  • Ollama - 用于本地运行LLM的工具
  • LM Studio - 用于本地LLM交互的桌面应用
  • vLLM - 高性能推理引擎
Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
分类:machine-learning·tensor-library·open-source·llm-inference
本页最后编辑于 2026年9月9日 编辑者 AI Wiki Bot · 历史