LoRA 介绍


经过 pre-training 得到的Base Model具有通用的能力,为了adapt不同的任务,需要fine-tuning;

常用的微调方法包括:

  • Full Fine-Tuning 全参微调:调整所有模型参数,适用于数据量较大且对性能要求极高的情况。

  • Parameter-Efficient Fine-Tuning (PEFT)如冻结部分参数,仅调整某些层或模块(如 LoRA、Adapter)。

  • Instruction Tuning 指令微调,通过特定格式的数据集微调,提升模型对指令的理解能力。

  • 持续学习:在模型中添加新数据训练,使其逐步适应新需求。

由于 LLM 的参数量巨大,全参微调需要较多的算力资源开销,成本较高,如训练时间长,需要较多显存等;

目前主流方案是通过 PEFT 进行微调,旨在减少需要训练的模型参数量,同时保证微调后的模型性能能够与全量微调的表现相媲美。


Adapters

PEFT-based 技术的一种思路是通过Adapters来实现;

通过在Transformer中添加一些模块组件,这样不需要微调全部参数,只需要微调Adapters的参数而冻结其他部分的参数,在特定任务上可以实现模型效果的提升;

  • Parameter-efficient transfer learning for NLP 显示3.6%的参数更新即可达到全参数微调的效果;
LoRA 介绍

Adapters 也可以出现在模型中的不同位置:

LoRA 介绍

本文介绍的LoRA是PEFT中广泛使用的技术,也可以看作是一种Adapter;

除了LoRA,其他PEFT还包含适配器微调,前缀微调、提示微调。


What is LoRA ?

  • LoRA: Low-Rank Adaptation of Large Language Models:https://arxiv.org/abs/2106.09685

LLM 的 Transformer 架构中,包含大量的线性变换层,且参数矩阵维度通常很高,研究人员发现模型在针对特定任务进行适配时,参数矩阵往往是 过参数化(Over-parametrized)的,其存在一个较低的内在秩

为了解决这一问题,LoRA 提出在预训练模型的参数矩阵上添加低秩分解矩阵来近似每层的参数更新,从而减少适配下游任务所需要训练的参数

LoRA在微调的时候,将pre-trained model的参数冻结,同时将可训练的秩分解矩阵注入到Transformer架构的layer中,可以极大降低需要训练的参数量。

which freezes the pre-trained model weights and injects trainable rank decomposition matrices into each layer of the Transformer architecture, greatly reducing the number of trainable parameters for downstream tasks


How LoRA Work?

LoRA 介绍

不同于全参微调,需要更新全部的参数;

LoRA 介绍

我们可以进行矩阵分解,用小矩阵的更新来近似更新大矩阵;如图中显示,当rank=1的时候,需要更新的参数从10*10降低到10+10。

LoRA 介绍
LoRA 介绍

  • LoRA除了可以在线性层,也可以插入到注意力层,嵌入层;


LoRA Workflow

给定一个参数矩阵 ?,参数更新过程:? = ?0 + Δ?,

LoRA 的基本思想是冻结原始矩阵 ?0 ∈ R?×?,通过低秩分解矩阵 ? ∈ R?×? 和 ? ∈ R?×? 来近似参数更新矩阵 Δ? = ? · ?,其中 ? ≪ ? 是减小后的秩。

在微调期间,原始的矩阵参数 ?0 不会被更新,低秩分解矩阵 ? 和 ? 则是?0用于适配下游任务;


LoRA参数初始化

  • 采用LoRA训练的时候,矩阵A一般用正态分布来初始化,矩阵B用0矩阵来初始化;

  • r一般设置为4的倍数;

    LoRA 介绍


  • 为什么A正态分布初始化?

    • 1. 平衡训练初期的影响:正态分布初始化的值一般较小,结合B初始化为零矩阵,可以在训练初期确保新增的偏置矩阵对原始预训练权重的影响为零,从而避免破坏项训练模型的初始性能。
    • 2. 提供足够的随机性:正态分布的随机初始化为模型提供了足够的随机性,从而能够探索更广泛的参数空间,增加了模型找到最优解的可能性。
    • 3. 确保初始梯度的有效传播:正态分布初始化有助于在训练初期确保梯度有效传播,避免梯度消失或爆炸的问题。
  • 为什么B初始化为零矩阵?

    • (1)如果B和A全部初始化为零矩阵,缺点是很容易导致梯度消失;

    • (2)如果B和A全部正态分布初始化,那么在模型训练开始时,就会容易得到一个过大的偏移直Δ?,从而引起太多噪声,导致难以收敛。


LoRA 所需的显存估计


LoRA 介绍


LoRA 改进

为弥补LoRA 与全量微调之间仍存在性能差距,提出 LoRA 的改进方法,以进一步提升 LoRA 在下游任务中的适配性能。现有方法主要有:

  • (1) 打破低秩瓶颈;ReLoRA提出了一种合并和重置(merge-and-reinit)的方法,该方法在微调过程中周期性地将 LoRA 模块合并到大语言模型中,并在合并后重新初始化 LoRA 模块和优化器状态。
  • (2) 动态秩分配;AdaLoRA 通过将参数更新矩阵参数化为奇异值分解(SVD)的形 式,再通过奇异值剪枝动态调整不同层中 LoRA 模块的秩
  • (3) 训练过程优化。DoRA (权重分解低秩适应)提出约束梯度更新,侧重于更新参数的方向 变化。


QLoRA

尽管 LoRA 能够有效地节省显存,但对于参数规模达到上百亿级别的模型而言,其微调所需的成本仍然相当高昂。QLoRA 将原始的参数矩阵量化为 4 比特,而低秩参数部分仍使用 16 比特进行训练,在保持微调效果的同时进一步节省了显存开销。

QLoRA 微调所需要的显存由 LoRA 微调所需要的2? 进一步下降为 0.5?。因 此通过 QLoRA 技术,可以在一张 A6000 (48GB) 的 GPU 上微调 65B 的模型,接 近 16 比特模型微调的性能。


Why LoRA Work?

  • Measuring the Intrinsic Di- mension of Objective Landscapes.:https://arxiv.org/pdf/1804.08838
  • Intrinsic Dimensionality Explains the Effectiveness of Language Model Fine-Tuning:https://arxiv.org/pdf/2012.13255

which show that the learned over-parametrized models in fact reside on a low intrinsic dimension. We hypothesize that the change in weights during model adaptation also has a low “intrinsic rank”

研究表明,语言模型针对特定任务微调之后,权重矩阵通常具有很低的本征秩 (Intrinsic Rank)。研究人员认为参数更新量即便投影到较小的子空间中,也不会影响学习的有效性。因此,提出固定预训练模型参数不变,在原本权重矩阵旁路添加低秩矩阵的乘积作为可训练参数,用以模拟参数的变化量


Agent智能体Openclaw新闻资讯

OpenClaw走红背后:当AI助手拥有你的邮箱和硬盘访问权

2026-4-20 3:24:37

企业落地新闻资讯智能营销

AI写标书,大模型如何让你的投标脱颖而出?

2026-4-20 3:38:01

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
购物车
优惠劵
搜索