第 05 课 · 让它能用

压缩、蒸馏与扩展

训好不等于能上线。换显存,换能力,多模态和工具换技能边界。

Archify · architecture

后训练实验栈

你只通过 Jupyter 碰那张 A100,训练发生在 GPU 上。

AutoDL 实例 · PyTorch 2.3 + CUDA 12.1开实例打开挂 GPUtrainer.train()只训适配器4-bit 权重加载 Qwen3读指令数据你浏览器里上课AutoDL租 GPU 实例JupyterLab写 notebookA100-40GCUDA 计算TRLSFT / DPO / GRPOPEFTLoRA 适配器bitsandbytesNF4 4-bitHF_HOME模型缓存数据集盘alpaca / GSM8K
  • 你 → 开实例
  • AutoDL → 打开
  • AutoDL → 挂 GPU
  • JupyterLab → trainer.train()
  • TRL → 只训适配器
  • A100-40G → 4-bit 权重
  • TRL → 加载 Qwen3
  • TRL → 读指令数据

标准配置

  • AutoDL A100-40G,镜像 PyTorch 2.3.0 + Python 3.10 + CUDA 12.1
  • 学期费用大约 100 元;训完立刻关机

三个库各管一段

  • TRL:SFTTrainer / DPOTrainer / GRPOTrainer
  • PEFT:冻结原权重,只训 LoRA
  • bitsandbytes:NF4 把 1.7B 塞进消费级显存

磁盘纪律

  • HF_HOME 指到 /root/autodl-fs/huggingface
  • 必需模型大约 26GB,全部下载大约 48GB

先会算显存

FP16 权重大小

FORMULA

权重 ≈ 2 × N bytes (N 为参数量)

Qwen3-8B → 约 16GB 权重。推理还要加 KV cache、激活、框架开销,合计约 20–22GB。

换一种精度,卡还够不够?

压缩比 ≈ 原位数 / 目标位数。16→8 约一半,16→4 约四分之一。质量损失要另外测。

模型参数量

8B

滑到 1.7 或 8,对照课程里的两档。

精度约权重约推理合计16GB 卡
FP1616.0 GB21.0 GB偏紧
INT88.0 GB12.0 GB可能够
NF44.5 GB8.0 GB可能够
GPTQ/AWQ Int44.0 GB7.2 GB可能够

8B FP16 权重约 16GB、推理约 20–22GB;INT8 约 9GB;NF4 约 5.5GB。表内合计含粗算 KV/框架,便于建立数量级,不是厂商官方数字。

PTQ 四件套

选工具,而不是选信仰

INT8

LLM.int8()

异常值通道留 FP16,其余 。质量几乎不掉,显存约减半。适合调试。

NF4

QLoRA 的底座

权重近似正态分布,按分位数分成 16 档。再对缩放因子做双重。训练友好。

GPTQ

逐层最小二乘

用校准数据让 WX ≈ ŴX。上线常见。group size 常 128。

AWQ

保护重要通道

激活大的权重少一点。与 搭配是常见生产路径。

PTQ 还是 QAT

PTQ 训练后量化

  • 不重训
  • / 4bit 首选
  • 快

QAT 量化感知训练

  • 训练时就模拟低比特
  • 2~3 bit 才认真考虑
  • 贵

蒸馏:借老师的解题过程

小模型自己 RL 往往不够

R1-Distill-Qwen-1.5B 的 GSM8K 约 83.5%

课堂里小模型直接 大约 55% 量级。教师已经「想过」的轨迹,是更稠密的监督。对小团队,常常比从零 RL 更划算。

能力扩展三件事

看

VLM / LLaVA

两阶段:先冻住 LLM 与 ViT,只训投影层;再 语言模型。先接通,再变好。

做

工具 / MCP / ToolACE

函数调用是结构化输出。用 JSON Schema + 约束解码,比指望模型自由发挥可靠。

记

ROME/MEMIT vs RAG

改权重适合改一两件事实;知识常变、要可追溯,用检索。多数产品先 RAG。

第 5 课带走的话

  1. 01先算显存再选精度。
  2. 024bit 不是免费午餐,一定要做质量对照。
  3. 03是把推理轨迹写成 数据。
  4. 04多模态先对齐投影,再动语言。
  5. 05工具调用成功与否,看 schema 约束,不看文采。

本课两道小题

第 5 课

Qwen3-8B 用 FP16 推理大约要 20–22GB。改成 NF4 大约多少?

权重从 16bit 压到约 4bit。

第 5 课

想把大模型的推理能力搬到小模型,最常见的做法是?

老师写解题过程,学生做 SFT。