2026年本地运行Llama

📘 教程 2026-08-05 · 更新于 2026-11-02 约 6 分钟阅读

llama.cpp把Llama级模型塞进笔记本、树莓派甚至手机:GGUF量化格式、CPU/GPU混合推理、自带OpenAI兼容服务端。这篇从编译装到跑起一个能对外提供接口的服务,参数逐条讲清。

💡 你将学到

llama.cpp把Llama级模型塞进笔记本、树莓派甚至手机:GGUF量化格式、CPU/GPU混合推理、自带OpenAI兼容服务端。这篇从编译装到跑起一个能对外提供接口的服务,参数逐条讲清。

📜 目录

2026年本地运行Llama:llama.cpp完整指南,从下载GGUF到任意硬件上聊天

想在本地跑 Llama 级模型,绕不开 llama.cpp。它是 GGUF 格式的参考实现,纯 C/C++,没有 Python 依赖,量化后的 4 位模型能把内存占用压到 FP16 的四分之一左右,于是同一台机器能跑下原本装不下的模型。这篇文章按"编译 → 找模型 → 命令行跑通 → 调参 → 起服务"的顺序走完,参数解释到能自己判断该填什么。

一、先搞清三件事

  1. GGUF 是模型文件格式,不是模型本身。 同一个 Llama 权重可以导出多个量化等级的 GGUF,质量与体积成反比。
  2. llama.cpp 只负责推理,不负责下载。 模型从 Hugging Face 上的社区仓库取,认准上传者的量化说明。
  3. CPU 也能跑,只是慢。 GPU 卸载(offload)是加速手段,不是必需条件。这就是它能在树莓派和手机上跑起来的原因。

二、编译安装

官方仓库已经迁到 ggml-org 组织下,构建用 CMake:

git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
cmake -B build                                  # CPU 版
cmake -B build -DGGML_CUDA=ON                   # NVIDIA
cmake -B build -DGGML_METAL=ON                  # Apple Silicon
cmake -B build -DGGML_VULKAN=ON                 # AMD / Intel 核显
cmake --build build --config Release -j

编译完的可执行文件在 build/bin/ 下,主要有两个:llama-cli(交互聊天)和 llama-server(HTTP 服务)。Windows 用户可以直接下载 GitHub Releases 里的预编译包,解压即用,省掉工具链。

常见坑:CUDA 版本要和驱动匹配;Mac 上用 Metal 不需要额外装驱动;Vulkan 后端对 AMD 显卡兼容性最好但首次编译较慢。

三、找模型:量化等级怎么选

Hugging Face 上搜模型名加 GGUF 后缀,社区上传者通常会在说明里列出各量化版本的文件大小。量化等级的经验判断:

量化 大致位宽 质量 适用
Q8_0 8 位 几乎无损 内存充裕,做对照基线
Q6_K 6 位 很接近原版 显存够、追求质量
Q5_K_M 5 位 损失可忽略 平衡档
Q4_K_M 4 位 日常可用 默认推荐,体积与质量平衡点
Q3_K_M 3 位 明显退化 实在装不下时用
Q2_K 2 位 只能凑合 不建议,除非只做演示

先看文件大小能不能塞进显存(或内存),再谈等级。装得下 Q4_K_M 就别用 Q2_K,装不下才往下调。低于 3 位的模型经常出现重复、跑题、指令不跟随,问题不在参数而在量化。

四、跑通第一条对话

./build/bin/llama-cli \
  -m ./models/xxx-Q4_K_M.gguf \
  -ngl 99 \
  -c 4096 \
  -t 8 \
  -p "用三句话解释什么是量化" \
  -n 256

-ngl 99 表示把全部层放到 GPU,层数不够时按实际层数填;不加则是纯 CPU 推理。跑通之后可以用 -cnv 进入多轮对话模式。

五、核心参数表

参数 含义 怎么填
-m 模型文件路径 必填
-ngl N 卸载到 GPU 的层数 显存够就全放,爆显存就减
-c N 上下文长度(token) 4096 起步,按需加,越长越吃显存
-t N CPU 线程数 取物理核数,不要超过
-fa Flash Attention 支持的硬件上开启,省显存提速
--temp 温度 0.2 严谨任务,0.7 创意任务
--repeat-penalty 重复惩罚 1.1 左右,出现复读时上调
-n 最大生成 token 数 512 起步,防跑飞

六、起一个 OpenAI 兼容服务

./build/bin/llama-server -m ./models/xxx-Q4_K_M.gguf -ngl 99 -c 8192 --host 0.0.0.0 --port 8080

之后就能用 OpenAI SDK 的风格调用:

curl http://127.0.0.1:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model":"local","messages":[{"role":"user","content":"你好"}]}'

llama-server 自带 Web 界面(浏览器打开根路径即可),也支持 /completion 原生接口、流式输出和并发槽位(--parallel)。多用户共用一台机器时,槽位数的显存开销要一起算进去。

七、显存怎么估算

权重占用 ≈ 参数量 × 量化位宽 ÷ 8。8B 模型在 Q4_K_M 下权重约 5GB 上下,这是文件大小的量级,具体看文件本身。

剩下的是上下文缓存(KV cache),它随上下文长度线性增长,公式是:

每 token KV ≈ 2 × 层数 × KV头数 × 单头维度 × 字节数

不用手算到精确,记两条经验:上下文从 4K 拉到 32K,KV 缓存会涨好几倍;开启 Flash Attention 能明显压住这部分开销。显存吃紧时先降上下文,再降量化等级。

常见问题

Q:CPU 跑得动吗? A:跑得动,7B 级 Q4 模型在现代桌面 CPU 上大约每秒几个 token,写短句够用,长文等得久。Apple Silicon 的统一内存和核显表现好很多。

Q:模型输出一直重复怎么办? A:提高 --repeat-penalty 到 1.15 左右,降低温度,同时检查提示词里有没有让它陷入循环的格式。低量化等级的模型更容易复读。

Q:能不能同时加载多个模型? A:可以,起多个 llama-server 实例绑不同端口,但每个实例独立占显存。单实例切换模型用 API 的模型管理接口,具体行为以官方文档为准。

Q:和 Ollama 什么关系? A:Ollama 底层用的就是 llama.cpp 的推理库,多了模型管理和开机自启。要省事用 Ollama,要压榨性能、要精细控制参数就用 llama.cpp 本体。

注:参数名和默认值随版本变化,编译选项以官方仓库 README 为准;各量化文件的实际体积以 Hugging Face 仓库显示为准。

相关文章

❓ 常见问题

What is GGUF?

The file format that stores quantized model weights + metadata, designed by the llama.cpp project.

Which model size for my RAM?

Rule of thumb: pick a quantized model roughly half your free RAM. 8GB RAM - 4B models; 16GB - 8B; 32GB - 13-14B.

Can I use a GPU?

Yes - CUDA, ROCm, Metal and Vulkan backends are supported. Use `-ngl 99` to offload all layers to GPU.

相关文章
2026-08-07
AI语音克隆:开源工具与语音复制的伦理边界
2026-08-13
Axolotl 微调教程 2026:配置文件驱动的 LLM 训练实战
2026-08-06
GPTScript(3,282星)2026:用自然语言脚本构建能操作你系统的AI助手
2026-07-19
MCP 服务器实战指南:什么是 MCP,为什么它是 2026 年 AI 开发者的必学技能
2026-07-19
AI应用安全:7种Prompt注入攻击手法与实战防御策略
2026-07-22
提示工程2026:15种实用技巧

本站文章由编辑人工撰写,收录的工具均经过实测或公开资料核验。文中链接指向工具官网或 GitHub 仓库,仅作信息参考,不构成付费推广。

💬 评论 (0)

暂无评论,来说两句吧~

登录后评论