跳转至

八:模型微调: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="