llama.cpp更新(b9553):LLM inference in C/C++,本地和云端实现高性能大模型推理

前言:项目简介

随着大语言模型从云端 API 逐步走向本地部署、私有化部署和边缘端推理,开发者面临一个非常现实的问题:

复制代码
1. 如何在普通 CPU、消费级 GPU 或边缘设备上运行大模型?
2. 如何降低模型显存和内存占用?
3. 如何让 LLaMA、Qwen、Gemma、Mistral、DeepSeek 等模型以统一格式运行?
4. 如何在本地提供类似 OpenAI API 的推理服务?
5. 如何在 x86、ARM、Apple Silicon、NVIDIA、AMD、Vulkan 等平台上尽量复用同一套推理框架?

llama.cpp 正是为了解决这些问题而出现的开源项目。它由 ggml-org 维护,项目定位非常直接:

复制代码
LLM inference in C/C++

也就是说,llama.cpp 是一个用 C/C++ 实现的大语言模型推理框架。它的核心目标是:在尽可能少的依赖下,让大语言模型能够在广泛硬件平台上高效运行。

相比很多依赖 Python、PyTorch、CUDA 生态的大模型推理框架,llama.cpp 的特点是:

复制代码
1. 纯 C/C++ 实现,部署门槛低;
2. 支持 GGUF 模型格式;
3. 支持多种低比特量化;
4. 支持 CPU、GPU 以及 CPU+GPU 混合推理;
5. 支持命令行推理、HTTP Server、OpenAI-compatible API;
6. 支持多种模型架构和多种硬件后端;
7. 适合本地 AI、边缘 AI、嵌入式 AI 和私有化部署。

从应用角度看,llama.cpp 可以用于:

复制代码
本地聊天机器人
离线文本生成
RAG 检索增强生成
代码补全
边缘设备智能助手
私有化大模型服务
小型 AI Server
多模态模型推理

它已经成为本地大模型生态中最重要的基础设施之一。

b9553版本发布时间:2026-06-07 21:10

b9551版本发布时间:2026-06-07 19:27


一、发布时间以及主要更新内容

1. 项目基本状态

该版本的核心更新是:

复制代码
common: relax sampler name matching

具体来说,之前在某些情况下,采样器名称的替代写法不能被正确识别。例如:

复制代码
top-k
min-p

与 canonical 名称:

复制代码
top_k
min_p

之间可能存在匹配问题。

在 b9553 中,采样器名称匹配逻辑被放宽和统一,主要变化包括:

复制代码
1. 移除 allow_alt_names 参数;
2. 默认同时匹配 canonical name 和 alternative name;
3. 采样器名称匹配改为大小写不敏感;
4. 自动生成 sampler alias 映射;
5. 修复 llama-server UI 中替代采样器名称可能无法识别的问题。

这类更新看似不大,但对实际使用很有价值。因为很多用户在 Web UI、API 参数或脚本中可能会使用不同命名习惯,例如 top-ktop_kTop-K。如果框架能够更宽容地识别这些名称,就能减少配置错误,提高服务端易用性。


3. 与前一个版本 b9551 相比

前一个页面可见 Release 为:

复制代码
b9551
发布时间:2026-06-07 19:27

b9551 的主要更新是:

复制代码
kv-cache: avoid kv cells copies

也就是围绕 KV Cache 的内部数据结构和拷贝行为进行优化。

与 b9551 相比,b9553 并不是继续改 KV Cache,而是聚焦在 sampler 参数解析和名称匹配上。可以简单对比如下:

版本 发布时间 主要更新方向 影响范围
b9551 2026-06-07 19:27 避免 KV cells 拷贝 更偏底层推理状态管理
b9553 2026-06-07 21:10 放宽 sampler 名称匹配 更偏用户配置、server UI 和采样参数兼容性

如果从用户体验角度理解:

复制代码
b9551 更关注内部推理效率和 KV Cache 行为;
b9553 更关注采样器参数命名的兼容性和易用性。

4. 预构建包支持平台

b9553 Release 页面提供了多个平台的预构建包,包括:

复制代码
macOS Apple Silicon arm64
macOS Intel x64
iOS XCFramework
Ubuntu x64 CPU
Ubuntu arm64 CPU
Ubuntu s390x CPU
Ubuntu x64 Vulkan
Ubuntu arm64 Vulkan
Ubuntu x64 ROCm
Ubuntu x64 OpenVINO
Android arm64 CPU
Windows x64 CPU
Windows arm64 CPU
Windows x64 CUDA 12
Windows x64 CUDA 13
Windows x64 Vulkan
Windows x64 HIP
UI

这说明 llama.cpp 已经不是单一平台的小工具,而是一个跨平台推理基础设施。


二、项目框架设计

从仓库目录来看,llama.cpp 的整体结构非常工程化,主要目录包括:

复制代码
llama.cpp
├── app
├── benches
├── ci
├── cmake
├── common
├── conversion
├── docs
├── examples
├── ggml
├── gguf-py
├── grammars
├── include
├── licenses
├── media
├── models
├── pocs
├── requirements
├── scripts
├── src
├── tests
├── tools
├── vendor
├── CMakeLists.txt
├── Makefile
├── convert_hf_to_gguf.py
├── convert_hf_to_gguf_update.py
├── convert_llama_ggml_to_gguf.py
├── convert_lora_to_gguf.py
├── README.md
└── LICENSE

可以将其整体架构理解为六层。

复制代码
第一层:模型格式与转换层
  ├── GGUF
  ├── convert_hf_to_gguf.py
  ├── convert_lora_to_gguf.py
  └── gguf-py

第二层:核心推理运行时
  ├── src
  ├── include
  ├── common
  └── ggml

第三层:硬件后端加速层
  ├── CPU
  ├── Metal
  ├── CUDA
  ├── HIP / ROCm
  ├── Vulkan
  ├── SYCL
  └── OpenVINO

第四层:工具与应用层
  ├── llama-cli
  ├── llama-server
  ├── examples
  ├── tools
  └── app

第五层:工程支撑层
  ├── cmake
  ├── scripts
  ├── tests
  ├── benches
  └── ci

第六层:文档与生态层
  ├── docs
  ├── models
  ├── grammars
  ├── media
  └── vendor

1. ggml:底层张量计算基础

ggmlllama.cpp 的底层计算基础。可以把它理解为面向大模型推理的轻量级张量计算库。

它负责的事情包括:

复制代码
张量表示
算子实现
量化计算
图执行
CPU/GPU 后端适配
内存管理

llama.cpp 本质上是基于 ggml 构建的大模型推理系统。很多新的模型支持、量化格式、硬件后端优化,最终都会落到 ggml 的算子和执行后端上。


2. GGUF:统一模型文件格式

GGUF 是当前 llama.cpp 生态中非常关键的模型格式。它用于存储模型权重、tokenizer 信息、模型元数据、量化信息等内容。

相比早期模型文件格式,GGUF 更适合分发和部署,因为它可以把运行模型所需的大量信息封装在一个文件中。

典型模型文件类似:

复制代码
Qwen2.5-7B-Instruct-Q4_K_M.gguf
Llama-3.1-8B-Instruct-Q4_K_M.gguf
gemma-3-1b-it-Q8_0.gguf

对于普通用户来说,只要下载一个 .gguf 文件,就可以通过 llama-clillama-server 启动模型。


3. llama-cli:命令行推理入口

llama-cli 是最基础、最常用的推理入口。

典型命令如下:

复制代码
llama-cli -m ./model.gguf -p "请解释什么是边缘计算"

也可以直接从 Hugging Face 下载并运行兼容模型:

复制代码
llama-cli -hf ggml-org/gemma-3-1b-it-GGUF

它适合用于:

复制代码
本地快速测试模型
命令行文本生成
模型量化效果验证
推理参数调试
简单脚本集成

4. llama-server:OpenAI 兼容服务端

llama-serverllama.cpp 面向服务化部署的重要组件。它可以启动一个 HTTP 服务,并提供类似 OpenAI API 的接口。

典型命令如下:

复制代码
llama-server -m ./model.gguf

也可以直接从 Hugging Face 运行模型:

复制代码
llama-server -hf ggml-org/gemma-3-1b-it-GGUF

启动后,可以将本地模型作为一个 OpenAI-compatible API 使用,适合集成到:

复制代码
RAG 系统
聊天机器人
本地 Agent
私有化 AI 服务
企业内网模型服务
开发调试平台

5. conversion:模型转换工具

llama.cpp 支持将 Hugging Face 模型转换为 GGUF 格式,核心脚本包括:

复制代码
convert_hf_to_gguf.py
convert_hf_to_gguf_update.py
convert_llama_ggml_to_gguf.py
convert_lora_to_gguf.py

其中最常用的是:

复制代码
python convert_hf_to_gguf.py /path/to/hf-model --outfile model.gguf

转换后,还可以进一步量化,得到更小、更适合本地运行的模型文件。


三、关键功能解析与技术破局

1. 纯 C/C++ 实现:降低部署复杂度

llama.cpp 的第一个核心优势是纯 C/C++ 实现,尽量减少外部依赖。

很多大模型推理框架依赖 Python、PyTorch、CUDA、Transformers 等复杂生态。对于服务器部署来说这不是大问题,但对于边缘设备、个人电脑、嵌入式设备和轻量化环境来说,依赖越多,部署越麻烦。

llama.cpp 的思路是:

复制代码
用 C/C++ 实现核心推理逻辑;
用 ggml 实现张量计算;
用 GGUF 封装模型;
用少量命令行工具完成推理和服务化。

这使它非常适合:

复制代码
离线环境
内网环境
低资源服务器
ARM 开发板
工控机
个人电脑
边缘计算节点

2. GGUF 格式:让模型分发和运行更简单

GGUF 是 llama.cpp 生态的关键突破之一。

传统 Hugging Face 模型通常包含多个文件:

复制代码
config.json
tokenizer.json
tokenizer.model
model-00001-of-000xx.safetensors
generation_config.json
special_tokens_map.json

而 GGUF 更倾向于把推理所需信息封装进单个模型文件,用户使用时只需要关注:

复制代码
model.gguf

这极大降低了部署复杂度。

对于 CSDN 读者来说,可以简单理解为:

复制代码
Hugging Face 模型格式:适合训练、微调、生态集成;
GGUF 模型格式:适合推理、分发、本地部署。

3. 低比特量化:让大模型跑在普通硬件上

llama.cpp 支持多种低比特整数量化,包括:

复制代码
1.5-bit
2-bit
3-bit
4-bit
5-bit
6-bit
8-bit

量化的核心目的,是降低模型权重占用,使模型能够在更小内存或显存上运行。

例如,一个 FP16 的 7B 模型可能需要十几 GB 存储和显存,而量化到 Q4 后,模型体积可能明显下降,从而可以在普通消费级 GPU、MacBook、工控机甚至部分 ARM 设备上运行。

常见量化格式包括:

复制代码
Q4_K_M
Q5_K_M
Q6_K
Q8_0

一般经验是:

复制代码
Q4_K_M:体积小,速度和质量平衡较好;
Q5_K_M:质量更好,体积略大;
Q8_0:质量接近高精度,但占用更高;
低于 4bit:更省资源,但质量损失可能更明显。

对于边缘推理和私有部署而言,量化是 llama.cpp 最重要的实用能力之一。


4. 多硬件后端:从 CPU 到 GPU 再到边缘设备

llama.cpp 支持非常广泛的硬件后端,包括:

复制代码
CPU
Apple Metal
NVIDIA CUDA
AMD HIP / ROCm
Vulkan
SYCL
OpenVINO
ARM NEON
x86 AVX / AVX2 / AVX512 / AMX
RISC-V RVV

这使它能够覆盖:

复制代码
Intel / AMD 普通 PC
Apple Silicon Mac
NVIDIA GPU 工作站
AMD GPU 服务器
Raspberry Pi / Orange Pi / Jetson 等 ARM 设备
Android arm64 设备
Windows / Linux / macOS

这也是 llama.cpp 影响力很大的原因之一。它不是只服务一种硬件,而是尽可能把大模型推理扩展到各种设备上。


5. CPU+GPU 混合推理:显存不够也能跑

在很多本地部署场景中,最大的问题是:

复制代码
模型太大,GPU 显存不够。

llama.cpp 支持 CPU+GPU 混合推理,可以将部分层 offload 到 GPU,剩余部分留在 CPU 内存中运行。

典型参数是:

复制代码
-ngl 32

或者新版命令中使用相应 GPU layer 参数。

例如:

复制代码
llama-cli -m ./model.gguf -p "你好" -ngl 32

这表示将部分模型层放到 GPU 上执行。对于显存有限的设备,这种方式非常实用。


6. llama-server:本地模型变成 API 服务

llama-serverllama.cpp 从工具走向工程部署的重要能力。

它的意义在于:用户不仅可以在命令行里跑模型,还可以把本地模型包装成一个服务,让其他应用通过 HTTP API 调用。

例如:

复制代码
llama-server -m ./Qwen2.5-7B-Instruct-Q4_K_M.gguf --host 0.0.0.0 --port 8080

这样就可以在本地或局域网中提供模型服务。

适合场景包括:

复制代码
本地 Chat UI
RAG 后端
企业内网问答系统
AI Coding 工具接入
多用户共享推理服务
边缘节点模型服务

7. 多模型支持:不只支持 LLaMA

虽然项目叫 llama.cpp,但它已经不只是 LLaMA 模型运行器。

README 中列出的 text-only 模型包括:

复制代码
LLaMA
LLaMA 2
LLaMA 3
Mistral
Mixtral
DBRX
Jamba
Falcon
Baichuan
Aquila
StarCoder
MPT
Bloom
Yi
StableLM
DeepSeek
Qwen
Phi
Gemma
Mamba
Grok-1
Xverse
InternLM
GPT-2

这说明 llama.cpp 已经成为通用本地 LLM 推理框架,而不是某一个模型家族的专用工具。


8. 多模态支持:llama-server 正在扩展能力边界

README 热点中提到,llama-server 已经加入多模态支持。这意味着 llama.cpp 正在从纯文本推理扩展到图像、音频等更复杂的输入形态。

对未来本地 AI 来说,这非常关键。因为多模态模型通常资源占用更高、部署更复杂,如果 llama.cpp 能够继续保持轻量化和跨平台能力,将进一步推动多模态模型在本地和边缘端落地。


四、使用教程

下面以 Ubuntu / Linux 环境为例,给出基础使用流程。


1. 克隆项目

复制代码
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp

2. 编译 llama.cpp

推荐使用 CMake:

复制代码
cmake -B build
cmake --build build --config Release -j

编译完成后,常用可执行文件通常位于:

复制代码
build/bin/

例如:

复制代码
build/bin/llama-cli
build/bin/llama-server

3. 使用本地 GGUF 模型运行

准备一个 .gguf 模型文件,例如:

复制代码
Qwen2.5-7B-Instruct-Q4_K_M.gguf

执行:

复制代码
./build/bin/llama-cli -m ./Qwen2.5-7B-Instruct-Q4_K_M.gguf -p "请用简单语言解释什么是大语言模型"

如果模型较大,可以根据硬件情况调整线程数:

复制代码
./build/bin/llama-cli -m ./model.gguf -p "你好" -t 8

4. 从 Hugging Face 直接运行模型

llama.cpp 支持使用 -hf 参数直接下载并运行兼容模型:

复制代码
llama-cli -hf ggml-org/gemma-3-1b-it-GGUF

也可以启动服务端:

复制代码
llama-server -hf ggml-org/gemma-3-1b-it-GGUF

这种方式适合快速体验,不需要手动下载模型文件。


5. 使用 GPU 加速

如果你有 NVIDIA GPU,并且编译时启用了 CUDA,可以尝试:

复制代码
./build/bin/llama-cli -m ./model.gguf -p "你好" -ngl 32

其中:

复制代码
-ngl 表示 offload 到 GPU 的层数

显存越大,可以尝试 offload 更多层。显存不足时,可以减少该数值。


6. 启动 OpenAI-compatible API Server

启动本地服务:

复制代码
./build/bin/llama-server -m ./model.gguf --host 0.0.0.0 --port 8080

启动后,可以用 OpenAI-compatible 方式调用。示例:

复制代码
curl http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "local-model",
    "messages": [
      {
        "role": "user",
        "content": "请介绍 llama.cpp 的作用"
      }
    ],
    "temperature": 0.7
  }'

这样就可以把本地模型接入自己的应用程序、RAG 系统或 Agent 框架。


7. 模型转换为 GGUF

如果你下载的是 Hugging Face 格式模型,可以使用转换脚本:

复制代码
python convert_hf_to_gguf.py /path/to/hf-model --outfile model.gguf

如果缺少 Python 依赖,可以先安装:

复制代码
pip install -r requirements.txt

转换完成后,得到:

复制代码
model.gguf

然后即可使用 llama-clillama-server 运行。


8. 模型量化

如果希望进一步减小模型体积,可以使用量化工具。

典型流程是:

复制代码
./build/bin/llama-quantize model-f16.gguf model-q4_k_m.gguf Q4_K_M

常见量化选择:

复制代码
Q4_K_M:推荐入门,体积与效果平衡较好
Q5_K_M:效果更好,体积更大
Q8_0:质量较高,但资源占用更高

量化后运行:

复制代码
./build/bin/llama-cli -m model-q4_k_m.gguf -p "你好"

9. Windows 用户快速体验

Windows 用户可以直接从 Releases 页面下载预编译包,例如:

复制代码
Windows x64 CPU
Windows arm64 CPU
Windows x64 CUDA 12
Windows x64 CUDA 13
Windows x64 Vulkan
Windows x64 HIP

下载解压后,在 PowerShell 中进入目录:

复制代码
.\llama-cli.exe -m .\model.gguf -p "你好"

如果是 CUDA 版本,需要确保对应 CUDA 运行库可用。


10. ARM / aarch64 设备使用建议

对于 Raspberry Pi 5、Orange Pi 5B、Jetson AGX Orin 等 ARM64 设备,通常会显示:

复制代码
uname -m

输出:

复制代码
aarch64

这表示 64 位 ARM 架构。可以选择 Ubuntu arm64 CPU 版本,或者根据设备支持情况自行编译。

ARM 设备建议优先尝试小模型和低比特量化模型,例如:

复制代码
1B / 1.5B / 3B / 7B Q4 模型

对于 Jetson AGX Orin,可以进一步关注 CUDA、GPU offload 和内存占用优化。


五、项目优势与局限

优势

第一,部署轻量。

llama.cpp 使用 C/C++ 实现,依赖较少,适合本地、服务器和边缘设备部署。

第二,硬件支持广。

它支持 CPU、Metal、CUDA、HIP、Vulkan、SYCL、OpenVINO 等多种后端,可以覆盖 x86、ARM、Apple Silicon、NVIDIA、AMD 等平台。

第三,量化能力强。

支持多种低比特量化格式,可以显著降低模型体积和内存占用,让大模型在普通硬件上运行。

第四,GGUF 生态成熟。

大量开源模型已经提供 GGUF 版本,用户可以直接下载使用,部署体验明显优于复杂的多文件模型结构。

第五,服务化能力实用。

llama-server 可以提供 OpenAI-compatible API,方便接入 RAG、Agent、Chat UI 和企业应用。

第六,社区活跃。

项目提交和 Release 非常频繁,新模型、新后端、新优化持续加入。


局限

第一,版本变化很快。

llama.cpp 迭代速度很高,命令参数、API、构建方式可能随版本变化,需要关注 README 和 changelog。

第二,模型兼容性仍需确认。

虽然支持很多模型架构,但不是所有 Hugging Face 模型都能无缝转换和运行,遇到特殊结构时可能需要等待适配。

第三,性能调优有门槛。

线程数、batch size、context length、GPU offload 层数、量化格式都会影响性能,需要根据硬件反复测试。

第四,多模态仍在演进。

相比纯文本推理,多模态模型在格式、输入处理、显存占用和服务接口上更复杂,实际部署时需要更多验证。

第五,极致吞吐场景不一定最优。

如果目标是大规模云端批量推理,vLLM、TensorRT-LLM、SGLang 等框架在某些场景可能更适合;llama.cpp 更突出的优势是轻量、本地、跨平台和边缘部署。


六、适合哪些用户?

llama.cpp 适合以下几类用户:

用户类型 推荐理由
本地大模型玩家 可以在个人电脑上运行 GGUF 模型
AI 工程师 可用于构建本地推理服务和 RAG 后端
边缘计算研究者 支持 ARM、CPU、GPU 混合推理,适合边缘设备实验
企业私有化部署团队 可以在内网部署 OpenAI-compatible API
嵌入式 / 工控开发者 依赖少,部署灵活,适合低资源环境
大模型量化研究者 支持多种量化格式和性能测试
多平台开发者 支持 Windows、Linux、macOS、Android、iOS 等平台

七、总结

llama.cpp 是当前本地大模型推理生态中最重要的开源项目之一。它的价值不只是"能运行 LLaMA",而是构建了一套轻量、跨平台、高性能的大模型推理基础设施。

它的核心能力可以总结为:

复制代码
1. 用 C/C++ 实现轻量级 LLM 推理;
2. 用 GGUF 格式简化模型分发和部署;
3. 用低比特量化降低模型资源占用;
4. 用多硬件后端覆盖 CPU、GPU 和边缘设备;
5. 用 llama-cli 支持命令行推理;
6. 用 llama-server 提供 OpenAI-compatible API;
7. 用转换和量化工具打通 Hugging Face 模型生态。

从最新版本 b9553 可以看出,项目仍在快速优化用户体验和工程细节。本次更新虽然主要是 sampler 名称匹配逻辑,但它反映出 llama.cpp 正在持续打磨服务端、Web UI 和参数兼容性。

如果你想在本地、边缘端或私有环境中运行大语言模型,llama.cpp 是一个非常值得掌握的基础工具。对于工业边缘计算、AI Agent、本地 RAG、私有化 Chatbot 和离线智能助手等方向,它都具有很高的实用价值。


八、互动话题

你认为 llama.cpp 最有价值的能力是什么?

复制代码
A. 可以在普通电脑上运行大模型
B. 支持 GGUF,模型部署简单
C. 支持低比特量化,显著降低资源占用
D. 支持 CPU+GPU 混合推理
E. 支持 llama-server,能提供 OpenAI-compatible API
F. 支持多种硬件后端,如 CUDA、Metal、Vulkan、OpenVINO
G. 适合边缘设备和工控机部署
H. 社区活跃,新模型适配速度快
I. 适合构建本地 RAG 和 AI Agent

欢迎在评论区讨论:

你更关注 llama.cpp 的"本地推理能力",还是更关注它在边缘设备、私有化部署和工业场景中的工程落地价值?

相关推荐
2601_961194021 小时前
考研资料电子版|去哪找|网盘
java·c语言·c++·python·考研·php
Peter·Pan爱编程1 小时前
23. 算法库:用算法代替手写循环
c++·人工智能·算法
大白话_NOI2 小时前
【洛谷 P1303】A*B Problem + 详细分析
c++
十月的皮皮2 小时前
C语言学习笔记202606008- 三角形判断(3种方法)
c语言·笔记·学习
小欣加油2 小时前
leetcode2161 根据给定数字划分数组
数据结构·c++·算法·leetcode·职场和发展
吃着火锅x唱着歌2 小时前
深度探索C++对象模型 学习笔记 第五章 构造、解构、拷贝语意学(2)
c++·笔记·学习
玖釉-2 小时前
Vulkan 离屏渲染详解:从 Framebuffer 到后处理、阴影贴图与 Render Texture
c++·windows·计算机视觉·图形渲染
cpp_25012 小时前
P2947 [USACO09MAR] Look Up S
数据结构·c++·算法·题解·单调栈·洛谷
楼田莉子2 小时前
C++20新特性:协程
开发语言·c++·后端·学习·c++20