本文详解PEFT参数高效微调技术及其分类,重点解析LoRA(低秩适配)的核心原理与实现。LoRA通过将权重矩阵低秩分解为两个小矩阵,仅训练少量参数,显著降低显存占用和训练时间。结合QLoRA量化技术,进一步优化资源使用,使大模型微调更加高效和经济。这些技术为开发者提供了在有限资源条件下微调大模型的实用方案,是AI工程领域的重要知识。

1、什么是PEFT

PEFT(Parameter Efficient Fine-Tuning,参数高效微调) 是指一类用于微调大型预训练语言模型(Pretrained Language Models,PLMs)的技术,通常仅更新或引入少量参数(通常占总参数的1%-10%),同时保持预训练模型的主体参数冻结(不变)。目标是以远少于全参数微调的资源开销,获得接近、甚至等同或超过后者的性能。

2、PEFT技术分类

PEFT大致分为五类

2.1 Additive Fine-Tuning

附加式微调方法,引入额外的可训练参数(如适配器Adapter、连续的伪提示词向量),原先模型的所有参数全部冻结

附加式微调方法可以分为三类:

(1)基于适配器(Adapter-based)的微调

(2)基于软提示(Soft Prompt-based)的微调

(3)其它

2.2 Partial Fine-Tuning

部分微调方法,筛选预训练模型参数中对下游任务至关重要的子集,冻结其余(认为不重要)的权重,从而减少微调的参数量。

部分微调方法可以分为三类:

(1)偏置更新

(2)预训练掩码方法

基于某种重要性评判标准(如梯度、权重幅值等),对预训练权重进行稀疏化筛选,生成二进制掩码,通过掩码动态冻结预训练模型中“不重要”的参数,仅微调被掩码选中的参数。

(3)权重掩码(Delta Weight Masking)

不直接修改预训练权重,而是学习一组增量权重(Delta Weight),通过掩码控制增量的稀疏性。

2.3 Reparameterized Fine-Tuning

重参数化微调方法,通过数学变换或结构转换,将模型的参数表示转换为另一种功能等价但参数量大大减少的形式,冻结模型权重,仅微调参数量更少的等价形式,如 LoRA(Low Rank,低秩矩阵分解)。

分为两类:

(1)LoRA分解

(2)LoRA派生

2.4 Hybrid Fine-Tuning

混合微调方法,结合多种微调策略(如部分微调+附加式微调),灵活平衡计算效率和模型性能。

分为两类:

(1)人为组合

(2)自动组合

2.5 Unified Fine-Tuning

统一微调提出了一个用于微调的整合框架,将多种微调方法整合为统一架构(同一套接口规范,如统一的预处理格式、导出格式和训练方法)。用户可以在不同的任务上通过统一的接口调用不同的微调方法。

不同于混合微调,统一微调只采用单一的微调方法,而不是多种方法的混合。

3、LoRA(Reparameterized)

🎯Lora属于是一种高效的参数微调技术,它的思想是:全量参数中有意义或者说有重大影响的参数其实只有一小部分而已。我们可以对全量的参数把它低秩分解为两个小矩阵,比如我们称之为 AB 矩阵,这两个矩阵的的参数量相比于全量模型的参数量就小的多。而我们实际在训练过程中, 会把这两个矩阵嵌入到整个模型架构中的不同位置(一共是 7 个),这些会位置可以是

  • 3 个:“注意力层的Q、K、V权重矩阵的位置”,从而影响他们最终汇合在一起的结果;

  • 1 个:“自注意力层的输出,也可以附加 Lora 适配器”

  • 3个:在 FFN 的两个线性变换,再加一个门控的位置

    一共 7 个地方可以加添适配器,而我们在训练期间,其实只需要对 Lora 适配器当中的 AB 矩阵进行参数更新,就可以达到一个接近全参数微调的一个效果。基于这样的机制,我们需要调整的参数量没有那么多,因为主要的基座模型的权重是被冻结的,不需要调整。这样有一个好处就是在计算梯度的时候,模型本身的权重哪些参数都不需要去计算损失跟梯度,我们只需要计算 AB 矩阵的梯度就可以了。所以计算的梯度量也比较少,所以总体来说,Lora 这种微调方式它需要更新的参数量少,所以计算量就小,内存占用小,所需资源就少,训练时间也会更短。并且很多实践证明,Lora 微调方式能够达到接近全参数微调效果,所以 Lora 广泛被应用。

简记:

  • Lora属于参数高效微调技术,其理论依据为全参数微调中仅部分参数起关键作用。
  • 核心操作:将全量参数分解为两个低秩矩阵(A和B),仅训练这两个矩阵。基座模型参数保持冻结状态。
  • 矩阵尺寸规范:矩阵B为d×r,矩阵A为r×k,最终输出形状为d×k。其中r通常取值为8/16/32/64等较小数值。
  • 技术优势:显著减少训练参数量,降低显存占用和缩短训练时间,实际训练时可直观对比全参数微调的资源消耗差异。

3.1 背景

Li等人(2018a)Aghajanyan等人(2020)的研究表明,经过训练(或微调)的过参数化(权重规模远大于训练数据规模)模型,其有效参数空间(即真正影响模型性能的关键变化)实际上位于一个低维子空间(低内在维度,即低秩)中。受此启发,LoRA的研究团队认为,可以用低秩矩阵来高效地近似或“等效代换”全参数微调过程中整个模型的参数变化。

3.2 定义

LoRA(Low-Rank Adaptation)是一种高效参数微调技术,基于对微调过程中,权重变化矩阵▲W****低内在维度的洞察。通过对的低秩分解,在大幅减少训练参数、显著降低显存开销的同时,获得与全参数微调相当的性能。当预训练模型为 GPT-3 175B 时,LoRA 微调可以 0.01% 的参数量,1/3 的内存占用,获得了与全参数微调相当的性能。

3.3 方法

(1)用表示预训练模型中的权重矩阵,全参数微调后获得的权重矩阵 W 可表示为

LoRA微调利用了▲W 的低秩特性,将其表示为两个低秩矩阵的乘积

其中和分别为输出和输入特征维度。`r`是LoRA微调的秩,通常 r << min(d,k)。

(2)训练过程中只更新A和B,冻结其它权重。

(3)需要更新的参数量只有d x r + r x k,通常r << min(d,k),对于d_model = 12288 的GPT-3 175B,取极小值如1或2时,更新的参数量低至全量微调的万分之一。

(4)原文只对注意力机制的四个权重矩阵W_q, W_k, Q_v, W_o进行低秩代换,即每个Transformer模块至多只包含四组作用于注意力机制的AB。除了引入的AB,其它权重都是冻结的。

3.4 数学表示

(1)前向传播的输入为X,激活值为h,则

对A采用随机正态分布初始化,B初始化为零。

3.5 码实现与论文的差别

代码实现引入了一个额外的参数s,成为缩放系数,决定低秩矩阵对激活值的影响程度,修正后的表示为

α 是用户可配置的超参数(通常记为lora_alpha),用于控制低秩更新的强度。

3.6 推理阶段的处理

(1)合并W和AB

为了追求低延迟,训练结束后可以将W和AB合并为新的W,这样推理时不会有任何额外延迟。

(2)不合并

也可以分别存储W和AB,只是在推理时需要分别计算然后求和。这样会引入少量延迟,但可以替换AB,从而在不同任务间动态切换。

3.7 优势与局限

(1)优势

  • 对于使用Adam/AdamW优化器的大型Transformer模型,由于无需为冻结参数存储优化器状态,当 r << d_model 时显存使用量减少高达2/3,。在GPT-3 175B模型上,显存开销从1.2TB缩减至350GB。当 r=4,且只对Q和V投影矩阵进行低秩分解并冻结其它权重时,模型检查点大小(反映更新的参数量)约为原先的万分之一(从350GB缩减至35MB)。
  • 部署时只需要存储一份预训练权重,可通过仅切换LoRA权重以极低成本实现任务切换,可以动态加载/卸载大量定制化模型。对GPT-3 175B,对100个任务进行全参数微调后,部署需要350GB X 100 = 35 TB 显存,而进行LoR A微调则只需要 35GB + 35MB X100 = 354GB。
  • 无需为绝大多数参数计算梯度,因此与全参数微调相比训练更快,在GPT-3 175B 上观察到 25% 的训练加速。

(2)局限

如果将A、B与权重矩阵W合并以消除额外推理延迟,则无法在单次前向传播中批量处理针对不同任务的输入(A和B不同)。在延迟不敏感的场景,可以不合并权重,动态地为同一批次中的样本选择合适的LoRA模块。

3.8 试验评估

下表展示了不同的方法对、和模型进行微调后,在GLUE基准测试上的得分。所有测试得分都是越高越好。

(1)FT表示全参数微调。

(2)BitFit表示偏置项微调。

(3)Adpt^H 是原版的Adapter微调。

(4)Adpt^P 也叫 Adpt^L,是原版Adapter的改进,只在MLP模块和层归一化之后添加Adapter。

(5)Adpt^D 是另一种名为AdapterDrop的高效微调技术。

3.9 应将LoRA适配应用于哪些权重矩阵

上文提到,研究团队只对自注意力模块应用LoRA适配,其中包含四个权重矩阵W_q, W_k, Q_v, W_o。

下表展示了当微调参数预算固定为18M(参数的个数,如果以FP16存储则占用空间约为35MB)时,在GPT-3 175B预训练模型上,对不同的注意力权重矩阵进行LoRA适配后,在WikiSQL和MultiNLI任务上测试的准确率。

(1)将所有参数预算都用于适配▲W_q 或 ▲W_k会导致显著的性能损失。

(2)同时对▲W_q和▲W_v进行适配在WikiSQL上可以获得最佳性能。

(3)同时对所有矩阵进行适配可以在两个任务上都获得最佳性能。

(4)这意味着,即便只用大小为2的秩,在所有矩阵上进行适配也可以从▲W中获得足够多的信息。

(5)当参数预算固定的情况下,用更小的秩适配更多的权重矩阵,比用更大的秩适配单个权重矩阵能获得更好的效果。

3.10 最佳秩的确定(2,4,6,8,64)

同时适配W_q,W_qv时,只需要很小的秩(r)即可获得最佳性能,而仅适配则需要更大的秩。这证实了推论:▲W具有极小的“内在秩”。

3.11 时间复杂度和空间复杂度的置换

(1)空间复杂度

LoRA将▲W替换为BA_x,参数量由d x k替换为d x r + r x k,在r << min(d,k) 时参数量显著减少。以r = 2为例,参数量变为,空间复杂度显著降低。

(2)时间复杂度

(3)总结

LoRA本质上是以时间换空间,以略大的算力开销为代价(可以忽略不计),显著降低了显存开销。目前大模型训练的瓶颈主要在于显存,因此,这样的置换是有意义的。此外,全参数微调会更新所有权重,而LoRA只会选择其中的一部分权重矩阵进行低秩代换,进一步降低了显存开销,同时也减少了额外的计算开销。是一种经济高效的微调方式。

4、QLora

QLora = Lora + 量化技术 (量化的是模型矩阵的参数,而不是 AB 矩阵的参数)

4.1 定义

通过4-bit量化的BaseModel在保持高性能的同时减少内存使用,使得模型微调的门槛大大降低。

  • 4bit NormalFloat(NF4)

提出了一种对于以零为中心的正态分布数据在信息论上最优的数据类型,该数据类型对正态分布数据产生比4bitint和4bitfloat更好的效果;

  • Double Quantization

对量化常数进行量化,减少存储空间;

  • 分页优化器

在GPU偶尔内存不足的情况下,自动在CPU和GPU之间进行页面到页面的传输

以避免 GPU OOM。

4.2 NF4

4.2.1 如果是平均量化

SimpleQuant-Int4如下分布,Y轴表示权重落入特定量化区间的比例:

4.2.2 NF4

NF4是一种数据类型,它在量化过程中保留了零点,并使用所有 2k位来表示 k 位数据类型。这种数据类型通过估计两个范围的分位数qi 来创建一个非对称的数据类型,这两个范围分别是负数部分 [-1,0]2k-1和正数部分[0,1]2k-1 + 1 。然后,它统一了这两组分位数 qi,并从两组中都出现的两个零中移除一个。

这种结果数据类型在每个量化 bin 中都有相等的期望值数量,因此被称为 k-bit NormalFloat (NFk),这种数据类型对于以零为中心的正态分布数据在信息论上是最优的

NF4分位数计算公式:

标准正态分布量化函数把[-1, 0]分成7份,然后生成[-1, ..., 0]共8个分位数, 把[0, 1]分成8份, 然后生成[0, ..., 1]共9个分位数,两个合起来去掉一个0就生成全部的16个分位数了。

4.3 Double Quantization

在量化的过程中,为了降低异常值的影响,我们采用分块的方式进行进行量化。

具体来说就是每64个参数共享一个量化常数(Absmax,32bit),这样的话相当于每一个参数的量化额外开销为32bit/64=0.5bit

这个总体来说也是比较大的一个开销,所以为了进一步优化这个量化开销,我们对其进行二次量化DoubleQuantization,对量化常数进行进一步的量化。我们采用256的块大小对量化常数进行FP8量化,这样的话,我们可以把每个参数的量化额外开销降低到:8/64 + 32/(64 * 256) = 0.127 bit

4.4 分页优化器

在GPU偶尔内存不足的情况下,自动在CPU和GPU之间进行页面到页面的传输,以避免GPU OOM。

这个特性就像CPU RAM和磁盘之间的常规内存分页一样工作。我们使用这个特性为优化器状态分配分页内存,当GPU内存不足时,这些优化器状态会自动被驱逐到CPU RAM,当在优化器更新步骤中需要内存时,它们会被分页回GPU内存。

5、秩(Rank)的数学概念

秩是衡量矩阵中真正有效信息量的数学指标,而LoRA技术正是巧妙地利用了权重矩阵的“低秩”特性来实现高效微调。

下面我将通过一个对比表格和详细分解,帮助您全面理解这个概念。

📊 秩的核心概念与LoRA中的角色

💡 如何直观理解“秩”?(从生活例子到数学)

我们可以通过一个简单的例子来感受什么是“秩”以及什么是“线性相关”。

  • 情景A:小红买3个苹果和4个桃子花了18元,小明买2个苹果和3个桃子花了13元。这两个方程是线性无关的(每个方程都提供了独特的信息),它们组成的方程组其系数矩阵的秩为2,因此我们可以解出苹果和桃子的单价。
  • 情景B:小红买3个苹果和4个桃子花了18元,小明买6个苹果和8个桃子花了36元。此时,第二个方程只是第一个方程的两倍,它没有提供任何新信息,这两个方程是线性相关的。它们组成的方程组其系数矩阵的秩为1,我们无法解出唯一的解。

将这个概念延伸到矩阵上:

  • 一个全零矩阵 [0000]不包含任何信息,其秩为0。
  • 一个单位矩阵 [1001]的两行/两列完全不同,信息量最大,其秩为2(满秩)。
  • 一个矩阵 [1224],第二行只是第一行的2倍,信息是重复的,其秩为1(低秩)。

🧠 为什么LoRA可以利用“低秩”特性?

LoRA技术有效的核心基于一个深刻的洞察:大型预训练模型在适应下游任务时,其权重的变化量 ΔW具有“低秩属性”

这意味着,尽管权重矩阵 W本身可能非常大(例如 4096×4096),但微调所需的有意义的更新方向(即 ΔW中那些线性无关的列/行)其实非常少。ΔW矩阵中充满了冗余信息,其内在的“有效维度”或“内在维度”很低。

因此,我们不需要用一个完整的、拥有 4096×4096(约1678万个)参数的矩阵来表示 ΔW。我们可以用一个低秩分解来近似它:ΔW=BA 其中,A的维度是 r×n,B的维度是 m×r,而秩 r是一个远小于 m和 n的值(通常为4, 8, 16等)。

通过这种方式,需要训练的参数量从 m×n锐减至 r×(m+n)。当 r很小时,参数量显著减少。例如,对于一个 4096×4096的权重矩阵,当 r=8时,参数量从1678万降至 8×(4096+4096)=65536,仅为原来的约 0.39%

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

https://img-blog.csdnimg.cn/img_convert/05840567e2912bcdcdda7b15cba33d93.jpeg

在这里插入图片描述

为什么要学习大模型?

我国在A大模型领域面临人才短缺,数量与质量均落后于发达国家。2023年,人才缺口已超百万,凸显培养不足。随着AI技术飞速发展,预计到2025年,这一缺口将急剧扩大至400万,严重制约我国AI产业的创新步伐。加强人才培养,优化教育体系,国际合作并进是破解困局、推动AI发展的关键。

在这里插入图片描述

在这里插入图片描述

大模型入门到实战全套学习大礼包

1、大模型系统化学习路线

作为学习AI大模型技术的新手,方向至关重要。 正确的学习路线可以为你节省时间,少走弯路;方向不对,努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划,带你从零基础入门到精通!

img


2、大模型学习书籍&文档

学习AI大模型离不开书籍文档,我精选了一系列大模型技术的书籍和学习文档(电子版),它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。

在这里插入图片描述

3、AI大模型最新行业报告

2025最新行业报告,针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

img

4、大模型项目实战&配套源码

学以致用,在项目实战中检验和巩固你所学到的知识,同时为你找工作就业和职业发展打下坚实的基础。

img

5、大模型大厂面试真题

面试不仅是技术的较量,更需要充分的准备。在你已经掌握了大模型技术之后,就需要开始准备面试,我精心整理了一份大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余

img

适用人群

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范
第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署
第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建
第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

https://img-blog.csdnimg.cn/img_convert/05840567e2912bcdcdda7b15cba33d93.jpeg

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐