AI 学习路线 · 深入
Part 17 · 模型量化
目标:理解"为什么量化、主流算法各自思路",能动手量化并评估效果。
Section 1 · 为什么量化(概念)
Subsection 1 · 记概念
量化 = 把模型的权重/激活从高精度(FP32/FP16)压到低精度(INT8/INT4)目的:省显存、加速推理代价:精度损失(可能影响输出质量)Subsection 2 · 记精度与显存
FP32 = 4字节/参数 7B ≈ 28GBFP16 = 2字节/参数 7B ≈ 14GBINT8 = 1字节/参数 7B ≈ 7GBINT4 ≈ 0.5字节/参数 7B ≈ 3.5GB过关:能说清量化换什么、代价什么 = Section 1 完成。
Section 2 · GPU 算力测算
Subsection 1 · 记概念
算力单位 TFLOPS:每秒万亿次浮点运算推理算力需求 ≈ 2 × 参数量 × 每秒生成 token 数(FLOPs)例:7B 模型要 20 tokens/s → 需 ~2×7e9×20 ≈ 280 GFLOPs → 一般消费级卡轻松满足训练需求则大几个数量级 → 所以训练要数据中心Subsection 2 · 查自己的卡
nvidia-smi 看显存;nvidia-smi --query-gpu=name,memory.total --format=csv 看型号。
- 记下你的卡能跑多大量化模型。
过关:会算显存 + 了解算力 = Section 2 完成。
Section 3 · PTQ 训练后量化
Subsection 1 · 记概念
PTQ(Post-Training Quantization,训练后量化)= 模型训练好之后,直接量化,不重新训练优点:快、简单缺点:精度损失相对大Subsection 2 · 用 transformers 跑 PTQ 雏形
新建 ptq_demo.py:
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig# 加载时直接 8bit 量化(HF 内建 PTQ)model_name = "Qwen/Qwen2.5-0.5B-Instruct"config = BitsAndBytesConfig(load_in_8bit=True)model = AutoModelForCausalLM.from_pretrained(model_name, quantization_config=config, trust_remote_code=True)tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)out = model.generate(tokenizer("你好", return_tensors="pt").input_ids, max_new_tokens=20)print(tokenizer.decode(out[0], skip_special_tokens=True))print("8bit 量化模型加载成功")- 预期看到:模型正常运行(内部已是 8bit)。
过关:PTQ 概念 + 8bit 加载跑通 = Section 3 完成。
Section 4 · QAT 量化感知训练
Subsection 1 · 记概念
QAT(Quantization-Aware Training,量化感知训练)= 训练时就模拟量化误差,让模型"适应"低精度优点:效果比 PTQ 好缺点:要训练,成本高- 面试点:PTQ 快但损失大,QAT 好但贵。
过关:能说 PTQ/QAT 区别 = Section 4 完成。
Section 5 · GPTQ(量化算法)
Subsection 1 · 记概念
GPTQ = 专为 GPT 系模型设计的 4bit 量化思路:逐层量化,用"误差补偿"减少损失生态:AutoGPTQ 库,GGUF/GPTQ 格式常见Subsection 2 · 装并量化
cmd:pip install auto-gptq(或 llm-compressor)
用 AutoGPTQ 官方示例对一个小模型做 4bit 量化(代码见 https://github.com/AutoGPTQ/AutoGPTQ README)。
- 预期看到:量化后的模型能正常推理。
过关:能说 GPTQ 思路 + 跑通示例 = Section 5 完成。
Section 6 · AWQ(激活感知量化)
Subsection 1 · 记概念
AWQ(Activation-aware Weight Quantization)= 根据"激活值的重要性"决定哪些权重少量化、哪些多量化思路:不是所有权重一样重要,重要的保留高精度效果:4bit 下效果通常优于 GPTQSubsection 2 · 查资料
- 精读:https://zhuanlan.zhihu.com/p/681578090 (AWQ 量化技术解析)
- 写 100 字理解笔记。
过关:能说出 AWQ 与 GPTQ 区别 = Section 6 完成。
Section 7 · GGUF 量化实操(llama.cpp / Ollama)
Subsection 1 · 用 Ollama 体验量化档位
ollama run qwen2.5:1.5b-q4_K_M(4bit 量化版)ollama run qwen2.5:1.5b(默认更高精度)- 对比两个的回答质量与速度。
- 预期看到:q4 版更快、显存更省,质量略降但中文通常仍可用。
Subsection 2 · 看 GGUF 档位
q2_K/q3_K 极省,质量差q4_K 主流折中(推荐)q5_K/q6_K 更稳,略大f16 无量化,最大过关:能对比不同档位 = Section 7 完成。
Section 8 · 量化前后完整对比
Subsection 1 · 做对比实验
- 同一模型,分别用:FP16 / INT8 / INT4 跑同一批 10 个问题。
- 记录:显存占用、生成速度、回答质量(自己打分 1~5)。
- 整理成表格写进笔记。
- 预期看到:量化程度越高,显存↓ 速度↑ 质量↓,找到你的"甜点档位"。
过关:有完整对比数据 = Section 8 完成。
Section 9 · 面试题
Subsection 1 · 练习
- 什么是量化?为什么需要?
- PTQ 和 QAT 区别?
- GPTQ 和 AWQ 各自思路?
- 4bit 模型质量能接受吗?怎么验证?
- 一个 13B 模型 FP16/INT4 各多少显存?
- 先自己答,再让 DeepSeek 补充。
过关:5 题能答 = Section 9 完成。
Section 10 · 站 15 验收
勾选
- 能说清量化换什么、代价什么
- 会算显存,知道自己的卡能跑什么档位
- PTQ 概念 + 8bit 加载跑通
- 能说 PTQ / QAT 区别
- 了解 GPTQ / AWQ 思路
- 用 GGUF 不同档位对比过(Section 7)
- 有量化前后完整对比数据(Section 8)
- 5 道面试题能答
写 300 字Part 15 总结:你的甜点档位是什么,为什么。
全勾选 = Part 17 通过 → 进入下一站 Part 18 · 训练数据与模型评估,10 天)。
