跳到主要内容
极客日志极客日志面向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/7/1435 浏览
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. 参考资料
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Claude Skills 与 MCP 对比:为何 Skills 更省 Token 且易用
  • 淘宝超市卡 TopAPI 接入实战:Spring Boot + Lombok 实现方案
  • HDFS 分布式文件系统编程实践
  • Python 爬虫实战:金融机构贷款产品信息抓取
  • 宇树机器人 G1 二次开发:导航仿真与地图转换教程
  • AutoFigure:从长文本到出版级科研插图的 AI 生成框架
  • Spring Cloud OpenFeign 远程调用最佳实践
  • AI 时代,普通人如何脱颖而出?
  • 零公网 IP 安全访问本地 AI 服务的方法与实践
  • Python 实现十大经典排序算法详解:原理、代码与复杂度分析
  • Telegram 机器人 Token 与 ChatID 获取实战指南
  • 相干伊辛机在医疗与医疗 AI 领域的应用前景
  • 基于 Java 和 Leaflet 的湖南省道路长度 WebGIS 系统构建
  • 理解MySQL事务隔离:读未提交、读提交、可重复读和串行化
  • Windows 11 部署 Langchain-Chatchat 本地知识库指南
  • 手势控制电脑方案分析与 Python 实战
  • 无人机视觉任务常用数据集汇总:检测与分割资源整理
  • AIGC 产品经理面试高频 100 题答案解析
  • 手写 C++ TCP 服务器:自定义协议与粘包处理
  • Rust WebAssembly 与 Three.js 结合的高性能 3D 粒子系统实战

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如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