系列博客目录
文章目录
LoRA: Low-Rank Adaptation of Large Language Models
传统模型适配的局限性:尽管研究界致力于通过添加适配器层或优化输入层激活来提高模型适配效率,这些方法在大型模型和延迟敏感的环境中存在局限。适配器层尽管参数较少,但顺序处理导致在线推理时延迟增加,特别是在单GPU环境或需要模型分片的情况下。什么意思?
这段话主要讨论的是在大规模模型和延迟敏感应用场景下,传统的模型适配方法存在的一些问题。
-
适配器层和输入层激活的优化:为了提高模型的适配效率,研究者们通常通过添加适配器层或者优化输入层的激活函数来调整模型,以便更好地适应不同的任务或数据。这些方法在一定程度上可以减少训练时的计算量或提高性能。
-
局限性:尽管适配器层能减少需要调整的参数数量,但它们在推理时可能导致一些问题:
- 顺序处理:适配器层通常需要按顺序进行计算,而这种处理方式可能会增加推理的延迟(即处理时间)。在延迟敏感的应用中(比如实时推理任务),延迟的增加可能会影响模型的实际表现。
- 单GPU环境:如果仅使用单个GPU进行推理,适配器层可能无法充分利用GPU的并行计算能力,进一步增加延迟。
- 模型分片:在处理大型模型时,可能需要将模型分片到多个GPU或机器上。如果适配器层无法有效地进行分布式处理,模型的适配会变得更加复杂,从而增加延迟和计算资源的消耗。
综上所述,这段话表达了传统的适配器层方法在特定环境下(如大模型、单GPU或分布式环境下)可能会面临的一些性能瓶颈和延迟问题。
这里面为什么说只需要重新训练少量的

在这段文字中提到的 LoRA 微调 方法之所以只需要重新训练少量的参数,是因为它的核心思想是将模型的参数增量(更新部分)限制为一个低秩矩阵的形式。这种方法大大减少了需要训练的参数量,原因如下:
-
分离基础模型参数和增量参数:
- LoRA 方法将模型的参数更新表示为一个低秩矩阵的形式(即 Δ Φ ( Θ ) \Delta \Phi(\Theta) ΔΦ(Θ))。
- 原始模型的参数 Φ 0 \Phi_0 Φ0 是冻结的,保持不变。
- 只需要训练新增的低秩增量参数 Δ Φ ( Θ ) \Delta \Phi(\Theta) ΔΦ(Θ),而不是整个模型的参数。
-
低秩矩阵的压缩效果:
- 在 LoRA 方法中,增量参数( Δ Φ \Delta \Phi ΔΦ)被设计为两个小矩阵(通常是维度较低的矩阵),通过矩阵乘法来表示更新。
- 这种低秩结构的参数化方式显著减少了需要训练的参数总量,从而降低了计算资源和存储需求。
-
只需调整任务相关的部分:
- LoRA 微调只关注特定任务所需的参数调整,而不需要重新训练整个模型的所有参数。
- 对于大型模型(如 GPT-3)来说,原始模型的参数量极大,而 LoRA 的低秩参数相对很小,因此只需要训练少量参数。
因此,相较于全面微调(需要对整个模型的参数进行更新和存储),LoRA 微调极大地降低了训练参数的规模,同时保留了较好的性能。这就是为什么在文中说 “只需要重新训练少量的参数”。
低秩矩阵的压缩效果主要是利用了矩阵分解的数学特性来降低参数量。以下是具体的原因:
- 矩阵参数的常规形式 vs 低秩形式
假设我们有一个需要更新的大矩阵 Δ Φ \Delta \Phi ΔΦ,其维度为 d × k d \times k d×k。在常规方法中,我们需要直接优化整个矩阵 Δ Φ \Delta \Phi ΔΦ,这会导致以下参数量:

最低0.47元/天 解锁文章
1620

被折叠的 条评论
为什么被折叠?



