八:模型微调:QLoRA与 PEFT 方法对比自测题¶
来源:http://mp.weixin.qq.com/s?__biz=MzYyNTk3Njg1NA==&mid=2247483844&idx=1&sn=0da3960b2f8b17b6d02e670e4f4db406&chksm=f01eb2bdc7693bab2a4b08897afa30102ed6b76a6f27da3e75379c42ece4266ebb6f830193ed#rd
覆盖范围¶
-
QLoRA 与 LoRA 的区别
-
4-bit quantization、NF4、double quantization、paged optimizer
-
QLoRA 的训练流程、dtype、显存来源与工程问题
-
Prompt Tuning、P-Tuning、Prefix Tuning、Adapter
-
各种 PEFT 方法的适用场景和对比
-
SFT 数据、loss mask、评测和消融
一、QLoRA 基础¶
-
QLoRA 的全称是什么?它解决什么问题?
-
QLoRA 和 LoRA 的核心区别是什么?
-
LoRA 已经很省参数了,为什么还需要 QLoRA?
-
QLoRA 中 base model 权重是否训练?LoRA 参数是否训练?
-
QLoRA 的典型训练流程是什么?
-
QLoRA 为什么能让单卡微调更大模型成为可能?
-
QLoRA 是否等于直接训练 4-bit 权重?为什么?
-
QLoRA 的主要优势和局限分别是什么?
二、量化基础¶
-
什么是模型量化?
-
4-bit quantization 相比 fp16 理论上节省多少存储?
-
量化中的 scale 和 zero point 分别有什么作用?
-
权重量化、激活量化、KV cache 量化有什么区别?
-
QLoRA 主要使用哪类量化?
-
量化为什么可能带来精度损失?
-
量化模型计算时是否一定用 4-bit 直接矩阵乘?请解释 storage dtype 和 compute dtype。
三、NF4、Double Quantization、Paged Optimizer¶
-
NF4 是什么?为什么 QLoRA 使用 NF4?
-
NF4 和普通均匀 int4 的直觉区别是什么?
-
double quantization 是什么?
-
double quantization 主要节省哪部分显存?
-
paged optimizer 是什么?
-
paged optimizer 解决的是平均显存问题还是显存峰值问题?
-
QLoRA 的三项关键技术可以如何概括?
四、QLoRA 实现与配置¶
-
QLoRA 中常见的
load_in_4bit=True表示什么? -
bnb_4bit_quant_type="nf4"表示什么? -
bnb_4bit_use_double_quant=True表示什么? -
bnb_4bit_compute_dtype为什么重要? -
为什么 bf16 通常比 fp16 更稳定?
-
什么是 prepare model for k-bit training?它通常处理哪些问题?
-
QLoRA 中 LoRA rank、alpha、target modules 是否仍然重要?
-
QLoRA 训练时显存主要还会花在哪里?
-
gradient checkpointing 对 QLoRA 有什么帮助和代价?
-
QLoRA 训练长序列时为什么仍可能 OOM?
五、Prompt/P-Tuning/Prefix/Adapter¶
-
Prompt Tuning 的核心思想是什么?
-
soft prompt 和人工离散 prompt 有什么区别?
-
Prompt Tuning 的优点和局限是什么?
-
P-Tuning 和 Prompt Tuning 有什么关系和区别?
-
P-Tuning v2 大致增强了什么?
-
Prefix Tuning 的核心思想是什么?
-
Prefix Tuning 中 prefix key/value 加在哪里?
-
Prefix Tuning 对有效上下文长度或 attention 计算有什么影响?
-
Adapter Tuning 的核心结构是什么?
-
Adapter 和 LoRA 的核心区别是什么?
-
Adapter 为什么可能增加推理延迟?
六、PEFT 方法对比与选型¶
-
LoRA、QLoRA、Prompt Tuning、Prefix Tuning、Adapter 各自一句话怎么概括?
-
哪些方法通常可以 merge 到原权重?哪些不容易?
-
哪些方法更适合显存极低场景?为什么?
-
哪些方法更适合要求推理低延迟的部署?为什么?
-
哪些方法更适合生成任务?哪些更适合理解任务?是否能绝对区分?
-
如果业务要求多个任务快速切换,PEFT 方法如何设计?
-
如果任务很复杂、领域迁移很大,PEFT 可能有什么不足?
七、训练数据、Loss Mask 与评测¶
-
QLoRA 和其他 PEFT 方法是否能弥补低质量数据?为什么?
-
SFT 中为什么通常只让 assistant answer token 参与 loss?
-
padding token 参与 loss 会带来什么问题?
-
chat template 对 QLoRA/SFT 有什么影响?
-
如何判断 QLoRA 效果提升不是数据泄漏?
-
QLoRA 实验报告应记录哪些配置?
-
如何比较 LoRA 和 QLoRA 的效果与成本?
-
如何做 rank、target modules、量化配置的消融?
八、工程排错与面试追问¶
-
QLoRA 训练报 CUDA/bitsandbytes 相关错误,应该如何排查?
-
QLoRA 训练出现 NaN,可能有哪些原因?
-
QLoRA 训练后输出几乎没变化,可能是什么原因?
-
QLoRA 训练后输出格式混乱,可能是什么原因?
-
推理时忘记加载 adapter 会出现什么现象?
-
量化模型 merge LoRA 时需要注意什么?
-
QLoRA 是否一定比 LoRA 效果差?如何客观回答?
-
QLoRA 是否适合继续预训练?为什么要谨慎?
-
面试官问“QLoRA 省显存省在哪里”,你会如何回答?
-
面试官问“NF4、double quantization、paged optimizer 分别是什么”,你会如何回答?
-
面试官问“Prompt Tuning、Prefix Tuning、Adapter、LoRA 怎么选”,你会如何回答?
-
请总结第八天 QLoRA 与 PEFT 方法对比的完整知识链路。
预览时标签不可点<div class="