AI教程网

每天一篇AI教程

模型量化是什么?为什么能瘦身90%

2026-10-11

模型量化是什么?为什么能瘦身90%

上周我把一个70亿参数的大模型塞进了只有8GB显存的旧显卡里,跑起来居然还挺流畅。朋友看到后第一反应是"你开挂了吧",其实没什么玄学,就是量化。今天就来聊聊这个让大模型"减肥"的技术,以及它为什么对本地部署这么重要。

先说说大模型到底有多"胖"

先说说大模型到底有多"胖"

拿Meta的LLaMA 2 7B举例,7B就是70亿个参数。默认情况下这些参数用FP16(16位浮点数)存储,每个参数占2个字节,算下来光模型权重就要14GB左右。这还没算推理过程中的KV Cache、中间激活值那些额外开销,实际跑起来至少需要16GB显存。

这就尴尬了。Steam上调查显示,大部分玩家的显卡还是8GB或12GB显存。你想在本地跑个模型玩玩,结果发现连门都进不去——要么去买张4090(一万多块),要么老老实实调OpenAI的API(数据要传到别人服务器)。

量化就是来解决这个问题的。

量化到底在干什么

用一句话说:量化就是把模型参数从"高精度"变成"低精度"。

打个比方。你平时记账用"35.78元"这种精确到分的数字,但如果你只是想知道大概花了多少,记成"36块"就够了。量化做的事类似——把FP16那种需要16位才能表示的数值,压缩成INT8(8位整数)甚至INT4(4位整数)。

具体怎么压?以最常见的对称量化为例:

假设某一层的权重范围是[-3.2, 3.1],我们要把它映射到INT8的[-127, 127]区间。先算一个缩放因子 scale = 3.2 / 127 ≈ 0.0252,然后每个原始权重除以这个scale再四舍五入,就得到了整数。推理的时候再乘回去做近似还原。

当然实际过程比这复杂得多,还要考虑零点偏移、per-channel还是per-tensor、异常值怎么处理等等。但核心思想就这么朴素:用更少的bit表示差不多的数值。

瘦身效果有多夸张

直接看数据对比:

精度格式 每参数字节 7B模型大小 13B模型大小 70B模型大小
FP32 4 28GB 52GB 280GB
FP16 2 14GB 26GB 140GB
INT8 1 7GB 13GB 70GB
INT4 0.5 3.5GB 6.5GB 35GB

从FP16到INT4,体积直接砍掉75%。如果原始模型是FP32(很多研究模型默认用这个训练),量化到INT4就是87.5%的压缩率,说"瘦身90%"一点不夸张。

我自己的实测:LLaMA 2 7B的FP16版本加载需要14GB显存,换成GPTQ 4bit量化版后只要4.2GB左右,一张RTX 3060 12GB就能轻松跑起来,还留了大把空间给上下文。

量化之后效果会变差吗

量化之后效果会变差吗

这是所有人最关心的问题。答案是:会掉一点,但可能比你想象的少。

拿MMLU(一个综合知识评测基准)来说,LLaMA 2 7B在不同精度下的表现大致是这样:

1-2个百分点的下降,在日常对话、写代码、翻译这些任务上基本感觉不出来。但如果你做的是数学推理或者需要精确输出格式的任务,差距可能会更明显一些。

不过量化技术这两年进步很快。像AWQ、GPTQ、GGUF这些方案,都会针对重要权重做保护,把损失控制在很小的范围内。特别是GGUF格式(llama.cpp用的那个),它的Q4_K_M量化等级在社区里口碑很好,很多人觉得和原始FP16版本"几乎没区别"。

为什么说量化是本地部署的关键

没有量化技术,本地跑大模型基本是少数人的游戏。有了量化之后,情况完全变了:

硬件门槛暴降。 7B模型INT4量化后只要4GB左右显存,一张千元级的二手显卡就能跑。13B模型量化后约7GB,RTX 3060 12GB绰绰有余。连MacBook M1的16GB统一内存都能跑13B的量化模型。

速度反而更快。 这一点很多人不知道。量化后的模型因为数据量小了,内存带宽压力降低,推理速度往往比FP16版本更快。我在3060上测试,7B INT4模型能跑到约35 tokens/秒,而FP16版本只有20 tokens/秒左右——因为FP16版本显存不够,部分层要跑在CPU上,速度被拖垮了。

生态已经成熟。 现在Hugging Face上几乎所有主流开源模型都有社区做好的量化版本。Ollama、LM Studio这些工具更是把量化模型的使用门槛降到了"下载即用"的程度。你不需要懂量化原理,不需要自己跑量化脚本,直接下载GGUF文件就能在本地跑起来。

量化不是万能的

说了这么多好处,也得说说局限。

量化本质上是一种有损压缩。4bit已经比较激进了,再往下走到3bit、2bit,模型质量会明显下降,输出可能开始出现重复、逻辑混乱的问题。而且不是所有模型都适合高度量化——参数越少的模型对量化越敏感,因为每个参数承载的信息密度更高。

另外,量化目前主要用在推理阶段。训练还是得用FP16甚至FP32,否则梯度更新的精度不够,模型根本学不好。

但对我们这些只想在本地跑跑模型、做做实验、搞搞个人项目的普通用户来说,量化已经是不可或缺的工具了。它把"需要一张A100"变成了"有张游戏显卡就行",这个变化的意义远比技术本身更大。

如果你还没试过本地部署,现在真的是最好的时机。找台有独显的电脑,装个Ollama,拉一个4bit量化的7B模型下来,十分钟之内你就能拥有一个完全离线、数据不出本地的AI助手。这种体验,值得试试。