llama.cpp安装教程
它是什么llama.cpp 是一个纯 C/C++ 实现的高性能大语言模型推理引擎,支持在 CPU、GPU 等硬件上本地运行 GGUF 格式模型,本教程覆盖安装、获取程序、下载模型与运行步骤。
llama.cpp 是一个纯 C/C++ 实现的高性能大语言模型推理引擎,支持在 CPU、GPU 等硬件上本地运行 GGUF 格式模型,本教程覆盖安装、获取程序、下载模型与运行步骤。
详细介绍
简介
llama.cpp 是一个基于纯 C/C++ 实现的高性能大语言模型推理引擎,专为优化本地及云端部署而设计。它的核心目标是通过底层硬件加速和量化技术,让大型语言模型能够在消费级硬件(如个人电脑、边缘设备)上高效运行,无需依赖昂贵的服务器或复杂的云环境。llama.cpp 支持多种开源模型(如 LLaMA、LLaMA2、DeepSeek 蒸馏模型等),并采用 GGUF 格式存储量化模型,以减小内存占用并提升推理速度。它适合希望在本地离线运行大模型的开发者、研究人员、技术爱好者,以及需要将模型集成到自有应用中的工程师。核心优势在于纯 C/C++ 实现、无外部依赖、跨平台支持(Windows、Linux、macOS),并提供命令行工具(llama-cli)和本地服务器(llama-server)两种运行方式,便于灵活部署。
核心功能
- 纯 C/C++ 实现,无外部依赖,可编译为独立可执行文件,便于分发和部署。
- 支持 CPU 推理,通过 AVX、AVX2、AVX512 等指令集优化,在无 GPU 环境下也能运行。
- 支持 GPU 加速(如 CUDA、ROCm、Metal),通过 --n-gpu-layers 参数控制模型层在 GPU 上的卸载数量。
- 支持 GGUF 格式量化模型(如 Q4_K_M、Q5_K_M 等),显著降低内存占用,提高推理速度。
- 提供 llama-cli 命令行交互工具,支持对话、补全、脚本化调用。
- 提供 llama-server 本地 HTTP 服务器,可提供 OpenAI 兼容的 API 接口,便于集成到其他应用。
- 支持多种开源模型架构,包括 LLaMA、LLaMA2、Qwen、DeepSeek 等(以官方支持列表为准)。
使用场景
- 在无网络或内网环境中,本地运行大模型进行文本生成、问答、摘要等任务。
- 在个人电脑或边缘设备(如树莓派)上部署轻量级模型,用于隐私敏感的数据处理。
- 开发者将 llama-server 作为后端,为 Web 应用、聊天机器人或 IDE 插件提供本地推理 API。
- 研究人员用于模型量化效果对比、推理性能基准测试,或进行模型行为分析。
- 配合 Open WebUI 等前端工具,构建本地可交互的聊天界面(需自行配置连接)。
安装与获取步骤
- 获取程序:从 llama.cpp 官方 GitHub 仓库(https://github.com/ggml-org/llama.cpp)克隆或下载源代码,或使用预编译的二进制文件(以官方发布为准)。
- 编译(可选):在 Linux/macOS 上,使用 make 命令编译;在 Windows 上,可使用 CMake 或预编译的 release 包。若需 GPU 支持,编译时需指定对应后端(如 -DGGML_CUDA=ON)。
- 下载模型:从 Hugging Face 等平台下载 GGUF 格式的量化模型文件(例如 DeepSeek 蒸馏模型的 GGUF 版本),并放置到本地目录。
- 运行 llama-cli:在终端执行 ./llama-cli -m 模型路径 -p 提示词,即可开始交互式对话。
- 运行 llama-server:执行 ./llama-server -m 模型路径 --port 8080,然后通过 HTTP 请求访问本地 API。
与同类方案的区别
llama.cpp 与 Ollama 等推理框架相比,更注重底层控制和最小化依赖。Ollama 提供一键安装和模型管理,但封装了更多细节;llama.cpp 则要求用户手动编译和下载模型,但提供了更高的灵活性和性能调优空间。与 vLLM 相比,llama.cpp 更专注于单机、边缘场景,vLLM 更偏向高吞吐的服务器部署。llama.cpp 的 GGUF 量化格式在消费级硬件上表现优异,而 vLLM 通常需要更多显存。
注意事项
- 编译时若缺少编译工具链(如 gcc、cmake),会导致失败;请先安装对应依赖(如 build-essential)。
- GPU 加速时需注意设备编号:若机器有多个 GPU(如集显+独显),默认可能使用错误设备,可通过 --main-gpu 或 --n-gpu-layers 参数指定。
- 模型文件较大(数 GB),下载时需确保磁盘空间充足;量化级别越低,文件越小但精度损失越大。
- llama-server 默认监听 127.0.0.1,如需局域网访问需设置 --host 0.0.0.0,并注意防火墙规则。
- 在 Windows 上若使用预编译包,需确保 Visual C++ 运行库已安装,否则可能报缺少 DLL。
- 若遇到 CUDA 相关报错(如 NaN 或精度问题),可尝试降低 batch 大小或更换量化格式(如从 IQ1_M 改为 Q4_K_M)。
- Python 绑定(llama-cpp-python)安装失败时,通常因编译环境不完整,可先安装 cmake 和编译器,或使用预编译 wheel(以官方发布为准)。
常见问题
- 问:llama.cpp 是否支持 Mac 的 Metal 加速?答:支持,编译时需启用 Metal 后端(如 -DGGML_METAL=ON),并在运行时自动使用 GPU。
- 问:如何查看当前使用的 GPU 设备?答:在运行 llama-cli 或 llama-server 时,添加 --verbose 参数,日志中会显示设备信息。
- 问:模型加载后内存不足怎么办?答:可尝试更低的量化级别(如 Q4_K_M 改为 Q2_K),或使用 --n-gpu-layers 减少 GPU 层数,将部分层留在 CPU。
- 问:llama-server 是否支持并发请求?答:支持,但默认并发数有限,可通过 --parallel 参数调整(以官方文档为准)。
- 问:如何将 llama.cpp 集成到 Python 项目?答:可使用 llama-cpp-python 库,通过 pip 安装,但需注意编译依赖;或调用 llama-server 的 HTTP API。
- 问:为什么我的模型输出质量差?答:可能量化级别过低或提示词不完整;可尝试更高精度量化,或调整采样参数(如 temperature、top_p)。
- 问:llama.cpp 能否运行多模态模型?答:支持部分视觉语言模型(VLM),但需要下载对应的多模态 GGUF 模型,并确保编译时启用相关支持。
- 问:如何更新 llama.cpp 到最新版?答:从官方仓库拉取最新代码并重新编译,或下载最新预编译包;注意模型格式兼容性,建议同步更新模型。
更新记录
最近更新:2026-10-27
软件参数速览
下载
常见问题
编译 llama.cpp 时提示缺少 cmake 或 g++,如何解决?
在 Ubuntu/Debian 上执行 sudo apt install build-essential cmake,在 macOS 上安装 Xcode Command Line Tools,然后重新编译。
运行 llama-cli 时出现 'error loading model' 是什么原因?
通常是因为模型路径错误或模型文件损坏。请确认 -m 参数指向的 GGUF 文件存在且完整,可尝试重新下载模型。
如何让 llama-server 在局域网内被其他设备访问?
启动时添加 --host 0.0.0.0 参数,并确保防火墙允许对应端口(默认 8080)的入站连接。
在 Windows 上使用预编译包,提示缺少 MSVCP140.dll 怎么办?
安装 Microsoft Visual C++ Redistributable(x64),可从微软官网下载,或使用 winget install Microsoft.VCRedist.2015+.x64。
llama.cpp 与 Ollama 相比,哪个更适合学习底层推理?
llama.cpp 更底层,需要手动编译和下载模型,适合理解推理流程;Ollama 更易用,适合快速部署。若想深入,选 llama.cpp。
如何指定使用独立显卡而不是 CPU 集成显卡?
在运行命令中添加 --n-gpu-layers 9999 --main-gpu 0(或指定设备编号),并确保编译时启用了对应 GPU 后端(如 CUDA)。
llama-server 返回 404 错误,如何排查?
检查请求的端点是否正确,llama-server 默认提供 /completion 和 /v1/chat/completions 等接口,确认端口和路径无误。
模型推理速度很慢,有哪些优化手段?
使用更低的量化级别(如 Q4_K_M)、增加 --n-gpu-layers 以利用 GPU、减少上下文长度(--ctx-size)、或使用 --threads 调整 CPU 线程数。