> ## Content Index
> Fetch the complete content index at: https://www.hubwiz.com/blog/llms.txt
> Use this file to discover other available public pages before exploring further.

# 大模型微调 LoRA：LoRA / QLoRA / DoRA 一次讲清
- URL: https://www.hubwiz.com/blog/lora-qlora-and-dora-explained/
- Published: 2026-08-26T16:18:48.000Z
- Updated: 2026-10-16T10:32:09.000Z
- Description: 在这篇文章中，我们将介绍三种算法。
- Author: admin
- Tags: ALGORITHM, #Import 2026-10-14 14:41

PEFT代表参数高效微调。其核心做两件事：

1. **冻结基础模型的大部分参数。** 原始权重完全不变，这节省了大量显存并防止灾难性遗忘。
2. **只训练极少量的参数。** 不是更新数十亿权重，而是只**训练一组非常小的额外参数（如适配器层）或修改权重的表示方式（如低秩矩阵近似）。**

在这篇文章中，我们将介绍三种算法。

## 1、LoRA（低秩适应）

LoRA引入一个小的可训练更新矩阵，将其添加到原始冻结的权重矩阵中。在微调过程中，这个更新被表示为两个低秩矩阵的乘积，从而减少可训练参数的数量。

对于原始权重矩阵 `W`，完整微调学习：

LoRA假设更新ΔW可以由两个低秩矩阵近似：

因此：

其中：

- `W` 是冻结的原始权重矩阵；
- A ∈ ℝ^(r×d)；
- B ∈ ℝ^(d′×r)；
- `r` 是一个小的秩，如4、8或16；
- BA ∈ ℝ^(d′×d)，与 `W` 具有相同的形状。

训练期间：**W被冻结；A和B可训练。**

从技术上讲，LoRA不是先计算完整的ΔW然后对其进行分解。它直接将更新参数化为 `BA`，并通过反向传播训练 `A` 和 `B`。

例如，如果：

完整更新参数：

`4096 × 4096 ≈ 1680万`

LoRA参数：

`4096 × 8 + 8 × 4096 = 65,536`

所以LoRA本质上是：

> ***权重更新的低秩参数化，而不是原始LLM权重的完整矩阵分解***

## 2、QLoRA

**Q** 代表 **量化**。

它结合了：

- **量化：** 将基础模型转换为低位精度，通常是4位，以减少内存使用。
- **LoRA：** 冻结量化后的基础模型，只训练两个小的低秩矩阵。

更新后的权重可以写成：

其中 `W_4bit` 是冻结的4位模型，`BA` 是可训练的LoRA更新。

简单来说：

> ***QLoRA压缩原始模型，然后在其上训练一个小的适配器。***

这允许用更少的显存微调更大的LLM，同时保持接近标准LoRA的性能。

## 3、DoRA

### 3.1 LoRA的问题

任何向量都可以由两个分量表示：其**大小**和其**方向**。然而，LoRA通过单个低秩矩阵学习权重更新。因此，相同的低秩更新必须同时捕获权重大小和方向的变化。

对于简单任务，这种近似可能足够。然而，对于更复杂的任务，所需的更新可能包含几个独立的模式。由于更新被约束在维度为 `r` 的低秩子空间中，所有参数变化必须仅表示为 `r` 个基方向的组合。

如果任务需要的独立变化超过所选秩能表达的范围，则无法精确表示这些变化。模型必须在有限的低秩空间内近似它们，这可能导致不同适应需求之间的干扰或折衷。

### 3.2 一个简单的例子

假设所需的权重更新是：

- 增加第一个方向1；
- 减少第二个方向1；
- 保持两个方向独立。

该矩阵的秩为2：`rank(ΔW) = 2`。

然而，如果LoRA使用 `r = 1`，其更新必须具有形式：

秩-1更新可以改变多个参数，但所有变化必须遵循一个共享模式。它无法在增加一个方向的同时减少另一个方向。因此，LoRA无法精确表示目标更新，必须近似：

`ΔW ≈ BA`

这种近似可能迫使模型在不同需求之间妥协。例如，它可能学会正确增加第一个方向，但未能充分减少第二个方向。

### 3.3 DoRA在LoRA基础上增加了什么？

DoRA代表**权重分解低秩适应**。

DoRA将这两种类型的变化分离。它将预训练权重矩阵分解为大小分量和方向分量：

在微调期间：

- 方向使用LoRA矩阵 `B` 和 `A` 更新；
- 大小 `m` 作为单独的可训练参数学习。

更新后的权重可以写成：

这样，DoRA不强制相同的低秩更新同时学习大小和方向。相反：

```
LoRA分量 BA → 学习方向变化
可训练大小 m' → 学习缩放变化

```

这给了模型更多灵活性，可以使其行为更接近完整微调，特别是当任务需要复杂的权重更新时。

然而，DoRA并没有完全消除低秩约束。方向更新仍然由 `BA` 表示，因此其有效性仍然取决于所选的秩 `r`。DoRA主要改进了可用适应能力的使用方式。

## 4、秩

矩阵是模型用于处理和转换信息的基本工具；**秩**表示该矩阵实际上可以表达多少独立的信息方向。矩阵的秩代表其中真正独立的信息方向数量，也代表其转换后保留的有效维度数量。

---

原文链接：[Parameter-Efficient Fine-Tuning (PEFT): LoRA, QLoRA, and DoRA Explained](https://freedium-mirror.cfd/https://medium.com/@18280257037/parameter-efficient-fine-tuning-peft-lora-qlora-and-dora-explained-96b4257c0dd8?source=home%5Ffor%5Fyou---------56-98--------------------e3a418a7%5F70f4%5F4139%5F9e3b%5Feba189ca5a9f-------15-------)

汇智网翻译整理，转载请标明出处