跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
C++AI算法

llama.cpp 大模型本地部署与使用指南

llama.cpp 是高性能 C++ 库,支持多硬件运行大模型。对比了 LLaMA、llama.cpp 与 Ollama 的区别,解析 GGUF 格式优势。详述了 Mac M1 与 Linux 环境下的安装(brew/源码)及推理流程,展示了端侧部署的高效性,特别指出 Apple Silicon 的优化效果。

奇形怪状发布于 2026/4/10更新于 2026/9/453 浏览
llama.cpp 大模型本地部署与使用指南

介绍 llama.cpp

本节主要介绍什么是 llama.cpp,以及 llama.cpp、llama、ollama 的区别。同时说明一下 GGUF 这种模型文件格式。

什么是 llama.cpp

llama.cpp 是一个由 Georgi Gerganov 开发的高性能 C++ 库,主要目标是在各种硬件上(本地和云端)以最少的设置和最先进的性能实现大型语言模型推理。

主要特点:

  • 纯 C/C++ 实现,没有任何依赖
  • 对 Apple Silicon(如 M1/M2/M3 芯片)提供一流支持 - 通过 ARM NEON、Accelerate 和 Metal 框架优化
  • 支持 x86 架构的 AVX、AVX2、AVX512 和 AMX 指令集
  • 支持 1.5 位、2 位、3 位、4 位、5 位、6 位和 8 位整数量化,实现更快的推理和更低的内存使用
  • 为 NVIDIA GPU 提供自定义 CUDA 内核(通过 HIP 支持 AMD GPU,通过 MUSA 支持摩尔线程 MTT GPU)
  • 支持 Vulkan 和 SYCL 后端
  • CPU+GPU 混合推理,可部分加速大于总 VRAM 容量的模型

llama、llama.cpp、ollama 的区别

是不是经常听到 llama、llama.cpp、ollama 这三个名字,看起来都包括 llama,但实际上它们是不同的概念:

  1. LLaMA:
    • LLaMA(Large Language Model Meta AI)是由 Meta(Facebook)开发的大型语言模型系列
    • 它是一组开源的基础语言模型,包括不同参数规模的版本(如 LLaMA、LLaMA 2、LLaMA 3 等)
    • LLaMA 是模型本身,即训练好的神经网络权重和架构文件,有不同大小的模型,如 3B、7B、13B、65B、70B、130B 等
  2. llama.cpp:
    • llama.cpp 是一个 C++ 库,用于在 CPU 上高效运行 LLaMA 模型
    • 它是由 Georgi Gerganov 开发的,专注于优化 LLaMA 模型在消费级硬件上的推理性能
    • 主要特点是内存效率高、支持量化(如 4-bit、5-bit、8-bit 量化)以减少内存需求
    • 它是运行模型的推理引擎
  3. Ollama:
    • Ollama 是一个应用程序,让用户能够轻松下载、运行和使用各种大型语言模型
    • 它在底层使用 llama.cpp 作为推理引擎
    • Ollama 提供了友好的命令行界面和 API,简化了模型的管理和使用
    • 它相当于是 llama.cpp 的上层封装,增加了模型管理、会话管理等功能

所以说,LLaMA 是模型本身("大脑"),llama.cpp 是高效运行这些模型的引擎("引擎"),Ollama 是一个用户友好的应用程序,使用 llama.cpp 作为引擎,让普通用户能够轻松使用这些模型("应用")

GGUF

我们常听说一下模型文件格式,GGUF 就是其中一种专为 llama.cpp 设计的二进制格式,取代早期的 GGML。GGUF(GPT-Generated Unified Format)是一种用于存储模型以便使用 GGML 和基于 GGML 的执行器进行推理的文件格式,具有以下优势:

  • 高效存储与加载:通过紧凑编码和内存映射技术加速模型载入
  • 自包含性:文件内包含模型架构、超参数等完整信息,无需额外依赖
  • 可扩展性:支持在不破坏兼容性的情况下新增元数据

下图是一个文件格式介绍:

image.png

Mac M1 上安装 llama.cpp 做模型推理

本节介绍如何在 Mac M1 上安装 llama.cpp,并使用模型进行推理。

设备:Mac Book Air (M1 芯片,8G 内存) 系统:macOS 15.0 模型:llama3.2-3B-Instruct

安装

Mac 设备上安装有两种方式,下载源代码编译或者通过 brew 安装。我们直接用 brew 安装。

brew install llama.cpp

下载模型

https://huggingface.co/models?library=gguf&sort=trending

https://huggingface.co/bartowski/Llama-3.2-3B-Instruct-GGUF/blob/main/Llama-3.2-3B-Instruct-Q8_0.gguf

运行推理

llama-cli -m Llama-3.2-3B-Instruct-Q8_0.gguf

运行成功后,可以看到一些推理参数。比如对 Apple 的图形计算 Metal 的支持、对 ARM 上 NEON 优化的支持等。

Screenshot 2025-03-21 at 18.14.36.png

在命令行直接对话:

Screenshot 2025-03-21 at 18.15.23.png

M1 芯片的 Mac 上,llama.cpp 的推理速度非常快,基本秒出结果。

Linux 下安装 llama.cpp 并使用模型进行推理

本节介绍如何在 Linux 下安装 llama.cpp,并使用模型进行推理。

设备:Linux 服务器 (阿里云服务器:Intel CPU,2G 内存) 系统:Ubuntu 22.04 模型:llama3.2-3B-Instruct

安装

  1. 下载编译
git clone https://github.com/ggerganov/llama.cpp.git
  1. 安装 cmake
sudo apt install cmake
  1. 编译
cmake -B build

运行推理

  1. 下载模型文件

同样使用前面下载的模型文件 Llama-3.2-3B-Instruct-Q8_0.gguf。

  1. 运行推理
../llama.cpp/build/bin/llama-cli -m Llama-3.2-3B-Instruct-Q8_0.gguf

Screenshot 2025-03-21 at 19.04.49.png

阿里云服务器是 Intel CPU,所以需要使用 CPU 进行推理。配置比较低,所以推理速度比较慢,不可用。服务端的话还是要购买 GPU 服务器或者直接购买 API 服务做推理。

总结

  1. 由于 llama.cpp 是纯 C/C++ 实现的,能够跨平台部署大模型推理。同时针对不同的硬件做了优化,所以推理速度非常快,尤其是 Apple M1 芯片,完全超出预期。平时用的多的 Ollama 就是基于这个库的封装,对使用模型和应用开发更加友好。如果不做模型量化转换的话,用 Ollama 做本地模型部署就可以了。
  2. 小模型部署在端侧的部署还是很有意义的,比如在手机上部署一个 llama3.2-3B-Instruct 模型,可以实现非常快的推理速度。未来模型同时在端侧和云端部署,端侧模型推理速度更快,云端模型更强大,可以实现非常多的应用场景。

参考资料

  1. https://github.com/ggml-org/llama.cpp
  2. https://github.com/ggml-org/ggml/blob/master/docs/gguf.md
  3. https://github.com/ggml-org/llama.cpp/blob/master/docs/install.md
  4. https://agi-sphere.com/install-llama-mac

目录

  1. 介绍 llama.cpp
  2. 什么是 llama.cpp
  3. llama、llama.cpp、ollama 的区别
  4. GGUF
  5. Mac M1 上安装 llama.cpp 做模型推理
  6. 安装
  7. 下载模型
  8. 运行推理
  9. Linux 下安装 llama.cpp 并使用模型进行推理
  10. 安装
  11. 运行推理
  12. 总结
  13. 参考资料

更多推荐文章

查看全部
  • GitHub Copilot 性能优化:提升 AI 代码建议响应速度 15%
  • Spatial Joy 2025 全球 AR&AI 赛事:开发者资源与参赛攻略
  • DeepSeek 深度使用指南:提示词技巧与本地知识库搭建
  • LLaMA-Factory 部署与大模型微调实战
  • Git 查看 Commit 修改文件概要的常用命令与技巧
  • MaxBot 抢票机器人部署指南:从环境配置到实战策略
  • 轻量级 SVGA 动画播放器:Web 端流畅动画实现
  • 移动端 H5 开发与 PC 端 Web 开发的区别
  • DGX Spark 部署 vLLM + Open WebUI 运行 Qwen3-Coder-Next-FP8(CUDA 13.0 版)
  • AI+ 游戏开发:使用 DeepSeek 构建贪吃蛇游戏
  • Axios 错误处理的设计与进阶封装,实现网络层面的数据与状态解耦
  • OpenClaw 自动化 AI 助理使用指南与技能配置详解
  • OpenClaw 接入飞书机器人与 Kimi2.5 配置指南
  • Whisper 语音识别 GPU 加速实战指南
  • 2025 AI 技术成长复盘与深度学习实践心得
  • Python 语言学习:大学生学术与职业应用指南
  • C++ 与 ROS 中 int main(int argc, char* argv[]) 的区别
  • Python 基础:列表与元组的创建、操作及区别
  • Python 实现 MCP 客户端调用高德地图天气查询示例
  • 极化码 SC 译码算法原理、MATLAB 实现与优化策略

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online