← 返回项目库

ggml-org/llama.cpp

llama.cpp:在本地与云端运行大语言模型

llama.cpp 面向需要在本地或云端部署大语言模型与视觉语言模型的开发者,解决推理环境搭建、硬件适配和本地服务提供问题。它适合研究模型集成、边缘部署及推理工具链的团队;主要门槛是根据 CPU、GPU 或 NPU 条件完成编译配置,并自行准备兼容模型与验证性能。

官方名称:llama.cpp资料更新:2026/11/12
打开 GitHub
Stars
13.4万
7日增长
+773
Forks
2.5万
活跃度
100
维护状态
活跃

01WHAT IT SOLVES

这个项目解决什么问题?

llama.cpp 是基于 ggml 的 C/C++ 大语言模型与视觉语言模型推理实现,重点不是提供完整训练平台,而是以较少依赖完成模型运行、后端调度与量化。开发者可使用命令行工具、lib llama API 或带 REST API 与内置网页界面的 llama-server,并按硬件切换 CPU、CUDA、HIP、Metal、Vulkan、SYCL 等后端,也可在显存不足时组合 CPU 与 GPU。它在同类方案中更接近可嵌入、可本地部署的底层推理运行层,适合希望在应用、终端或服务中直接控制模型执行路径的开发者。

02CORE CAPABILITIES

核心能力

01

低依赖推理实现

采用纯 C/C++ 实现并构建在 ggml 之上,降低基础运行环境的依赖复杂度

02

多类硬件后端

支持 CUDA、HIP、Metal、Vulkan、SYCL、OpenCL、OpenVINO、CPU 与多种 NPU 等后端

03

灵活整数量化

支持 1.5 位至 8 位整数量化,用于降低内存占用和加快推理

04

CPU 与 GPU 混合推理

显存不足以容纳完整模型时,可通过 CPU 与 GPU 协同加速部分计算

05

命令行与服务接口

提供 CLI、lib llama API、REST API、llama-server 内置网页界面及语法约束能力

03适合谁

  • 需要在本地设备运行大语言模型或视觉语言模型的开发者
  • 负责模型服务、边缘部署与推理集成的工程团队
  • 需要适配 CPU、GPU、NPU 等不同计算后端的平台开发者

04典型使用场景

  • 在个人电脑或边缘设备上本地运行语言模型
  • 为应用集成可嵌入的模型推理能力
  • 搭建兼容 OpenAI 风格接口的本地模型服务
  • 根据硬件条件选择计算后端和量化格式

05为什么值得关注

  • 同一项目覆盖 CPU、主流 GPU 与多类 NPU,硬件适配范围较广
  • 从源码构建、Docker、预编译产物和后端工具形成较完整的部署路径
  • CUDA、SYCL、Vulkan 等后端持续针对数据布局和小批量场景优化
  • 同时提供底层库、命令行工具和带网页界面的服务,适合不同接入层次

06采用前要注意

  • 使用不同后端通常需要编译和配置,GPU 环境还涉及对应工具链
  • 各后端成熟度并不完全一致,README 将 OpenVINO 标记为进行中
  • 实际速度与内存表现取决于模型、量化方式、硬件和批处理配置,需要自行验证

07RELEASE INTELLIGENCE

近期版本变化

全部版本动态 →

llama.cpp b12292:中文解读生成中

正在根据官方 Release 说明生成中文变化摘要,请暂时以来源页面为准。

llama.cpp b12291:中文解读生成中

正在根据官方 Release 说明生成中文变化摘要,请暂时以来源页面为准。

llama.cpp b12290:调整 Vulkan 故障缓冲区分配

本次更新为 Vulkan 设备故障处理分配厂商二进制缓冲区,并移除一个冗余的 vector 头文件。它主要影响 Vulkan 后端维护和故障排查路径,普通用户未必需要立即升级,但相关开发者值得检查该改动。

  • 为 Vulkan 设备故障场景分配厂商二进制缓冲区
  • 清理冗余的 vector 头文件引用

llama.cpp b12289:测试改用公开 ggml API

测试代码改为仅使用公开的 ggml API,降低对内部实现接口的依赖。该变化主要影响 ggml 贡献者与测试维护者;正在提交补丁或关注公开接口边界的开发者值得关注。

  • 测试统一转向公开 ggml API
  • 减少测试对非公开内部接口的依赖

llama.cpp b12287:小批量启用 BF16 MMVF

CUDA 后端在矩阵行数较少且批处理较小时改用 MMVF,以减少 SM 闲置;实现会根据矩阵行数、批量、长度和 SM 数量选择 MMVF 或 MMF。该变化主要影响使用 NVIDIA GPU 处理 BF16 小型矩阵的开发者,值得关注特定工作负载的变化。

  • 为少行 BF16 矩阵引入按行执行的 MMVF 路径
  • 按行数、批量和设备 SM 数量选择 MMVF 或 MMF
  • 增加多个矩阵尺寸与批大小组合的评测用例

llama.cpp b12284:CUDA 引入 OCP FP8 支持

CUDA 后端加入初始版 OCP FP8 支持,使用 FP8 intrinsic,并在 GEMV 场景采用 W8A16;同时补充 FP8 转换、复制、缓存和回退路径修复。该版本仍标记为 WIP,主要影响使用 NVIDIA FP8 硬件和 CUDA 的开发者,需要关注其当前适用范围。

  • 增加基于 intrinsic 的 OCP FP8 CUDA 实现
  • GEMV 场景采用 W8A16 数据路径
  • 修复 FP8 转换、跨步复制、缓存与回退路径问题
  • 支持 Hopper 及其他带宽受限 SKU 的 FP8 路径

llama.cpp b12283:修正 SYCL Clamp 跨步视图处理

SYCL 后端的 Clamp 操作改用通用一元算子辅助函数,可正确处理非连续或跨步视图,并删除不再使用的旧内核与启动配置。该修复影响使用 SYCL 且依赖跨步张量 Clamp 运算的开发者,相关场景值得升级验证。

  • Clamp 改用支持跨步视图的一元算子路径
  • 删除旧 Clamp 内核模板及启动器
  • 清理不再使用的 SYCL CLAMP 块大小预设

llama.cpp b12282:修复 Muse Spark 忽略 JSON Schema

该版本修复 Muse Spark 会忽略 response_format 中 json_schema 的问题,使聊天流程能够按指定 JSON Schema 处理响应格式。直接影响使用 Muse Spark 并依赖结构化输出的开发者;若应用依赖 schema 约束,应在升级后验证相关输出流程。

  • 修复 Muse Spark 未应用 response_format json_schema 的问题
  • 改善聊天场景中的结构化响应格式约束
  • 依赖 JSON Schema 的相关应用需要回归验证

llama.cpp b12277:修正 mtmd 格式并统一命名

该版本修正 mtmd 的字符串格式问题,并将相关命名统一为 mtmd_format。影响直接使用 mtmd 接口或维护多模态子系统的开发者;虽然变化集中在接口层,但调用方需留意名称调整带来的兼容性影响。

  • 修正 mtmd 字符串格式处理
  • 将相关接口命名统一为 mtmd_format
  • mtmd 接口调用方需关注名称变化

llama.cpp b12274:加入 FP8 KV Cache 支持

该版本加入 FP8 KV Cache,并增加缩放 FP8 KV Cache 测试,修复缩放映射、反量化与 RoPE shift 前处理等问题,同时允许 BF16 scale。影响关注推理内存占用和 KV Cache 精度控制的开发者;部分多 GPU 与回退路径仍有明确限制,相关用户应关注测试覆盖和硬件条件。

  • 新增 FP8 KV Cache 与缩放 KV Cache 测试
  • 修复 scale 映射、FP8 反量化和 RoPE shift 前处理
  • 支持 BF16 scale,并将端到端测试迁至架构测试
  • 禁用 FP8 场景下的部分 kv-ffload 与多 GPU 测试组合