03. Low-Bit Training Adaptation | 低比特训练适配
学习问题
本节回答的是:当纯 PTQ 不够时,为什么会出现 QAT、LoRA / QLoRA 这类“训练适配量化”的路线。
本节的输出是训练适配决策:质量损失是否值得通过额外训练恢复,以及训练显存、时间和稳定性是否被纳入收益计算。QLoRA 产生的是低比特基座上的训练适配器和训练证据,不能直接证明推理量化收益。
核心机制
很多量化问题并不是“压不下去”,而是“压下去后质量下降过多”。进入这个阶段后,量化会同时影响训练稳定性、可训练状态和适配效率。
进入训练适配前,先确认:
- PTQ 失败的根因是误差太大,还是目标任务本来就需要继续适配。
- 你还有没有继续训练或微调预算。
- 你需要的是 full QAT,还是更轻的低比特适配路线。
低比特训练适配的核心矛盾是:系统希望把模型表示压低,但模型本身又需要重新吸收这部分误差。于是,量化不再只是表示问题,而会变成训练稳定性和微调效率问题。
训练状态
QLoRA 等路线通常把基座模型以低比特形式加载,计算时使用指定的计算数据类型(compute dtype),同时只更新 LoRA 适配器。它减少的是可训练参数、梯度和优化器状态的规模;这不等于基座权重、激活和训练临时张量全部变成低比特。QLoRA 与 QAT 是当前已建设的训练分支;优化器状态和梯度量化仍需单独验证数值稳定性、更新精度与通信收益。
QLoRA 的收益应拆成“训练状态减少”和“运行时计算代价”两部分,不能只用模型文件大小解释训练显存或速度。
| 状态 | 典型表示 | 主要显存来源 | 需要确认的边界 |
|---|---|---|---|
| 基座权重 | INT4 / NF4 等低比特存储 | 量化权重、缩放因子和加载临时空间 | 是否由训练库正确加载并支持反量化 |
| 适配器参数 | FP16 / BF16 或 FP32 | 适配器、梯度、优化器状态 | 可训练参数量和优化器状态是否匹配 |
| 前向与反向 | 通常使用计算数据类型 | 激活、临时张量和重算 | 序列长度、批次与激活检查点是否改变峰值 |
选择条件与验证证据
训练适配如何交付后续验证
低比特训练适配的输出是训练产物和训练证据,不等于已经完成推理量化。完整 QAT 的训练成本最高,LoRA / QLoRA 是低比特基座下的适配折中;是否合并适配器、转换格式或进入部署复测,应由实际使用目标决定:
| 阶段 | 需要确认什么 | 输出给下一阶段的内容 |
|---|---|---|
| 适配训练 | 基座版本标识、量化配置、计算数据类型、可训练参数和验证集 | 训练配置、损失 / 质量结果 |
| 产物整理 | 适配器是否可独立加载,是否需要合并 | 适配器或合并模型清单 |
| 独立评测 | 训练结果是否达到任务质量和稳定性门槛 | 固定评测结果、失败样例和适用范围 |
| 推理交接(按需) | 是否需要合并、重新量化或转换目标格式 | 可定位量化产物、转换记录和加载器条件 |
训练框架与产物选择
框架选择首先取决于学习目标和产物要求,而不是工具名本身。框架可以降低训练入口成本,但不能替代量化产物的格式检查和部署基准测试。CPU 或小模型实验用于验证参数更新、量化配置和梯度路径;真实 GPU 才验证训练峰值、单步耗时和数值稳定性。若目标是压缩模型驻留,下一步进入 04 权重量化与 PTQ 误差控制;若瓶颈来自激活、FP8 计算或缓存预算,则进入 05 运行期量化路径。
| 目标 | 推荐路径与必须交付的产物 |
|---|---|
| 理解训练机制、逐项控制配置 | TRL / 原生 Transformers + PEFT;保留量化配置、可训练参数、损失与验证结果 |
| 单卡快速验证 QLoRA | Unsloth 或等价轻量封装;保留版本、显存、单步耗时与适配器清单 |
| 配置驱动的重复实验 | LLaMA-Factory / Axolotl;保留 YAML、数据版本、模型检查点与复现实验命令 |
| 进入部署链路 | PEFT / Transformers 产物再转换;保留适配器 / 合并模型、转换日志与目标格式 |
