跳转至

七:模型微调:LoRA 与 AdaLoRA自测题

来源:http://mp.weixin.qq.com/s?__biz=MzYyNTk3Njg1NA==&mid=2247483828&idx=1&sn=2715c5d6dec102c065341a88d9ab01ff&chksm=f01eb2cdc7693bdbaa12c158a33db3a76c6c27b643ba81571d0b5432af383aac2748346ad747#rd

覆盖范围

  • 全量微调、部分微调、PEFT 的基本区别

  • LoRA 的低秩更新公式、参数量、初始化、超参

  • LoRA 在 attention/MLP 中的 target modules

  • LoRA 训练、保存、加载、merge/unmerge

  • LoRA 与 full fine-tuning、Adapter、Prompt/Prefix Tuning 对比

  • AdaLoRA 的动机和自适应 rank 分配

  • LoRA 工程问题、评测方法和面试追问

一、模型微调与 PEFT 基础

  • 请用 1 分钟解释什么是模型微调。

  • 全量微调、部分层微调、PEFT 的区别是什么?

  • 为什么大模型全量微调成本很高?

  • PEFT 的核心思想是什么?

  • PEFT 相比全量微调有哪些优势?

  • PEFT 有哪些潜在局限?

  • 多任务场景下,为什么 PEFT 的存储优势明显?

  • 面试中如何解释“LoRA 不是一种新模型,而是一种微调方式”?

二、LoRA 核心原理

  • LoRA 的全称是什么?它解决什么问题?

  • 请写出 LoRA 的核心公式。

  • LoRA 中为什么冻结原始权重 W

  • 如果 W: [d_out, d_in],LoRA 中 AB 的 shape 通常是什么?

  • 为什么 Delta W = BA 的 rank 不超过 r

  • LoRA 为什么能显著减少可训练参数?

  • 请计算 W: [4096,4096]r=8 时 LoRA 的参数量和全量参数量。

  • LoRA 的低秩假设是什么?

  • LoRA 初始时为什么通常让增量为 0?

  • A 随机初始化、B 初始化为 0 的作用是什么?

三、LoRA 超参与模块选择

  • LoRA rank r 控制什么?

  • alphaalpha/r scaling 的作用是什么?

  • lora_dropout 的作用是什么?

  • target modules 是什么?为什么它很重要?

  • Transformer 中常见 LoRA target modules 有哪些?

  • 只对 q_projv_proj 加 LoRA 和对所有线性层加 LoRA 有什么区别?

  • 为什么 attention projection 是 LoRA 常见注入位置?

  • MLP 层加 LoRA 可能带来什么收益和成本?

  • rank 越大一定越好吗?为什么?

  • LoRA 学习率通常如何相对全量微调考虑?

四、训练、推理与部署

  • LoRA 微调的标准训练流程是什么?

  • 如何检查 LoRA 是否真的只训练了少量参数?

  • LoRA adapter 保存的是什么?是否包含 base model 全量权重?

  • 推理时加载 LoRA adapter 需要哪些组件?

  • 什么是 LoRA merge?

  • 什么是 LoRA unmerge?

  • merge 后推理和不 merge 推理有什么区别?

  • 多个 LoRA adapter 如何服务不同任务?有什么风险?

  • 为什么 merge 后继续训练可能导致状态混乱?

  • LoRA 与量化模型结合时需要注意什么?

五、LoRA 方法对比

  • LoRA 和全量微调相比,优势和劣势分别是什么?

  • LoRA 和 Adapter 的核心区别是什么?

  • LoRA 为什么通常比 Adapter 更容易做到无额外推理延迟?

  • LoRA 和 Prompt Tuning 的区别是什么?

  • LoRA 和 Prefix Tuning 的区别是什么?

  • 在小数据场景中 LoRA 有什么优势和风险?

  • 在领域迁移很大的场景中,LoRA 可能不如全量微调的原因是什么?

六、AdaLoRA

  • AdaLoRA 解决了普通 LoRA 的什么问题?

  • 为什么固定 rank 可能不是最优?

  • AdaLoRA 的核心思想是什么?

  • AdaLoRA 如何理解“参数预算分配”?

  • AdaLoRA 和 LoRA 的主要区别是什么?

  • AdaLoRA 中重要性分数大致用于什么?

  • AdaLoRA 更适合哪些场景?

  • AdaLoRA 的工程复杂度相比 LoRA 有什么变化?

七、实验设计与评测

  • 做一个 LoRA 实验报告,至少应该记录哪些配置?

  • 如何判断 LoRA 微调是真的提升,而不是评测泄漏?

  • LoRA 训练 loss 下降但验证效果不好,可能有哪些原因?

  • LoRA 训练后模型格式遵循变好但通用能力下降,如何分析?

  • 选择 LoRA target modules 时,你会如何做消融实验?

  • 如何比较 LoRA 和全量微调的性价比?

  • 如何评估不同 rank 的效果?

八、工程排错与面试追问

  • 如果 LoRA 训练后输出几乎和 base model 一样,可能是什么原因?

  • 如果 LoRA 训练很快过拟合,可能如何调整?

  • 如果加载 adapter 后报 target module 找不到,如何排查?

  • 如果推理结果和训练时验证结果差异很大,LoRA 相关原因有哪些?

  • 如果 adapter 文件很小,这是正常的吗?为什么?

  • LoRA 是否能完全避免灾难性遗忘?

  • LoRA 是否只适用于语言模型?

  • 面试官问“LoRA 为什么有效”,你会如何回答?

  • 面试官问“LoRA 的参数量怎么算”,你会如何回答?

  • 请总结第七天 LoRA/AdaLoRA 的完整知识链路。

            预览时标签不可点
    

    <div class="