背景与概述
Llama.cpp 是一个开源软件库,专注于在各种硬件上执行大型语言模型(LLM)的推理,特别是在 CPU 上运行。它由 Georgi Gerganov 开发,于 2023 年 3 月开始,旨在提供无依赖的纯 C/C++ 实现,特别优化了 Apple Silicon(通过 ARM NEON、Accelerate 和 Metal 框架)和 x86 架构(支持 AVX、AVX2、AVX512 和 AMX)。它与 GGML 项目共同开发,GGML 是一个通用的张量库,专注于严格的内存管理和多线程。
Llama.cpp 的主要目标是启用 LLM 推理,具备最小的设置和最先进的性能,适用于本地和云端硬件。它支持 1.5 位到 8 位的整数量化,以加快推理和减少内存使用,并包括自定义 CUDA 内核以支持 NVIDIA GPU,以及通过 HIP 和 MUSA 支持 AMD 和 Moore Threads MTT GPU。
截至 2025 年 3 月 24 日,GitHub 上的 Llama.cpp 仓库已有超过 67,000 颗星,显示其社区的活跃度和广泛使用。它最初设计为 CPU 优先,但后来添加了 GPU 推理支持,适合没有专用硬件的用户,甚至可以在 Android 设备上运行。
更多AI资讯,请访问 2img.ai ,海量免费资源

学习 Llama.cpp 的必要背景
学习 Llama.cpp 需要一定的 C/C++ 编程知识,因为它是基于这些语言开发的。此外,了解深度学习和大型语言模型的基本概念(如 transformer 架构、量化、提示工程)将有助于更好地掌握其应用。Llama.cpp 支持多种模型,包括 LLaMA、LLaMA 2、Falcon、Alpaca、GPT4All 等,模型格式主要为 GGUF(GPT-Generated Unified Format),这是 GGML 的后继格式,包含架构元数据和特殊标记支持。
学习资源与教程
以下是学习 Llama.cpp 的详细资源,涵盖官方文档、教程和课程:
- 官方 GitHub 仓库
- 网址:https://github.com/ggml-org/llama.cpp
- 内容包括开发文档、模型量化指南、后端支持(如 Metal、BLAS、CUDA)和贡献指南。特别推荐:
- 开发文档:HOWTO-add-model.md
- 模型量化:examples/quantize/README.md
- 后端支持:如 CUDA 构建指南在 build.md
- 这是学习和贡献的最佳起点,包含社区讨论和更新日志。
- DataCamp 教程
- 网址:https://www.datacamp.com/tutorial/llama-cpp-tutorial
- 这是一个全面的指南,更新于 2024 年 12 月 10 日,耗时约 11 分钟阅读。内容包括:
- 设置开发环境(需要 Python 和 llama-cpp-python)
- 理解 Llama.cpp 基础,如 Llama 类参数(model_path、prompt、max_tokens 等)
- 实际项目示例,使用 Zephyr-7B-Beta 模型进行文本生成
- 实际应用案例,如 ETP4Africa 教育应用的 CPU 优化
- 教程还链接到相关资源,如 Transformers 和 Mistral 7B 的教程,适合初学者。
- PyImageSearch 指南
- 网址:https://pyimagesearch.com/2024/08/26/llama-cpp-the-ultimate-guide-to-efficient-llm-inference-and-applications
- 发布于 2024 年 8 月 26 日,重点介绍如何使用 Llama.cpp 进行高效 LLM 推理和构建应用。内容包括:
- 核心组件和支持的模型
- 设置过程和 llama-cpp-python 绑定
- 实际应用示例,结合 LangChain 和 Gradio UI 构建多模态聊天应用
- 提供视频课程(需订阅 PyImageSearch University),适合希望深入学习的用户。
- Coursera 课程
- 网址:https://www.coursera.org/learn/llamafile-local-llm
- 课程名称:Beginning Llamafile for Local Large Language Models (LLMs),由 Duke University 提供,适合初学者。
- 持续时间:3 小时完成,3 周每周 1 小时,灵活学习。
- 内容包括:
- 使用 llama.cpp 框架将 LLM 作为生产就绪的 Web API 提供服务
- 理解 llama.cpp 示例服务器的架构和能力(文本生成、标记化、嵌入提取)
- 动手实践配置和定制服务器,使用命令行选项和 API 参数
- 包括 8 个视频、17 个阅读材料、4 个作业、1 个讨论提示和 4 个非评分实验室,提供可分享的职业证书。
实践建议
为了深入学习,建议:
- 设置开发环境:根据操作系统(MacOS、Windows、Linux)安装 llama-cpp-python,MacOS 需要 Xcode 和 Metal 支持,Windows 和 Linux 有详细构建指南。
- 实验不同模型:选择适合硬件的量化模型,如 Mixtral-8x7B(高计算需求)或 Llama-2-7b(较少需求),从 Hugging Face 下载。
- 参与社区:加入 Reddit 或 GitHub 讨论,获取实时支持和最新更新。
技术细节与优化
Llama.cpp 支持多种优化,包括:
- 量化:从 1.5 位到 8 位整数量化,减少内存使用和加快推理。
- GPU 支持:通过 CUDA(NVIDIA)、HIP(AMD)、Metal(MacOS)等后端启用,需设置 n_gpu_layers=1。
- 提示工程:使用 Jinja 模板匹配模型格式,GBNF 语法控制输出格式。
以下是支持的模型和格式的概览:
模型示例 | 格式 | 特点 |
LLaMA, LLaMA 2 | GGUF | 基础模型,支持高上下文窗口 |
Mixtral-8x7B | GGUF | 高性能,多专家混合模型,32k 标记 |
Zephyr-7B-Beta | GGUF | 微调版,适合文本生成任务 |
GPTQ(Linux/Windows) | GPTQ | 适用于特定平台的量化格式 |
局限性与未来发展
Llama.cpp 主要为 CPU 优化,可能在大型模型或复杂工作流中不如 GPU 解决方案性能好。温度参数(0-1)影响模型输出的随机性,低值更确定,高值更具创造性。社区持续更新,建议关注 GitHub 仓库获取最新进展。
开始编译
Build llama.cpp locally
To get the Code:
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
The following sections describe how to build with different backends and options.
CPU Build
Build llama.cpp using CMake
:
cmake -B build
cmake –build build –config Release
编译完成之后,可以成果看到Lib,Include ,Bin等目录。
工程中用VS2022 打开,你也可以看到很多项目:

我之后想用QT做一套类似LM Studio一样的产品。有无同学有兴趣一起弄?
关键引用
- GitHub – ggml-org/llama.cpp: LLM inference in C/C++
- Llama.cpp Tutorial: A Complete Guide to Efficient LLM Inference and Implementation | DataCamp
- Llama.cpp: The Ultimate Guide to Efficient LLM Inference and Applications – PyImageSearch
- Beginning Llamafile for Local Large Language Models (LLMs) | Coursera
RA/SD 衍生者AI训练营。发布者:稻草人,转载请注明出处:https://www.shxcj.com/archives/9502