初识llama.cpp - 轻量级推理引擎

前言

在 LLM 落地应用的过程中,推理效率和部署门槛是开发者面临的两大痛点。llama.cpp 以其卓越的跨平台兼容性和惊人的推理速度,成为了当前本地推理事实上的工业标准。本系列文章将构建一条从"应用使用"到"源码解析"的学习曲线,包含入门与概览、模型加载与初始化、推理循环核心、计算后端与性能调优、总结与展望五个部分。第一章"初识 llama.cpp-轻量级推理引擎"作为入门与概览的首篇文章,将从简介、编译、本地运行三个方面,快速建立对llamacpp的认识。


目录

  • 1 简介
  • 2 编译
  • 3 本地运行

1 简介

llama.cpp 的核心目标是:在本地及云端的各类硬件平台上,以极简的配置实现业界顶尖的大语言模型(LLM)推理性能。 该项目采用纯 C/C++ 开发,完全脱离了对外部库的依赖,通过针对 Apple Silicon、x86 及 RISC-V 架构的深度指令集优化,以及对 1.5-bit 到 8-bit 整数量化技术的支持,在显著降低显存占用的同时实现了飞跃式的推理速度。凭借对 CUDA、Metal、Vulkan 等多样化计算后端的高效兼容,以及独具特色的 CPU+GPU 混合推理模式,它不仅确保了模型在各类主流及国产硬件上的极致表现,更成为了 ggml 库探索前沿功能、驱动生态创新的核心阵地。

2 编译

llama.cpp 具备卓越的跨平台兼容性,支持在 Windows、Linux、macOS、Android 及各类嵌入式设备上,针对 CPU、CUDA、Metal 或 Vulkan 等多样化硬件后端进行高效编译与部署。接下来,我们将以 Windows 11 环境为例,详细说明开启 CUDA 加速(适用于 NVIDIA 显卡)或仅采用 CPU 推理模式下的具体编译流程与操作细节。

在开始编译前,请确保系统中已正确安装以下开发工具链:

1) Visual Studio 2022:核心编译器,安装时务必勾选"使用 C++ 的桌面开发"组件。

2) CUDA Toolkit 11.8(可选):NVIDIA 显卡驱动加速工具包,用于开启 GPU 推理能力。若您的显卡非 NVIDIA 或仅计划使用 CPU 进行推理,可跳过此项安装,后续编译时将默认采用 CPU 后端。

3) CMake:跨平台项目构建工具,建议版本 3.20 或以上。

其中CUDA Toolkit 11.8的环境配置,首先前往官网CUDA Toolkit 11.8 Downloads | NVIDIA Developer,接着选择Windows、x86_64、11、exe(local),将安装包(约3GB)下载到本地,同时安装前请务必提前安装VS 2022,安装完成后,CUDA会自动向系统注入环境变量,可手动检查进行确认,可在Path变量中找到如下两条记录:

在cmd命令窗口中,运行nvcc --version命令,得到如下输出,表明CUDA Toolkit安装和环境配置成功。

接着编译并安装llama.cpp,运行如下命令,将源码下载到本地:

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

采用CMake-gui构建解决方案,在Where is the source code中选择源码根目录,在 Where to build the binaries 中选择或新建一个 build 文件夹,点击Configure按钮,在弹窗中选择Visual Studio 17 2022和x64。

在 CMake-gui 的配置过程中,针对需要开启 GPU 加速的用户,可勾选GGML_CUDA选项,取消勾选GGML_NATIVE选项,再次点击Configure按钮,CMake-gui界面会出现与CUDA相关选项,如下图所示,具体的依赖CUDA环境的构建方法可详见[++++llama.cpp/docs/build.md at master · ggml-org/llama.cpp++++](#llama.cpp/docs/build.md at master · ggml-org/llama.cpp)。

接着分别点击Generate、Open Project按钮, Visual Studio 顶部工具栏中,将编译配置由Debug切换为Release,在右侧"解决方案资源管理器"中,右键点击解决方案 'llama.cpp',选择"生成解决方案",编译完成后点击Install项目,将编译完成的llama-server.exe等拷贝到安装目录,而安装目录为CMake-gui界面中CMAKE_INSTALL_PREFIX对应的路径,用户可在点击Configure按钮前进行修改。一个包含llama-server.exe的打包文件夹,可从此链接下载,用于读者本地体验。

3 本地运行

在顺利完成 llama.cpp 的编译构建后,高性能推理框架已准备就绪。接下来的核心任务是为其配置支撑智能推理的关键组件------大语言模型权重文件。llama.cpp 使用的是经过优化的 GGUF 格式。GGUF可在Hugging Face(Hugging Face -- The AI community building the future.)或其镜像网站(HF-Mirror)上下载,可搜索gemma-3-1b-it-GGUF并点击gemma-3-1b-it-Q4_K_M.gguf模型进行下载,其中gemma-3为模型所属的家族,由Google开发的开源大模型系列Gemma的第三代(version 3),1b表示参数规模,具体表示模型包含10亿参数。it表示模型类型/变体,具体为Instruction Tuned(指令微调),Q4_K_M表示模型量化等级,表示对原始模型(FP16)权重进行了多大程度的压缩(量化),Q4代表4-bit量化,K表示使用了K-Quants算法,M代表Medium,在同意量化位数下,通常有S(Small)、M(Medium)、L(large)之分。GGUF命名规范详细见ggml/docs/gguf.md at master · ggml-org/ggml中GGUF Naming Convention部分。

在准备好推理引擎与模型文件后,接下来我们将通过运行llama-server.exe并配置关键参数(如-m指定模型路径与-ngl 99开启全量 GPU 加速)来激活本地 AI 服务。在建立起一个兼容 OpenAI API 规范的高性能推理接口的同时,可在浏览器中通过http://127.0.0.1:8080访问可视化交互界面,正式开启与本地大模型的零延迟对话体验,如下图所示:

此问答过程为GPU推理,可通过llama-server.exe启动时相关日志看出:

文末:作为本系列的开篇,本文从简介、编译、本地运行三个方面,为读者快速建立了对llamacpp的认识。在本文的最后运行了本地大模型服务,下一章将进一步深入从命令行到HTTP Server的过程,包括应用实战(启动大模型服务),并进一步深入代码,探索基于 cpp-httplib 的大模型服务运行机制。

相关推荐
wumingxiaoyao3 分钟前
从 0 开始学 AI:第 2 课,AI、机器学习、深度学习和大模型是什么关系?
人工智能·深度学习·机器学习·ai·大模型·llm
掉鱼的猫3 小时前
Agent Harness 实战指南:构建生产级 AI Agent 的"马具"框架
java·llm·aigc
带刺的坐椅3 小时前
Agent Harness 实战指南:构建生产级 AI Agent 的"马具"框架
java·ai·llm·agent·solon-ai
染指11103 小时前
46.llama_index-提示词模板(富提示词模板、jinja2静态和动态模板)
llama·rag·llamaindex
武子康8 小时前
调查研究-216 Tesla Robotaxi 进了 Miami,但真正的考题才刚开始
人工智能·llm·自动驾驶
Token炼金师8 小时前
数据工程层:企业AI项目七成折戟的第一道死亡谷
人工智能·深度学习·llm
不好听6139 小时前
从踩坑到封装:手把手教你写一个 Claude Code Skill
llm·agent
不好听6139 小时前
别再把 Prompt 当一次性筷子用了:Claude Code Skills 入门指南
llm·agent
先吃饱再说9 小时前
手写一个文件读写 MCP Server:让大模型“触摸”你的硬盘
llm·mcp
To_OC9 小时前
我写了个 10 行的加法函数,终于搞懂了什么是 Harness Engineering
人工智能·llm·claude