| 1 | LoRA | 低秩分解、冻结原模型、PEFT事实标准 |
| 2 | FlashAttention | IO-aware、不改数学改搬运 |
| 3 | QLoRA | 4-bit量化+LoRA,消费级微调 |
| 4 | 量化基础 | INT8/INT4、outlier问题 |
| 5 | 分布式训练 | 数据并行、模型并行、ZeRO |
答:冻结预训练权重W₀,只训练低秩增量ΔW=BA(B和A是小矩阵,秩r远小于维度d)。有效原因:任务适配的权重更新是低秩的(intrinsic dimension假设),用小参数集即可捕获。合并后零推理延迟,支持一卡多适配器。
想听:低秩假设 + 合并部署 + 零推理开销
答:不改Attention的数学计算,只改数据搬运方式。核心是IO-aware:标准Attention要物化N×N的注意力矩阵并反复读写HBM(慢),FlashAttention用分块计算(tiling)在SRAM(快)中完成,避免物化大矩阵。速度提升2-4倍,内存从O(N²)降到O(N)。
想听:IO-aware + tiling + 不改数学改搬运
答:QLoRA = 4-bit量化冻结基座 + LoRA。基座权重用NF4量化(4-bit),显存占用大幅降低(65B从120GB+降到48GB)。梯度只流向LoRA层,基座不更新。反量化在计算时动态进行,训练精度由LoRA的BF16保证。
想听:NF4量化 + 梯度流向LoRA + 动态反量化
答:发现大模型(约6.7B以上)的隐藏状态中存在"系统性outlier":少数特征维数值特别大且对Attention关键,普通INT8量化会被这些outlier毁精度。解决方案:mixed-precision——outlier列保持FP16,其余列用INT8,分开计算后合并。
想听:系统性outlier + mixed-precision分开处理
答:解决数据并行的显存冗余问题。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 |
| 消费级GPU | QLoRA | ~6GB |
| 论文 | 面试关键词 | 关联考点 |
|---|---|---|
| LoRA | 低秩适配 | PEFT、合并部署 |
| FlashAttention | IO-aware | tiling、精确计算 |
| QLoRA | 4-bit微调 | NF4、消费级GPU |
| LLM.int8() | outlier | mixed-precision |
| DeepSpeed ZeRO | 显存优化 | 分片策略 |
| Megatron-LM | 张量并行 | 矩阵切分 |