30秒快速回答: 模型量化是把大模型的参数从高精度浮点数(如 FP32,每个参数 4 字节)转成低精度整数(如 INT4,每个参数 0.5 字节),体积直接缩到原来的 1/8。关键是经过校准后精度损失极低(通常 <1%),但推理速度提升数倍。这就是为什么你能在自己的笔记本电脑上跑 70 亿参数模型的原因。


一、定义:量化是什么、为什么需要?

大模型的一个核心瓶颈:

70B 参数 × FP16(2 字节)= 140 GB 显存 → 个人电脑根本装不下
70B 参数 × INT4(0.5 字节)= 35 GB  → 一张消费级显卡就够了

量化就是用更少的比特数表示权重,在精度和效率之间找平衡。


二、原理:怎么量、为什么不太影响效果?

1. 量化公式

量化值 = round( (原始值 - 零点) / 缩放因子 )

核心是找到合适的缩放因子零点,让整数范围尽可能覆盖原始数据分布。

2. 量化类型

类型 说明 精度损失 体积缩小
FP16 半精度浮点 几乎无 50%
INT8 8 位整数量化 <0.5% 75%
INT4 4 位整数量化 1~3% 87.5%
NF4 4 位正态分布量化 <1% 87.5%

3. 两种关键策略

训练后量化(PTQ):模型训完再压缩,需要少量校准数据跑一遍统计激活分布。

量化感知训练(QAT):在训练时就模拟量化效果,精度最高但成本大。

4. GGUF 与 AWQ

  • GGUF(llama.cpp):CPU 友好,适合 Mac/普通电脑运行
  • GPTQ:GPU 优化,精度高但需要显卡
  • AWQ:较新的量化算法,保护关键权重不压缩,效果更好

三、实操:用 Ollama 跑量化模型

步骤 1:安装 Ollama

# macOS
brew install ollama

# 或直接下载 App

步骤 2:拉取并运行量化模型

# 默认就是 Q4 量化版本
ollama pull deepseek-r1:7b
ollama run deepseek-r1:7b

步骤 3:查看模型详情

ollama show deepseek-r1:7b
# 会显示参数量、量化方式、显存占用等

步骤 4:选量化精度

# 不同精度版本
ollama pull qwen2.5:14b-instruct-q4_K_M  # Q4, 平衡
ollama pull qwen2.5:14b-instruct-q8_0    # Q8, 高质量

四、工具推荐表

工具 用途 适合 价格
Ollama 一键部署 个人用户 免费
llama.cpp 底层推理 CPU 场景 免费
AutoGPTQ INT4 量化 开发者 免费
vLLM 生产推理 企业 免费
bitsandbytes 训练时量化 微调 免费

五、FAQ 常见问题

Q1:量化 100% 无损是不可能的? 对。任何量化都是用离散值近似连续值,必然有信息损失。但好的量化方法 + 校准可以把损失压到人眼/实际任务不可感知。

Q2:Q4_K_M 这些后缀什么意思? llama.cpp 的命名:K 表示用 K-quant 方法,M 是中等大小(Medium),S 是小(Small),L 是大(Large)。K_M 是推荐的平衡选择。

Q3:量化模型能做微调吗? QAT 可以;PTQ 量化后的模型再做微调较困难(精度受限)。新出的 QLoRA 允许在量化模型上做高效微调。

Q4:Mac 用户能用量化模型吗? 非常适合。Apple Silicon 统一内存架构 + Metal 加速配合 llama.cpp/Ollama,是个人跑本地模型的最佳平台之一。

Q5:量化对编程能力影响大吗? 代码生成对精度较敏感。INT8 几乎无影响,INT4 可能出现语法错误增多,建议编程任务用 Q6_K 以上。


继续深入:什么是 MoE 混合专家架构? 看看另一种让模型变高效的架构思路。