跳转至

08 - 预训练和微调面试题

预训练方法、微调技术、 LoRA 、 QLoRA

📖 章节概述

本章将整理预训练和微调相关的面试题,包括预训练方法、微调技术、 LoRA 、 QLoRA 等内容。

🎯 学习目标

完成本章后,你将能够:

  • 掌握预训练的核心方法
  • 了解各种微调技术
  • 理解 LoRA 和 QLoRA 的原理
  • 能够回答相关面试题

1. 预训练方法

Q1: 什么是 MLM 预训练

解答: MLM ( Masked Language Modeling )是 BERT 使用的预训练方法。

核心思想: - 随机 mask 输入序列中的部分 token - 预测被 mask 的 token - 学习双向上下文表示

优势: - 学习双向表示 - 适合理解任务 - 可以利用上下文信息

Q2: 什么是 CLM 预训练

解答: CLM ( Causal Language Modeling )是 GPT 使用的预训练方法。

核心思想: - 自回归预测下一个 token - 只能看到之前的 token - 学习单向表示

优势: - 适合生成任务 - 自然的语言建模 - 容易实现

Q3: Scaling Law 是什么

解答: Scaling Law 描述了模型性能与模型大小、数据量、计算资源之间的关系。

主要发现: 1. 性能与模型大小呈幂律关系 2. 性能与数据量呈幂律关系 3. 性能与计算量呈幂律关系 4. 三者之间存在权衡关系

应用: - 预测模型性能 - 指导模型设计 - 优化资源分配

2. 微调技术

Q4: 全量微调和部分微调的区别

解答

特性 全量微调 部分微调
参数更新 所有参数 部分参数
数据需求 大量数据 较少数据
计算资源
过拟合风险
适用场景 数据充足 数据有限

Q5: 什么是 PEFT

解答: PEFT ( Parameter-Efficient Fine-Tuning )是参数高效微调方法。

核心思想: - 只训练少量参数 - 冻结大部分模型参数 - 大幅减少计算和存储需求

常见方法: 1. LoRA ( Low-Rank Adaptation ) 2. Adapter 3. Prefix Tuning 4. Prompt Tuning

3. LoRA

Q6: LoRA 的原理是什么

解答: LoRA 通过低秩分解来减少可训练参数。

核心思想: - 假设权重更新ΔW 是低秩的 - ΔW = BA ,其中 B 和 A 是低秩矩阵 - 只训练 B 和 A ,参数量大幅减少

公式

Text Only
W' = W + ΔW = W + BA

优势: - 参数量少(通常<1%) - 不增加推理开销 - 可以合并到原始权重

Q7: LoRA 相比全量微调的优势

解答: LoRA 的优势:

  1. 参数效率:相对全量微调,很多场景能把可训练参数量压到原模型的很小一部分
  2. 存储效率:只存储 LoRA 权重
  3. 训练效率:训练速度快
  4. 推理效率:不增加推理开销
  5. 灵活性:可以轻松切换不同任务

4. QLoRA

Q8: QLoRA 相比 LoRA 的改进

解答: QLoRA ( Quantized LoRA )相比 LoRA 的改进:

  1. 量化基础模型:将基础模型量化到 4 位
  2. 低秩适配器:使用 LoRA 进行微调
  3. 显存大幅降低:显存需求降低约 75%

优势: - 可以在消费级 GPU 上微调大模型 - 精度损失小 - 推理阶段若把 LoRA 权重并回基座,额外开销通常较小;若保留独立适配器实现,仍要看服务框架

Q9: 如何选择 LoRA 的 rank

解答: 选择 LoRA rank 需要考虑:

  1. 任务复杂度:复杂任务需要更高 rank
  2. 数据量:数据多可以尝试更高 rank
  3. 计算资源:资源有限选择较低 rank
  4. 精度要求:高精度选择较高 rank

常见选择: - 小模型(<1B ): rank 8-16 - 中模型( 1-10B ): rank 16-32 - 大模型(>10B ): rank 32-64

4.5 近年常见的 PEFT 延伸方法

Q10: DoRA 相比 LoRA 有什么改进?

解答: DoRA(Weight-Decomposed Low-Rank Adaptation)将权重分解为幅度方向两个独立部分进行微调。

核心思想: - LoRA:直接学习 ΔW = BA - DoRA:\(W' = m \cdot \frac{W_0 + BA}{\|W_0 + BA\|}\)(m 为可学习幅度向量)

优势: - 在多任务学习中表现更稳定 - 更接近全量微调的效果 - 参数量增加极少(仅增加幅度向量 m)

Q11: 什么是 GRPO?与 PPO 的区别?

解答: GRPO(Group Relative Policy Optimization)是近年公开讨论较多的一类策略优化方法,常用于数学、代码等可验证奖励较强的任务;部分推理模型公开技术报告中采用过相近路线。

核心区别

方面 PPO GRPO
优势估计 需要 Value Network 组内相对排名,无需额外网络
模型数量 常见实现需要 Actor/Critic/Ref/Reward 等组件 常见实现可只保留 Policy/Reference 两类核心模型
显存占用 通常低于典型 PPO 风格实现
适用场景 通用 RL 可验证奖励任务(数学/代码)

GRPO 优势函数: $\(\hat{A}_i = \frac{r_i - \text{mean}(r_{1:G})}{\text{std}(r_{1:G})}\)$

Q12: 什么是 RLOO?

解答: RLOO(Reinforce Leave-One-Out)是另一种高效的策略优化方法。

核心思想: - 对每个样本,使用其他样本的平均奖励作为基线 - 无需 Critic 网络,参数效率高

公式: $\(\nabla J = \mathbb{E}\left[(r_i - \frac{1}{K-1}\sum_{j \neq i} r_j) \nabla \log \pi(a_i|s)\right]\)$

与 GRPO 的关系: - 两者都属于“不显式训练价值网络”的一类策略优化路线 - 实际差异仍要看采样方式、归一化方式和实现细节

5. 练习题

基础练习

  1. 实现 MLM 预训练
Python
# 练习: 实现MLM预训练
class MLMPretraining(nn.Module):
    def __init__(self, model):
        # 你的代码
        pass

    def forward(self, input_ids, attention_mask, labels):
        # 你的代码
        pass
  1. 实现 LoRA 层
Python
# 练习: 实现LoRA层
class LoRALayer(nn.Module):
    def __init__(self, in_features, out_features, rank=8):
        # 你的代码
        pass

    def forward(self, x):
        # 你的代码
        pass

进阶练习

  1. 实现 QLoRA
Python
# 练习: 实现QLoRA
class QLoRALayer(nn.Module):
    def __init__(self, base_layer, rank=8):
        # 你的代码
        pass

    def forward(self, x):
        # 你的代码
        pass
  1. 实现 Prefix Tuning
Python
# 练习: 实现Prefix Tuning
class PrefixTuning(nn.Module):
    def __init__(self, model, prefix_length=10):
        # 你的代码
        pass

    def forward(self, x):
        # 你的代码
        pass

6. 答题建议

✅ 面试技巧

  1. 理解原理
  2. 深入理解核心概念
  3. 掌握数学公式
  4. 了解设计决策

  5. 代码实现

  6. 准备关键代码
  7. 理解实现细节
  8. 能够解释代码

  9. 对比分析

  10. 对比不同方法
  11. 分析优缺点
  12. 说明适用场景

❌ 避免做法

  1. 死记硬背
  2. 理解核心原理
  3. 掌握关键公式
  4. 灵活应用

  5. 忽视细节

  6. 注意技术细节
  7. 理解设计权衡
  8. 了解代表性进展与适用边界

  9. 缺乏实践

  10. 结合项目经验
  11. 动手实践验证
  12. 积累实战经验

7. 总结

本章介绍了预训练和微调的面试题:

  • 预训练: MLM 、 CLM 、 Scaling Law
  • 微调: 全量微调、部分微调、 PEFT
  • LoRA: 低秩分解、参数效率
  • QLoRA: 量化基础模型、显存优化

这些知识是大模型岗位中较常见的一组考点,但不同公司会按岗位侧重点进行取舍。

8. 下一步

继续学习09-推理优化面试题,了解推理优化的相关知识。

⚠️ 核验说明(2026-04-03):本页已完成 2026-04-03 人工复核。LoRA/QLoRA、GRPO/RLOO 等答案已去掉过强结论,改为更符合公开论文与工程实现差异的表述。


最后更新日期: 2026-04-03