← 第6课 · KV Cache 首页 / 算法与AI / AI 基础入门 / 第7课 · 量化
AI 基础入门 · 第7课

量化:把大模型"压缩"到你电脑上跑得动

一个 7B 模型不量化要 14GB 显存,普通笔记本根本跑不动;量化到 4-bit 只要 4GB 左右,MacBook 都能聊。这一课把"精度档位"——FP32、FP16、BF16、INT8、INT4——和主流量化方法(GPTQ / AWQ / GGUF)讲清楚,让你知道为什么量化几乎不损失聊天体验,以及什么时候不能省这一点显存。

① 小白第一课怎么学(4 步走,约 55 分钟)

这一课是"本地跑大模型"的必备前置知识,讲完你就能用 Ollama 在自己电脑上玩 7B 模型。

1建立压缩直觉(12 分钟)
读②③:把"用 32 位记一个数"压成"用 4 位记"。
2记住精度档位(13 分钟)
读④:FP32/FP16/BF16/INT8/INT4 一张表。
3认识量化方法(15 分钟)
读⑤:GPTQ、AWQ、GGUF 谁适合谁。
4刷题自测(15 分钟)
做⑦⑩,错题回⑥看易错点。
本课小目标学完你要能:① 说清"位宽"是什么、为什么能省显存;② 看到 Q4_K_M、Q8_0 这种文件名知道大概占多大;③ 区分 GPTQ / AWQ / GGUF 三个阵营;④ 知道什么时候该上高比特、什么时候低比特够用。

② 一图看懂:精度档位与显存对照

一个 7B 模型在不同精度下要多大显存 FP32 ≈28GB FP16/BF16 ≈14GB INT8 ≈7GB INT4 ≈4GB 再低就翻车 INT3/2 不推荐 训练阶段用高比特 FP32/BF16:梯度要精度,不然容易训崩 没人用 FP32 推理,太贵太慢 推理阶段能压就压 FP16:显存够就用它,几乎无损 INT8 日常对话无损;INT4 笔记本/手机首选 量化 = 用更少的 bit 存同一个权重数字 32 位能记 2³² ≈ 42 亿种精度;4 位只能记 16 档 好在权重不需要那么精细,"差不多准"就够用 → 省显存、加快度
读法:横轴是"每个权重用几个 bit 存"。位数越多越准,但越占显存;位数越少越省,但误差越大。训练要精度用高比特,推理图省事用低比特——这就是量化存在的意义。

③ 本质直觉:把"精密尺子"换成"粗略格子"

先想一个问题。权重数字长什么样?比如某个权重是 0.123456789。你真的需要小数点后 9 位吗?实际跑起来发现:0.12 和 0.13 的效果几乎没差。

这就是量化的核心思想:不必用 32 个二进制位去记那个"完美的小数字",只要在它附近选一个"够接近"的格子存起来就行。位数越少,格子越粗,但文件越小、算得越快。

打个比方:用一把毫米刻度的尺子量桌长,是 802mm;你用厘米刻度量,是 80cm。差别只有 2mm,但你记下来的数字从 3 位变成 2 位。量化就是这个过程——把浮点"四舍五入"到附近的离散档位。

为什么大模型扛得住这种粗糙?因为它有几百亿个参数,单个参数误差一点,被平均之后整体输出几乎不变。这就像你把一本词典里每个词都写错一个笔画,整段话读下来还是通顺的。

FP16:细密刻度 -1-0.50 0.51… 精确记录 0.123456… INT4:只有 16 个格子 就近落到第 4 格 ≈ 0.12 差一点点,但文件小 4 倍
一句话记住量化不是"删参数",参数个数没变;它是把每个参数存得更粗糙。几百亿个数字每个省 1.5 字节,加起来就是省出一整张显卡。

④ 完整体系:精度家族一张表

精度位数每参数字节7B 模型权重用在哪
FP3232 位浮点4 字节≈28GB几乎不用,训练时偶尔用
FP1616 位浮点2 字节≈14GB推理常用、有 A100 以上显卡时首选
BF1616 位浮点(谷歌版)2 字节≈14GB训练更稳,动态范围大
INT88 位整数1 字节≈7GB推理,几乎无损
INT44 位整数0.5 字节≈4GB本地笔记本、Mac、手机
显存速算 显存(GB) ≈ 参数量(B) × 每参数字节 × 10亿 ÷ 1024
例:7B × 0.5 字节(INT4) ≈ 3.5 GB(加 KV Cache 后约 4-5GB)

GPTQ / AWQ / GGUF 三个阵营

方法谁在用特点
GPTQGPU 推理、vLLM 早期支持训练后量化(PTQ),一次性把权重压到 INT4/INT8,速度快
AWQGPU 推理,主流推荐激活感知:保护"重要权重"不量化,质量比 GPTQ 更好
GGUFllama.cpp / Ollama / Mac / CPU单文件、CPU 友好,文件名里 Q4_K_M、Q8_0 就是量化档位
看文件名选档位GGUF 里 Q4_K_M = 4-bit 中等质量(最常用),Q5_K_M = 5-bit 更准一点,Q8_0 = 8-bit 几乎无损。数字越低越省显存。

⑤ 应用场景:本地跑大模型的完整路径

普通笔记本也想玩大模型?
不用买显卡。装一个 Ollama,一条命令就行。
ollama run qwen2.5 ——Ollama 会自动下一个 GGUF 量化版(默认 Q4_K_M),Mac M 系列芯片统一调用内存跑。7B 模型占 4-5GB 内存,日常对话完全够。
量化后质量掉多少?
日常聊天几乎感觉不到;数学/推理任务会掉一点。
INT8 通常被认为几乎无损;INT4 在普通对话、写代码、总结这类任务上和 FP16 差距很小。但让它做复杂数学证明、长链推理,低比特会更容易出错。所以严肃推理任务尽量用高比特。
量化不是免费午餐
压得越低,模型越容易犯奇怪的错。
INT3、INT2 这种极限压缩省是省,但输出可能开始胡说、复读、格式崩坏。日常用 Q4 是甜点,Q8 是稳妥,别再往低压了。
本地跑大模型三步走① 选一个 7B 级别的开源模型(Qwen / Llama 都行);② 装 Ollama,一条命令拉 GGUF 量化版;③ 日常对话用 Q4,要写严谨代码/做数学题再上 Q8。

⑥ 高频错误诊断(5 条)

错误 1:以为量化是"把模型变小、删掉一部分参数"不是。参数量一个不少,只是每个数字用更少的 bit 存。
错误 2:觉得量化一定掉很多智商INT8 几乎无损;INT4 在普通对话里人耳听不出差别。真正掉分的是数学/长推理这类任务。
错误 3:训练也用 INT4千万别。训练要反向传播,梯度需要高精度,必须用 FP32/BF16。量化只在推理时用。
错误 4:把 FP16 和 BF16 当成一回事都是 16 位,但 BF16 指数位更宽、动态范围更大,训练时不容易梯度下溢。推理上差别不大。
错误 5:一味追求最低比特压到 INT3/2 省了显存,但模型开始胡言乱语、复读、漏格式。Q4/Q8 是甜点,再低就是负优化。

⑦ 考点真题演练(4 题)

考点分布

考法出题形式应对
位宽与显存问 7B INT4 占多少≈4GB
训练 vs 推理精度问训练能用 INT4 吗不能,训练用高比特
量化方法问 GGUF 谁用llama.cpp/Ollama/CPU
质量损失问哪类任务最敏感数学/长链推理

真题基础1. 量化(Quantization)本质上在做什么?

真题基础2. 一个 7B 模型量化到 INT4,权重大约占多少显存?

真题中档3. 下面哪个精度主要是给"训练"用,而不是给"推理量化"用?

真题拔高4. 关于量化后的质量损失,下面说法最准确的是?

⑧ 必背知识点卡

量化本质:参数个数不变,每个数字用更少 bit 存 不是删参数
FP32:32 位浮点,4 字节,训练用 推理几乎不用
FP16/BF16:16 位,2 字节,7B≈14GB BF16 训练稳
INT8:8 位,1 字节,7B≈7GB,几乎无损 稳妥选择
INT4:4 位,0.5 字节,7B≈4GB,笔记本首选 Q4_K_M
三方法:GPTQ 老牌 / AWQ 质量好 / GGUF CPU 本地 GPU 选 AWQ
代价:越低比特越容易出错,数学/推理用高比特 别压过 Q4

⑨ 应用输出:给想在自己 Mac 上玩大模型的朋友指条路

实战场景:朋友说"我也想在自己电脑上跑 ChatGPT 那种东西,买不起显卡怎么办"
① 先破迷思:你不需要 24GB 显卡。把模型量化到 4-bit,7B 模型只要 4-5GB 内存,MacBook M 系列统一内存就能跑。
② 给方案:装个 Ollama,终端敲 ollama run qwen2.5,它自动下 GGUF 量化版,等几分钟就能聊。
③ 讲清取舍:量化到 4-bit 日常对话、写邮件、总结文章完全够用;真要让它做奥数题、写严谨代码,就上 Q8 或者干脆用云端 API。
④ 避坑:别追极限压缩(Q2/Q3),省那点内存换来一堆胡话不划算;也别在训练时用量化,量化只在推理用。
口述全链路"量化就是把每个权重数字用更少 bit 存,参数个数不变。FP32 训练用,FP16 推理常用,INT8 几乎无损,INT4 让 7B 模型缩到 4GB 能塞进笔记本。GPU 上推荐 AWQ,本地 Mac/CPU 用 GGUF(Ollama 默认)。日常对话 Q4 够,严肃推理上 Q8。"

⑩ 分层练习 16 题(基础 6 + 中档 5 + 拔高 5)

▍基础 6 题

基础1量化是"删参数"吗?
不是。参数个数一个不少,只是每个数字用更少 bit 存储。
基础2FP16 每个参数占几字节?
2 字节(16 位)。所以 7B 模型 FP16 约 14GB。
基础3INT4 每个参数占多少字节?
0.5 字节(4 位)。7B 模型 INT4 约 4GB。
基础4训练大模型能用 INT4 吗?
不能。训练反向传播需要高精度梯度,用 FP32/BF16。量化只在推理阶段做。
基础5GGUF 格式主要给谁用?
给 llama.cpp / Ollama / Mac / CPU 这类本地推理场景,单文件、自带量化档位。
基础6Ollama 拉一个模型,默认大概是几比特?
一般默认 Q4_K_M(4-bit),平衡质量和体积,普通笔记本内存就能跑。

▍中档 5 题

中档7FP16 和 BF16 有什么区别?
都是 16 位、2 字节,但位数分配不同:BF16 指数位更宽、动态范围更大,训练时梯度不容易下溢,所以训练常用 BF16;纯推理差别不大。
中档8AWQ 比 GPTQ 好在哪里?
AWQ 是"激活感知"量化——识别出哪些权重对输出影响大,保留它们的高精度,只压不重要的。同档比特下,AWQ 质量通常比 GPTQ 更好。
中档9为什么 INT8 被认为"几乎无损"?
8 位能表示 256 个离散档位,已经足够细。大量实测显示 INT8 模型在多数基准上和 FP16 差距小于 1%,人基本感觉不到。
中档10Q4_K_M 里的 K_M 是什么意思?
GGUF 的命名:Q4=4-bit,K=mix 不同层用不同精度,M=Medium 中等大小。它是体积和质量的折中,Ollama 默认档。
中档11量化为什么能同时"省显存"和"加快度"?
省显存是因为每个参数字节数变少;加快度是因为内存带宽往往是推理瓶颈,数据变小后从显存搬到计算单元的时间变短,访存快了整体就快。

▍拔高 5 题

拔高12为什么说"量化对训练不友好、对推理友好"?
训练要反复算梯度、更新参数,对数值精度极敏感,低比特会让梯度下溢、训练发散;推理只做一次前向,几百亿参数的小误差互相抵消,输出几乎不变。
拔高13为什么 AWQ 这种"激活感知"比均匀量化好?
实验发现一小部分"显著权重"对输出影响特别大。均匀量化会把它们也压粗;AWQ 识别并保护这些权重,其余大胆压,整体质量就保住了。
拔高14为什么量化后还要留一点 FP16 计算?
实践中常做"权重量化、激活不量化"或"计算时反量化回 FP16"。完全整数化(W8A8)在 GPU 上才有专门硬件加速,否则精度损失大。
拔高15同样 7B 模型,Q4 和 FP16 在数学题上差距为什么比聊天大?
数学/长链推理需要每一步都精准,误差会沿链累积;聊天有很强的统计先验,哪怕每个 token 略糙也能"蒙"得很自然。任务越靠"精确计算",对低比特越敏感。
拔高16为什么大模型公司线上推理基本都用量化,但不会用最低比特?
线上要同时省显存(多接用户)和保质量(用户体验)。INT4 虽然最省,但面对付费客户要做严肃任务时翻车代价大;所以常见做法是 INT8/AWQ-INT4 起步,关键业务再上 FP16。

⑪ 记忆口诀 + 7 天复习计划

三句口诀 ① 量化不删参数,只是每个数字用更少 bit 存。
② FP32 训练、FP16 推理、INT8 几乎无损、INT4 塞笔记本。
③ GPU 选 AWQ,本地 Mac 用 GGUF/Ollama;日常 Q4 够,严肃任务上 Q8。
天任务自检
第 1 天读②③,画"毫米尺→厘米尺"类比说清量化本质
第 2 天背知识点卡 + 基础 1-6显存速算不错
第 3 天读④⑤,做中档 7-11区分三种量化方法
第 4 天做拔高 12-16理解训练/推理差别
第 5 天做⑦真题 4 题限时每题 2 分钟
第 6-7 天装 Ollama 实跑一次 qwen2.5亲手感受 Q4

📌 知识链路

前置知识(先学) · 第5课 · 模型权重:先知道权重是一堆 FP16 浮点数,才懂量化在压什么。
本节位置 把 FP16 的权重压成 INT4/INT8,体积砍到 1/4,让普通笔记本也能跑。这是 GGUF 后缀的来源。
下一步(学完去) · 第15课 · GGUF:量化后的权重用什么文件格式装。
· 第20课 · llama.cpp 实战:选哪个量化档位,下一课亲手跑。
← 第6课 · KV Cache 算法与AI总览