§ 05阶段五 · 高效训练与推理 面试指引

高效训练与推理(Efficiency)· 面试高频考点

聚焦:LoRA / FlashAttention / QLoRA / LLM.int8 / DeepSpeed ZeRO / Megatron-LM 的面试高频考点

适用:AI算法岗、大模型应用岗、研究实习面试 | 阅读:10-15分钟

一、高频考点总览

1LoRA低秩分解、冻结原模型、PEFT事实标准
2FlashAttentionIO-aware、不改数学改搬运
3QLoRA4-bit量化+LoRA,消费级微调
4量化基础INT8/INT4、outlier问题
5分布式训练数据并行、模型并行、ZeRO

二、必会问答

Q1: LoRA的核心思想是什么?为什么有效?

答:冻结预训练权重W₀,只训练低秩增量ΔW=BA(B和A是小矩阵,秩r远小于维度d)。有效原因:任务适配的权重更新是低秩的(intrinsic dimension假设),用小参数集即可捕获。合并后零推理延迟,支持一卡多适配器。

想听:低秩假设 + 合并部署 + 零推理开销

Q2: FlashAttention的创新点是什么?它改了什么?

答:不改Attention的数学计算,只改数据搬运方式。核心是IO-aware:标准Attention要物化N×N的注意力矩阵并反复读写HBM(慢),FlashAttention用分块计算(tiling)在SRAM(快)中完成,避免物化大矩阵。速度提升2-4倍,内存从O(N²)降到O(N)。

想听:IO-aware + tiling + 不改数学改搬运

Q3: QLoRA相比LoRA多了什么?为什么能让65B模型单卡微调?

答:QLoRA = 4-bit量化冻结基座 + LoRA。基座权重用NF4量化(4-bit),显存占用大幅降低(65B从120GB+降到48GB)。梯度只流向LoRA层,基座不更新。反量化在计算时动态进行,训练精度由LoRA的BF16保证。

想听:NF4量化 + 梯度流向LoRA + 动态反量化

Q4: LLM.int8()发现了什么问题?怎么解决的?

答:发现大模型(约6.7B以上)的隐藏状态中存在"系统性outlier":少数特征维数值特别大且对Attention关键,普通INT8量化会被这些outlier毁精度。解决方案:mixed-precision——outlier列保持FP16,其余列用INT8,分开计算后合并。

想听:系统性outlier + mixed-precision分开处理

Q5: DeepSpeed ZeRO解决什么问题?三个阶段分别优化什么?

答:解决数据并行的显存冗余问题。Stage 1分片优化器状态;Stage 2分片优化器状态+梯度;Stage 3分片优化器状态+梯度+参数。每增加一个阶段,单卡显存占用降低,但通信量增加。还支持Offload到CPU/NVMe。

想听:分片优化器→梯度→参数的渐进优化

三、追问陷阱

追问应对要点
"LoRA的秩r怎么选?"r是全量微调↔不动的滑杆。r=1-8通常够用,r=128已接近全量微调效果。具体需实验验证,与任务复杂度和数据量相关。
"FlashAttention会改变Attention结果吗?"不会。它是精确计算,不是近似。只是改变了计算顺序和内存访问模式,数学结果完全一致。
"量化一定会损失精度吗?"不一定。QLoRA的NF4量化后训练效果几乎无损,因为梯度只流向LoRA层,基座的量化误差不会累积。但推理时的极端量化(如2-bit)会有明显损失。
"ZeRO和模型并行有什么区别?"ZeRO是数据并行的显存优化,每张卡存部分状态但计算完整模型;模型并行是把模型切分到多张卡上,每张卡只算一部分。ZeRO通信量更大但实现更简单。
"Megatron-LM的张量并行是什么?"把矩阵计算切分到多张卡上。比如一个大矩阵乘法,每张卡算一部分列/行,结果AllReduce合并。适合单层参数太大的场景。

四、实战建议

微调方案选型

场景推荐方案显存需求(7B模型)
资源充足、追求最优全量微调~60GB
资源有限、常规任务LoRA~16GB
消费级GPUQLoRA~6GB

面试前速查清单

论文面试关键词关联考点
LoRA低秩适配PEFT、合并部署
FlashAttentionIO-awaretiling、精确计算
QLoRA4-bit微调NF4、消费级GPU
LLM.int8()outliermixed-precision
DeepSpeed ZeRO显存优化分片策略
Megatron-LM张量并行矩阵切分