3254 字
16 分钟
大模型本地部署学习笔记:参数量、权重精度与量化

大模型本地部署学习笔记:参数量、权重精度与量化#

1. 参数量里的 7B、8B、27B 是什么?#

B 是 Billion(十亿)。它表示模型拥有多少个可训练参数:

  • 7B:约 70 亿个参数
  • 8B:约 80 亿个参数
  • 27B:约 270 亿个参数
  • 70B:约 700 亿个参数

参数就是训练过程中被模型不断调整的数值。模型规模越大,潜在能力通常越强,但它也更占存储、内存/显存,推理速度可能更慢。

2. 参数、权重、偏置是什么关系?#

神经网络的一层可简化表示为:

f(x)=Wx+bf(x) = Wx + b
  • W:权重矩阵,内部包含大量权重值,例如 w_11w_12
  • b:偏置向量。
  • Wb 中所有能通过训练更新的数值,合起来就是这一层的参数。

因此,权重是参数的一大类;更广义地说,模型参数还可包括偏置、词嵌入、归一化层的可训练系数等。

例如,输入有 3 个数、输出有 2 个数时:

WR2×3,bR2W \in \mathbb{R}^{2 \times 3},\quad b \in \mathbb{R}^{2}

这一层共有 2 × 3 + 2 = 8 个参数。

3. 权重不等于参数精度#

两者要区分:

  • 权重:模型实际学到的数值,例如 0.12345678-1.47
  • 参数精度 / 数据类型:用什么方式保存这些数值,例如 FP32、FP16、BF16 或 Q4。

可以把权重理解成照片内容,把精度或量化格式理解成照片是保存为原图、高清压缩图还是高压缩图。

4. FP32、FP16、BF16 是什么?#

它们是浮点数格式,表示每个参数直接以多少个二进制位保存。

格式每个参数约占用常见用途
FP3232 bit = 4 Byte训练、需要较高数值精度的场景
FP1616 bit = 2 ByteGPU 推理、训练
BF1616 bit = 2 Byte深度学习训练与推理;数值范围更接近 FP32

Byte(字节)与 bit(比特)的关系是:8 bit = 1 Byte。本文的 GB 按十进制计算(1 GB = 10^9 Byte);有些系统会用二进制单位 GiB(1 GiB = 2^30 Byte),所以显示数值会略小。

例如,8B 模型若全部按 FP16/BF16 保存,参数本身的理论体积为:

80亿×2 Byte16 GB80\text{亿} \times 2\text{ Byte} \approx 16\text{ GB}

FP32 则约为 32 GB。

5. 什么是量化?#

量化是把原本 FP16/BF16/FP32 中较精细的参数值,用更少的位数近似保存,从而减小模型文件和运行时内存占用。

例如原始权重是:

0.12345678
  • FP16 可能保存为接近 0.1235 的值;
  • Q4 量化通常不直接保存该小数,而是保存一个 4-bit 的近似编码,并结合缩放系数等信息,在推理时还原近似值。

量化不会减少模型的参数个数。8B 模型量化后仍是约 80 亿参数,只是每个参数的保存方式更省空间。

6. Q4_K_M、Q5_K_M、Q6_K、Q8_0 是什么?#

这些是 GGUF / llama.cpp 生态中常见的具体量化格式,适用于 Ollama、LM Studio、llama.cpp 等本地运行工具。

名称大意取舍
Q4_K_M名义 4-bit;K 系列实际平均约 4.5 bit/权重,中等质量配置常见的效果、速度与体积平衡点
Q5_K_M名义 5-bit;实际平均位宽通常约 5.5 bit/权重比 Q4 更大,通常质量略更稳
Q6_K名义 6-bit;实际平均位宽通常约 6.6 bit/权重更接近原始权重,资源占用更高
Q8_0平均约 8 bit/参数质量保留通常更多,文件更大

其中:

  • Q4Q5Q6Q8 表示大致的量化位宽;数字越大,通常模型越大、效果损失越少。
  • K 表示 llama.cpp/GGUF 的一类分块量化方法。
  • M 表示该 K 系列里的中等配置;它不是“参数量”的单位。

Q4_K_M 不意味着每个参数严格只占 4 bit。它需要分组缩放系数,且部分张量可能以不同精度保存;因此 K 系列 Q4 的实际平均位宽约 4.5 bit/权重(具体因模型而异)。

7. 为什么同一 8B 模型文件大小不同?#

模型的参数量与量化精度是两个维度:

同一个 8B 模型:参数个数固定为约 80 亿
├─ FP32:约 32 GB(仅粗略计算参数本身)
├─ FP16 / BF16:约 16 GB
├─ Q8:约 8–10 GB
└─ Q4_K_M:约 5 GB 左右

以 8B 的 4-bit 为例:

80亿参数×4 bit=320亿 bit80\text{亿}参数 \times 4\text{ bit} = 320\text{亿}\text{ bit}

再除以 8 bit/Byte

320亿÷8=40亿 Byte4 GB320\text{亿} \div 8 = 40\text{亿}\text{ Byte} \approx 4\text{ GB}

上式是“严格每参数 4 bit”的理论下限。Q4_K_M 的有效平均位宽通常约 4.5 bit/权重,因此 8B 模型的量化权重本身就约 4.5 GB;再加部分高精度张量、词表和模型元数据后,文件可能约为 4.9 GB。

8. 开源模型通常发布哪些版本?#

典型发布链路如下:

官方发布:FP16 / BF16 原始权重(Safetensors、Transformers 格式)
官方或社区转换:GGUF Q4/Q5/Q6/Q8、GPTQ、AWQ、EXL2 等量化版本
  • 官方原始权重常用于微调、研究、服务器部署,体积较大。
  • FP32 很少单独作为推理模型发布,因为它比 FP16/BF16 大一倍,推理收益有限。
  • 个人本地聊天通常下载量化版本,而不是原始 BF16/FP16 版本。

9. 参数量与本地电脑配置的关系#

模型权重只是内存占用的一部分。下表是短上下文、单用户和特定运行时下的经验范围;实际运行还需为程序、上下文缓存(KV Cache)、系统和其他应用留余量。KV Cache 的大小还取决于模型架构、上下文长度、并发数和 KV 精度;多模态模型可能另有视觉组件占用。

模型规模(4-bit)大致运行内存需求常见建议
1.5B2–3 GB近年任意电脑基本可运行
7B / 8B6–8 GB16 GB 内存可用;8 GB 显存更舒适
14B10–14 GB32 GB 内存更合适;12–16 GB 显存较好
32B22–28 GB建议 32–64 GB 内存;24 GB 显存起步更理想
70B45–55 GB通常建议 64 GB 以上系统内存,或 48 GB 以上显存/多卡
  • CPU 推理:主要看系统内存,能运行但通常较慢。
  • NVIDIA GPU 推理:主要看显存,通常速度更快。要完整 GPU 卸载,模型权重、KV Cache 和运行时工作区都必须同时放入显存。
  • Apple Silicon Mac:CPU 与 GPU 共用统一内存,32 GB 或 64 GB 机型运行量化模型比较有优势。

系统内存足够但显存不足时,仍可使用 CPU 推理或 CPU/GPU 分层卸载,只是速度通常明显低于完整 GPU 卸载。

10. 实用选择建议#

  • 16 GB 内存或 8 GB 显存:优先选择 7B/8B 的 Q4_K_M
  • 32 GB 内存或 12–16 GB 显存:可考虑 14B 的 Q4/Q5,或 8B 的较高精度量化。
  • 64 GB 内存或 24 GB 显存:32B 的 Q4 通常较合适。24 GB 显存通常无法将 70B 完整装入 GPU;若尝试 70B,往往需要 CPU/GPU 混合卸载或更低比特量化,且会受上下文长度影响。
  • 在同一模型中:资源优先选 Q4_K_M;希望质量更稳选 Q5_K_M;资源充足且想保留更多质量可选 Q6/Q8。

11. 本次示例:Qwen3.8-27B#

Qwen/Qwen3.8-27B 是图文多模态模型。它的官方仓库包含 Hugging Face Transformers 格式的原始权重,配置标记为 bfloat16(BF16)。它有约 270 亿参数,因此仅按参数粗略计算:

270亿×2 Byte54 GB270\text{亿} \times 2\text{ Byte} \approx 54\text{ GB}

若用于普通个人电脑本地运行,通常应寻找其对应的 GGUF Q4/Q5 等量化版本;27B 的 Q4 主模型权重通常约在 16–18 GB 量级。实际包体和运行内存还可能包含视觉组件、投影器与上下文缓存,并要求运行时具备该多模态架构的支持。

12. 存储介绍:闪存、内存与显存#

谈部署时常说“内存/显存够不够”,但存储其实是一个层级体系。按角色划分就是三大件:闪存(仓库)→ 内存(CPU 的工作台)→ 显存(GPU 的工作台),越往上速度越快、容量越小、每 GB 价格越贵。

硬盘/闪存 (数 TB, 慢, 断电保留) ← 模型文件(GGUF)躺在这里
↓ 加载(秒级)
内存 (RAM, 16–64 GB, 快, 断电丢失) ← CPU 推理时权重放这里
↓ 通过 PCIe 拷贝
显存 (VRAM, 8–24 GB, 极快) ← GPU 推理时权重放这里
GPU 计算核心

先纠正一个常见误区:存储不是“ROM(硬盘)+ RAM(内存)”两类。

  • ROM 的本义是只读存储器:断电保留数据、不可改写。
  • 硬盘/SSD 同样断电保留数据,但可以随意读写,与“只读”的本义矛盾。
  • 手机厂商“8GB RAM + 256GB ROM”是营销误用,那个“ROM”实际指的就是闪存。

下面逐一介绍这三类存储。

12.1 闪存:断电保留的“仓库”#

闪存(Flash Memory)是一种可电擦写的非易失性芯片,是 ROM 家族的现代化后裔:保留断电不丢数据的特性,但通过“按块擦写”解决了不可写的问题。

  • 传统 EEPROM 按字节擦写,电路面积大;
  • 闪存按块擦写,密度高、便宜,但改一位也要重写整块。

SSD、U 盘、手机存储、SD 卡、Mac 的“硬盘”都是用闪存颗粒做成的产品,只是包装形态不同。

半导体存储芯片
├── RAM(易失,断电丢)
│ ├── 内存(DDR5)— CPU 工作台
│ └── 显存(GDDR、HBM)— GPU 工作台
└── ROM 家族(非易失,断电保留)
├── 早期真·只读 ROM(出厂烧死)
├── PROM / EPROM(可编程一次 / 紫外线擦除)
└── EEPROM(可电擦写)→ 闪存(EEPROM 的块擦除版)

原理一瞥:闪存的基本单元是浮栅晶体管,电子被“打”进被绝缘层包裹的浮栅后困在里面,断电也跑不掉,电子多少决定读出 0 还是 1。绝缘层每次写入都会轻微损伤,因此每个单元的擦写次数有限(几千到十几万次),SSD 主控靠磨损均衡延长寿命。

闪存内存/显存(RAM)
断电数据保留数据丢失
写入速度慢(毫秒级,且要整块擦)极快(纳秒级,随写随改)
擦写寿命有限基本无限
每 GB 价格便宜贵好几倍

写入慢、寿命有限、不能按字节随意改——这三条决定了闪存当不了“工作台”,只能当“仓库”。

12.2 内存:CPU 的工作台#

内存(RAM,即电脑上的内存条,DDR4/DDR5)是 CPU 的工作台:程序运行时代码和数据必须先加载到这里。它支持纳秒级随机读写,带宽约 50–90 GB/s,但断电即丢、每 GB 价格远高于闪存。本地部署时,CPU 推理的模型权重和 KV Cache 就放在内存里——这也是第 9 节表格里“运行内存需求”的由来。

12.3 显存:GPU 的工作台#

显存(VRAM)本质上也是 RAM,只是服务对象从 CPU 换成 GPU。GPU 不直接用系统内存而要单独的显存,是因为带宽:大模型推理是海量矩阵乘法,GPU 每秒需要读取数百 GB 数据,内存的带宽喂不饱它。显存颗粒更贵、焊在 GPU 旁边,就是为了解决这个问题——这也是 CPU 推理慢的根本原因之一。

类型典型带宽
DDR5 内存约 50–90 GB/s
GDDR6X 显存(RTX 4090)约 1000 GB/s
HBM3(数据中心 GPU)3000+ GB/s

例外是 Apple Silicon Mac:M 系列芯片的 CPU 和 GPU 共享同一块统一内存,没有独立显存,所以 64 GB 内存的 Mac 能跑塞不进 24 GB 独立显卡的 32B 模型;代价是带宽(约 100–800 GB/s)仍低于独立显卡。

12.4 三者协作:本地部署的数据流#

下载的 Q4_K_M 模型文件(约 5 GB)存在闪存上;启动推理时权重被加载进内存(CPU 推理)或显存(GPU 推理);聊天产生的 KV Cache 也放在同一处。这解释了第 9 节的现象:文件只有 5 GB,运行却需要 6–8 GB 内存/显存——程序运行必须驻留在 RAM 类存储里,硬盘只是仓库,和游戏装在硬盘上、玩时加载进内存是同一个道理。

NVMe SSD 读取速度约 3–7 GB/s,对“加载一次模型”绰绰有余,但比显存带宽慢两三百倍,所以推理时权重不能边算边从 SSD 取。例外玩法:llama.cpp 可在内存不足时用 mmap 把 SSD 当溢出的权重仓库,速度极慢,但能让小内存机器跑大模型。

一句话总结#

B 表示参数的数量;FP32、FP16、BF16 和 Q4 等表示这些参数保存得有多精细;参数越多或精度越高,模型文件与本地运行所需的内存/显存就越大。硬盘(闪存)是仓库,内存是 CPU 的工作台,显存是 GPU 的工作台。

大模型本地部署学习笔记:参数量、权重精度与量化
https://blog-8jx.pages.dev/posts/llm-local-deployment-notes/
作者
Starflyer
发布于
2026-08-28
许可协议
CC BY-NC-SA 4.0