用 llama.cpp 把 13B 模型塞进 8GB 显存:GGUF 量化部署实战(含完整命令)

很多人想在本机跑大模型,但一看到"13B 模型需要 26GB 显存"就劝退了。其实只要做一步量化,同样的效果完全能在消费级显卡甚至纯 CPU 上跑起来。本文用 llama.cpp 走一遍从源码编译、模型转换、量化到本地推理服务的全流程,命令可直接复制,踩过的坑也都标了出来。

llama.cpp 量化部署全流程:原始 HF 模型经转换与量化生成 GGUF,再由本地推理服务对外提供 CLI 与 OpenAI 兼容 API

一、为什么一定要量化

FP16 的 13B 模型权重约 26GB,光加载就超出绝大多数笔记本显卡的显存。量化通过把权重从 16 位浮点压缩到 4~5 位整数,体积和显存占用直接砍掉 3~4 倍,推理速度反而更快(显存带宽压力小了)。代价是极小的精度损失,对大部分问答、摘要任务几乎无感。

量化前后模型体积与显存占用对比柱状图:FP16 约 26GB,Q4_K_M 约 7.5GB,Q5_K_M 约 9.2GB

二、编译 llama.cpp

官方已全面迁移到 CMake 构建,比老的 Makefile 更稳:

git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
cmake -B build -DGGML_CUDA=ON   # 有 NVIDIA 显卡加这个,纯 CPU 去掉
cmake --build build --config Release -j $(nproc)

编译产物在 build/bin/,关键有两个:llama-quantize(量化工具)和 llama-server(推理服务)。踩坑提醒:Windows 上务必用 Visual Studio 的"Developer Command Prompt"执行,否则找不到 C++ 工具链。

三、HuggingFace 模型转 GGUF 并量化

先装转换依赖,再把原始模型转成 GGUF 中间格式,最后量化:

pip install -r requirements.txt

# 1) 转 GGUF(未量化)
python convert_hf_to_gguf.py ../Qwen2.5-13B-Instruct --outfile qwen13b-f16.gguf

# 2) 量化到 Q4_K_M(体积与质量的甜点)
./build/bin/llama-quantize qwen13b-f16.gguf qwen13b-q4km.gguf Q4_K_M

常用档位:Q4_K_M(~7.5GB,首选)、Q5_K_M(~9.2GB,质量更好)、Q8_0(~14GB,接近无损)。8GB 显存选 Q4_K_M 刚好。

四、启动本地推理服务

一行命令起 OpenAI 兼容服务,方便接 LangChain、Open-WebUI 等生态:

./build/bin/llama-server -m qwen13b-q4km.gguf \
  -ngl 33 -c 8192 --host 0.0.0.0 --port 8080

-ngl 33 表示把 33 层卸载到 GPU;-c 8192 是上下文长度。起来后访问 http://localhost:8080 有自带对话界面。

五、用 Python 调用

服务兼容 OpenAI 接口,改个 base_url 就能复用现有代码:

from openai import OpenAI

client = OpenAI(base_url="http://localhost:8080/v1", api_key="sk-noauth")
resp = client.chat.completions.create(
    model="qwen13b-q4km",
    messages=[{"role": "user", "content": "用一句话解释量化"}],
)
print(resp.choices[0].message.content)

总结

量化不是"将就",而是把大模型真正用起来的第一步。本文的五步链路(编译→转换→量化→服务→调用)覆盖了 90% 的本地部署需求。下一步可以接 RAG 让模型读你的私有文档,我们下篇聊。

待生成图片

  • 图1:llama.cpp 量化部署全流程架构图,扁平科技插画风,左侧"HuggingFace 原始模型"经"转换 GGUF"与"量化 Q4_K_M"两个处理块,汇聚到"本地推理服务",再分叉出"CLI 对话"与"OpenAI 兼容 API"两个出口;用于引言。 -> 对应正文引用 images/blog1_图1.jpg
  • 图2:量化前后显存/体积对比柱状图,简洁数据风,三组柱子分别标注 FP16≈26GB、Q4_K_M≈7.5GB、Q5_K_M≈9.2GB,配色区分;用于"为什么一定要量化"小节。 -> 对应正文引用 images/blog1_图2.jpg

更多推荐