大模型算法实习-LoRA知识点梳理
1. LoRA 是什么
LoRA(Low-Rank Adaptation) 是一种大语言模型微调(fine-tuning)方法,主要用来在保持大模型主干参数冻结的前提下,通过插入低秩矩阵来高效学习新任务的参数。
核心思想
假设我们有一个预训练模型的权重矩阵 果直接全量微调,参数量巨大。
LoRA 的做法是:
-
:冻结的预训练权重
-
:可训练的低秩矩阵
-
:可训练的低秩矩阵
-
,即秩非常低,通常 4~32。
这样,大模型只需要训练极少量参数(几百万),比全量微调快10~100倍,显存占用也大幅下降。
2. LoRA 的优势
| 特性 | LoRA | 全量微调 |
|---|---|---|
| 可训练参数量 | 极少(<1%) | 100% |
| 显存占用 | 低 | 高 |
| 多任务适配 | 支持不同 LoRA 插件组合 | 需要多份模型 |
| 训练速度 | 快 | 慢 |
| 推理开销 | 基本不变(合并 LoRA 参数后) | 较大 |
3. LoRA 面试高频考点
针对算法实习面试,面试官会从以下几个角度出题:
(1) 原理类问题
考察你是否理解 LoRA 以及大模型微调
1.LoRA 的原理是什么?为什么能减少显存占用?
A:
LoRA(Low-Rank Adaptation)通过低秩矩阵分解来高效微调大模型,同时冻结原始权重,仅训练小规模的增量参数,从而大幅减少显存占用。
2.低秩分解的数学基础是什么?
A:
LoRA 假设模型在新任务上的权重更新 本质是低秩的,因此可以通过两个低维矩阵
,
近似表达,这就是低秩分解的数学基础。
3.LoRA 主要在哪些层插入?常见位置是什么?
A:
Transformer 的 attention Q、V 投影层,原因:Q、V 层参数量大,且对模型输出影响最大;K (Key) 和 O (Output) 层的影响相对小,一般不加 LoRA
4.LoRA 与 Prefix-Tuning、Prompt-Tuning 有什么区别?
A:
| 方法 | 思路 | 参数量 | 适用场景 |
|---|---|---|---|
| LoRA | 在模型权重矩阵旁插入低秩可训练层 | 中等 | 泛用,适合大多数任务 |
| Prefix-Tuning | 在每一层的注意力中插入可训练的前缀向量 | 较少 | 对话、生成任务 |
| Prompt-Tuning | 只在输入端拼接可训练 Prompt Embedding | 最少 | 小样本下游任务 |
核心区别:
-
参数位置不同:
-
LoRA → 权重矩阵旁
-
Prefix-Tuning → 注意力 Key/Value 前
-
Prompt-Tuning → 输入端
-
-
效果:LoRA 通常在中小数据量下表现更稳定
-
显存开销:Prompt-Tuning最小,LoRA略高
总结回答:
“LoRA 是在模型内部权重矩阵旁插入低秩模块,Prefix/Prompt-Tuning则是通过在输入或注意力前缀插入可训练向量实现轻量微调。”
5.LoRA 对推理速度有影响吗?为什么?
A:
-
训练阶段:LoRA 会增加矩阵乘法,但因为秩
很小,影响可忽略。
-
推理阶段:
-
合并参数:将
直接加回原始权重
-
之后推理完全等价于原始大模型
→ 推理速度几乎无影响
-
总结回答:
“LoRA 在推理时可以把低秩参数直接合并回原始权重,不引入额外计算,因此推理速度基本不受影响。”
待更新工程实现类问题,大模型生态与对比类题目
更多推荐



所有评论(0)