QLORA混合精度量化深度解析

📚 共计 30 章节
01
QLoRA背景与动机
大模型微调痛点 · QLoRA论文核心贡献 · 与传统LoRA对比
动机对比
02
量化基础回顾
浮点数表示(FP32/FP16/BF16) · 定点数与整数量化 · 误差来源
浮点定点误差
03
NF4数据类型
信息论基础 · 分位数量化原理 · NF4 vs FP4 vs INT4
NF4分位数对比
04
双重量化 (Double Quantization)
动机与原理 · 量化常数再量化 · 内存节省分析
双重量化内存
05
分页优化器 (Paged Optimizers)
显存碎片化 · 统一内存管理 · CPU-GPU页迁移
显存分页迁移
06
QLoRA整体架构
模型加载流程 · 前向传播 · 反向传播 · 参数更新策略
架构梯度
07
混合精度训练基础
混合精度原理 · AMP · GradScaler机制
AMPGradScaler
08
QLoRA中的混合精度策略
权重NF4 · 梯度BF16/FP16 · 优化器状态FP32
精度策略NF4
09
BitsAndBytes库详解
安装配置 · 4bit量化参数 · NF4与FP4选择
BitsAndBytes4bit
10
模型加载与量化
from_pretrained参数 · load_in_4bit · device_map
加载量化设备映射
11
LoRA适配器注入
目标模块选择 · rank/alpha · 适配器初始化
LoRA适配器
12
训练配置与优化器
AdamW 8bit · 学习率调度 · 梯度累积/裁剪
优化器调度
13
数据加载与预处理
数据集格式 · Tokenization · 动态填充与注意力掩码
数据Tokenization
14
训练循环实现
自定义Trainer vs HF Trainer · 损失函数 · 评估指标
Trainer损失
15
梯度检查点 (Gradient Checkpointing)
原理与实现 · 显存节省 · 计算开销权衡
检查点显存
16
显存优化技巧
torch.compile · Flash Attention · KV Cache优化
显存Flash编译
17
模型保存与加载
PEFT保存 · 合并权重 · 量化模型导出
保存合并导出
18
推理部署优化
量化推理加速 · 批量推理 · vLLM/TGI部署
推理部署vLLM
19
性能基准测试
量化级别对比 · 训练速度 · 推理延迟
基准延迟吞吐
20
常见问题与调试
量化损失 · 训练不稳定 · OOM排查
调试OOM稳定
21
多GPU训练
数据并行 · 模型并行 · DeepSpeed集成
多GPUDeepSpeed
22
QLoRA与PEFT框架
PEFT架构 · QLoRA配置类 · 与其他PEFT结合
PEFT框架
23
指令微调实战
对话数据集 · 模板设计 · ChatGLM/Qwen微调
指令ChatGLMQwen
24
领域适应微调
医疗/法律 · 领域词汇扩展 · 知识注入
领域医疗法律
25
多模态QLoRA
LLaVA适配 · 视觉编码器量化 · 跨模态对齐
多模态LLaVA
26
模型评估与验证
困惑度 · 生成质量 · 人工评估方案
评估困惑度
27
QLoRA变体与改进
LoRA+ · DoRA · PiSSA 最新进展
变体DoRAPiSSA
28
生产环境部署
模型压缩/蒸馏 · ONNX导出 · TensorRT优化
生产ONNXTensorRT
29
未来趋势与展望
更低比特(2bit/1bit) · 硬件适配 · 自动化量化
趋势2bit自动化
30
综合实战项目
从零构建QLoRA微调流水线 · 代码解读 · 性能调优
实战流水线调优