浅谈LoRA,理清跟增量微调的区别

大模型增量微调的各种方法 大模型增量微调发展至今,已经涌现出一系列方法,尽管这些方法可能有不同的模型结构和训练策略,但它们都秉承参数高效的基本原则。根据具体的训练策略,可以将增量微调分为三大类:添加式方法、指定式方法和重参数化方法。 阅读详情

前言

曾在游戏世界挥洒创意,也曾在前端和后端的浪潮间穿梭,如今,而立的我仰望AI的璀璨星空,心潮澎湃,步履不停!愿你我皆乘风破浪,逐梦星辰!

核心

其实,LoRA 核心就一句话:“用局部微调的方法去逼近全量微调的效果。”


📌 如何理解?

  1. 全量微调(Full Fine-tuning):

    • 需要更新模型所有参数,计算量和存储开销大。
    • 如果模型有 100 亿个参数,就要微调 100 亿个参数,需要大量 GPU 显存。
  2. LoRA(Low-Rank Adaptation):

    • 冻结原始模型权重,不直接修改参数。
    • 只在部分层(如 Attention 层)插入低秩矩阵(A, B),用较小的参数量去拟合完整的微调效果。
    • 训练时 只更新 A, B,最终计算: W=W0+ABW = W_0 + AB
    • 参数量大幅减少,但仍然能近似达到全量微调的效果。

📌 直观理解:

  • 全量微调 就像 重新装修一整个房子(耗时、耗钱)。
  • LoRA 只是在关键点 增加可移动家具,改变风格但不动房子本身(快速、低成本)。

📌 直观数学示例

假设原始模型参数矩阵:

W0∈R ^ (4×6)

如果直接全参数微调,我们需要更新 4 x 6 = 24 个参数。


✅ 全量微调

W=W0+ΔW

其中:

ΔW∈R8×10

需要训练 80 个参数,计算量大。


✅ LoRA 微调

ΔW=AB

其中:

  • A∈R8 × 2(8×2 低秩矩阵)
  • B∈R2 x 10(2×10 低秩矩阵)

参数总量:

(8×2)+(2×10)=16+20=36

相比全量微调的 80 个参数,参数量大幅减少,但 AxB 仍然可以逼近 W0。

📌 结果

  • 训练的参数量减少,但最终效果接近全量微调。
  • 计算复杂度降低,适合大模型(GPT, LLaMA)。

📌 LoRA 微调 vs. 增量微调(Incremental Fine-tuning)

LoRA(Low-Rank Adaptation)和增量微调(Incremental Fine-tuning)都属于高效微调方法,但它们在 参数更新方式、存储方式、计算开销 方面有显著不同。


1️⃣ 主要区别

对比项LoRA(局部低秩微调)增量微调(Incremental Fine-tuning)
原始权重冻结,不修改 $W_0$复制一份 $W_0$,修改部分参数
训练参数仅训练低秩矩阵 $A, B$,计算量低训练部分或全部参数,计算量大
计算复杂度$O(d_{out} \times r + r \times d_{in})$(远小于全参数)$O(d_{out} \times d_{in})$(部分更新)
存储开销只存储 $A, B$,存储开销小存储新的 $W'$(部分更新)
推理方式$W = W_0 + AB$(可合并)切换到新模型 $W'$ 进行推理
适用场景适用于大模型(如 GPT、LLaMA),低显存设备适用于长期训练,持续优化模型

📌 总结

  • LoRA → 仅用两个小矩阵 $A, B$ 调整 $W_0$,不修改原始权重,节省计算量。
  • 增量微调 → 修改部分参数(如 Adapter 层),但比 LoRA 占用更多计算资源。

2️⃣ LoRA 微调原理

LoRA 采用:

W=W0+ΔWW = W_0 + \Delta W

其中:

ΔW=AB\Delta W = AB

  • $A$(低秩矩阵,$d_{out} \times r$)
  • $B$(低秩矩阵,$r \times d_{in}$)
  • LoRA 仅训练 $A, B$,不修改 $W_0$,所以存储开销小。

3️⃣ 增量微调(Incremental Fine-tuning)原理

增量微调的策略通常有:

  1. Adapter 层:在原始模型 $W_0$ 之外添加新的参数层: W′=Adapter(W0)W' = \text{Adapter}(W_0)
  2. 部分参数更新:只训练Transformer 某些层的参数:
    for param in model.encoder.layer[-2:].parameters():
        param.requires_grad = True  # 仅微调最后两层
  3. 长期训练模式:支持多个阶段训练,每个阶段都增量更新参数。

4️⃣ 计算复杂度对比

(1) LoRA

如果原始 Transformer 权重矩阵为:

W0∈Rd{out}×d{in}

LoRA 只需训练:

A∈Rd{out}×r, B∈Rr×d{in} 

计算复杂度:

O(d{out}×r+r×d{in}), 显存占用大幅减少。


(2) 增量微调

假设只微调最后 N 层 Transformer,参数量:

O(N×d{out}×d{in})

  • 计算量比 LoRA 大,但比全参数微调(Fine-tuning)小。

5️⃣ 代码对比

(1) LoRA 代码
from peft import LoraConfig, get_peft_model
from transformers import AutoModelForCausalLM

model_name = "facebook/opt-1.3b"
model = AutoModelForCausalLM.from_pretrained(model_name)

lora_config = LoraConfig(
    r=8,  # 低秩参数
    lora_alpha=32,
    target_modules=["q_proj", "v_proj"]
)

model = get_peft_model(model, lora_config)
  • 只训练 q_proj, v_proj 层的 LoRA 矩阵。
  • 不修改原始 $W_0$,只增加 $A, B$ 训练参数。

(2) 增量微调代码
from transformers import AutoModelForCausalLM

model_name = "facebook/opt-1.3b"
model = AutoModelForCausalLM.from_pretrained(model_name)

# 仅微调最后两层 Transformer
for param in model.transformer.h[-2:].parameters():
    param.requires_grad = True
  • 仅更新最后两层 Transformer 权重,减少计算量
  • 比 LoRA 存储开销大

6️⃣ 适用场景

场景LoRA 微调增量微调
大语言模型(GPT-3, LLaMA)✅ 适合(低计算量)❌ 计算太大
持续优化的 AI 模型❌ LoRA 训练完就定型✅ 适合持续优化
低显存设备(8GB 显存)✅ 适合(节省显存)❌ 需要更高显存
高精度任务(如 BERT QA)❌ 可能损失精度✅ 适合
多任务迁移学习✅ LoRA 参数可迁移❌ 需要重新训练

7️⃣ 总结

对比项LoRA 微调增量微调
是否修改原始参数❌ 不修改 W_0✅ 修改部分参数
训练参数量🎯 少($O(d_{out} x r))🚀 中($O(N xd_{out} x d_{in}))
计算量🎯 小(适合大模型)🚀 较大(适合小模型)
存储开销🏆 最小,只存 A,B📈 需要存储新 W
推理方式✅ 可合并参数❌ 需要加载新权重
适用场景🎯 适合 LLM(GPT, LLaMA)🚀 适合任务优化(BERT QA)

LoRa模型训练教程(炼丹,Stable Diffusion) 何为LoRA?LoRA并不是扩散模型专有的技术,而是从隔壁语言模型(LLM)迁移过来的,旨在解决避免将整个模型参数拷贝下来才能对模型进行调校的问题。因为大型语言模型的参数量过于恐怖,比如最近新出的GPT-4参数量约为100 万亿。LoRA采用的方式是向原有的模型中插入新的数据处理层,这样就避免了去修改原有的模型参数,从而避免将整个模型进行拷贝的情况,同时其也优化了插入层的参数量,最终实现了一种很轻量化的模型调校方法。 阅读详情

相关推荐

【LLM】金融场景的大模型Lora微调实战

金融行业需要垂直领域LLM,因为存在金融安全和数据大多数存储在本地,在风控、精度、实时性有要求 (1)500亿参数的BloombergGPT BloombergGPT金融大模型也是用transformer架构,用decoder路线, 构建目前规模最大的金融数据集FINPILE,对通用文本+金融知识的混合训练。 用了512块40GB的A100 GPU,训练中备份了4个模型,每个模型分了128块GPU。 (2)度小满5月的【源轩大模型】 使用hybrid-tuning方式,首个千亿参数金融大模型 在通用能力评测

发现问题,并解决问题,批判性思维 1万+

LoRA大模型加速微调和训练算法解读

冻结预训练模型权重,并将可训练的秩分解矩阵注入到Transformer层的每个权重中,大大减少了下游任务的可训练参数数量。

xddwz的博客 2256

告别Keil,在Windows上用VSCode + arm-none-eabi-gcc + Makefile搭建国产MCU开发环境(附JLink配置避坑)

本文详细介绍了如何在Windows上使用VSCode、arm-none-eabi-gcc和Makefile搭建国产MCU开发环境,替代传统的Keil和IAR。内容涵盖工具链配置、工程结构设计、Makefile编写、VSCode集成调试以及高效开发工作流,特别针对国产MCU如复旦微FM33系列提供了优化方案和避坑指南。

weixin_28729205的博客 436

增量微调:让模型在少量数据中持续进化

Python复制# 定义损失函数和优化器增量微调是一种高效且灵活的模型优化方法,特别适合数据稀缺或计算资源受限的场景。通过合理选择冻结层、调整学习率,并结合回放机制和正则化,可以有效避免灾难性遗忘,同时提升模型对新任务的适应能力。无论是在医疗、NLP、推荐系统还是边缘计算领域,增量微调都能帮助我们快速迭代模型,使其在动态环境中保持最佳性能。希望本文的介绍和示例能为你提供实用的指导!

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 1423

MarkDown简介(深度解析MarkDown用法)

欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富的快捷键 快捷键 加粗 Ctrl + B 斜体 Ctrl + I...

酷酷的旭 7344

Vitis 安装及环境配置

Vitis 官方手册 https://www.xilinx.com/html_docs/xilinx2020_1/vitis_doc/index.html Xilinx Downloads center https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/vitis.html 系统要求如下图所示,Windows系统只能支持Vitis嵌入式系统开发流程,不能支持加速设计 1.安装ubuntu18.0

怠桑的博客 7052

增量学习入门

增量学习(Incremental Learning),亦称为持续学习(Continual Learning)或终身学习(Life-Long Learning),是一种机器学习方法,它允许模型通过对新数据进行持续学习而不是重头训练整个模型。这种方法允许模型不断地学习新的知识,并在不断实际复杂多变的环境变化。

m0_61899108的博客 5074

从寄存器配置到G值:一份给STM32开发者的SC7A20加速度数据换算保姆级指南

本文为STM32开发者提供SC7A20三轴加速度传感器的数据换算保姆级指南,详细解析从寄存器配置到G值转换的全过程。涵盖量程选择、输出值换算原理及优化代码实现,帮助开发者快速掌握加速度数据的物理意义转换技巧,提升运动感知系统开发效率。

weixin_29172963的博客 174

你应该懂的AI大模型(八)之 微调 之 增量微调

模型微调(Fine-tuning)指的是将一个预训练好的模型(通常在大规模通用数据集上训练)针对特定任务或领域进行优化的过程。

DEVELOPERAA的博客 2123

移植 lwip,在 windows 内核构建一个 TCPIP 协议栈

移植 lwip,在 windows 内核构建一个 TCPIP 协议栈 亲,当你点开看这篇文章,就说明你知道我想要干什么事情,或者说,你知道在 Windows 的内核种绕开它的网络协议,再独立构建一个网络协议栈的意义。如果你要问我有 windows 系统的网络协议栈不用,移植 lwip 有什么意义,那么你可以关闭链接走人了,因为这篇文章不适合你,它不是讲 lwip 移植原理的。 经常关注我的博客的朋...

oRbIt 的专栏 3578

芯片设计中的复位艺术——从异步复位同步释放到复位树构建

本文深入探讨了芯片设计中复位策略的核心技术与工程实践。重点解析了异步复位同步释放这一黄金方案的原理与优势,它通过复位同步器解决了异步复位释放时的时序风险。文章进一步阐述了如何构建稳健的复位树以应对大规模SoC设计,并分析了多时钟域与低功耗场景下的复位设计挑战,为提升芯片可靠性提供了系统性的方法论。

neovim7hacker的博客 488

全量微调、增量微调、局部微调对比

全量微调(Full Fine-Tuning)、增量微调(Incremental Fine-Tuning)和局部微调(Partial Fine-Tuning) 的核心区别和应用场景如下:

Mamba的博客 1487

使用FSL对DTI数据进行预处理

在fsl官网我们可以看到是同时使用了AP和PA图像处理,采用的是最小二乘法将2个图像合并为1个图像。–inindex此处需要处理的是PA图像,在acq_param.txt中我们是把这个放在第一行的,此处为1,如果处理的是AP图像,则此处为2。为了校正磁场引起的畸变,对DTI的B0像分别采集了A>P和P>A的反向编码的两种B0像。即如果AP和PA只有1个B0像时,那么这里就是两行,如果各有3个B0像则这里应该是6行。假设转换后的图像为sub01_AP.nii.gz和sub01_PA.nii.gz。

weixin_52073820的博客 4842

你应该懂的AI大模型 之 微调 之 增量微调

模型微调(Fine-tuning)指的是将一个预训练好的模型(通常在大规模通用数据集上训练)针对特定任务或领域进行优化的过程。那么什么是预训练好的模型呢?预训练好的模型(Pre-trained Model)是指在大规模通用数据集上经过预先训练,具备基础特征提取能力的机器学习模型。这类模型无需针对具体任务从零训练,而是作为 “起点”,通过微调(Fine-tuning)快速适配不同场景。讲的通俗一点就是:只调整模型的一部分结构(参数),为了让模型能够适应当前的任务,就只调整一部分就足够了。

u010803649的博客 1424

SAP DRC 是什么?一文读懂 SAP Document and Reporting Compliance 的定位、架构与落地案例

把视线拉长,会发现SAP DRC的价值并不仅是用来交差的工具。它更像是企业在全球化经营中建设的一套公共底座:既能以最低的重复成本去应对各国不断演进的监管要求,也能为财务数字化与供应链协同提供可信数据回路。依托本地与云的分层职责、与的生态联动、以及按国家不断更新的任务目录,企业可以将合规变成一种标准化、工程化、可持续运营的能力。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1656

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

增量预训练和微调的区别

增量预训练是一种在现有预训练模型的基础上,通过引入新的数据或任务来进一步训练模型的方法。这种方法的主要目的是在不从头开始训练模型的情况下,利用新数据或特定领域的数据增强模型的能力和性能。选择基础模型:选择一个已经预训练的模型,例如BERT、GPT等。准备新数据:收集和整理新的训练数据,通常是与现有任务相关的数据,或是针对特定领域的数据。继续训练:使用新的数据在基础模型上进行进一步的训练。这一步可以包括全量训练(对所有模型参数进行调整)或部分训练(只调整部分参数,如顶层的几层)。评估与调整。

一起来研究langchain和langchain-chatchat 6253

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

LoRA大模型加速微调和训练算法

ChatGPT带领着大模型像雨后春笋一般层出不穷,大家都对大模型微调跃跃欲试,现在咱们聊聊其中的常见的算法。

dream_home8407的博客 6653

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

【机器学习&深度学习】三大微调策略:全量微调、局部微调与增量微调的全方位解析

微调不是“一把尺子量到底”的工具,而是需要结合算力、任务、时间、产品目标做出的策略选择。大模型时代,更灵活、更可控的增量微调正在成为现实世界落地的关键。 学会选择适合自己的微调方式,才能让大模型真正为你所用! 全量微调像“让一个人从头开始训练”, 局部微调是“只改一部分”, 增量微调则是“加外挂”。

qq_62223405的博客 1795

一文搞懂LoRA:大模型参数高效微调技术详解!

LoRA(Low-Rank Adaptation)是一种参数高效微调技术,通过冻结预训练模型参数,仅对低秩矩阵进行增量训练,显著降低训练和存储成本。文章详细解析了LoRA的原理、训练步骤、与传统微调的对比及在Transformer中的应用。LoRA特别适合大规模模型微调、多任务切换和算力受限环境,通过低秩分解实现资源高效利用,支持大语言模型和视觉Transformer的高效微调。

m0_65555479的博客 2658

为什么在做增量预训练的时候,训练方式通常采用LoRA + 全量emb/lm-head?

格式没调好,可见公众号文章:https://mp.weixin.qq.com/s/Qy8b2rKdR1xji6Cvw82wEAImage。

咖乐部 760

再看大模型Lora微调加速是否有效:Full-Parameter全参数微调与LoRA低秩微调的性能对比开源实验介绍...

来自:老刘说NLP进NLP群—>加入NLP交流群近年来,大型语言模型的指令微调是自然语言处理领域的一个重要研究领域。由于资源和成本的限制,一些研究人员采用了参数有效的调整技术,如LoRA,并取得了不错的结果。与全参数微调相比,基于LoRA的微调在训练成本方面表现出显著的优势。针对这类问题,本文介绍一篇关于全监督微调和lora微调的对比评估工作:该工作主要对比了全参数微调和Lora微调的对比,...

zenRRan的博客 5318

Ai大模型学习第一课:增量微调中的适配器微调(Adapter)

增量微调(Incremental Fine-tuning)是一种针对预训练模型的持续学习技术,旨在通过逐步调整模型参数,使其在保留原有知识的同时适应新任务或新数据。与传统微调相比,增量微调分阶段调整参数以适应多任务或多数据,避免了灾难性遗忘,并允许数据和任务的动态扩展。其核心挑战包括灾难性遗忘、计算效率和知识迁移。适配器微调是增量微调的基础技术,通过在预训练模型中插入小型可训练模块(Adapter),冻结原始参数,仅训练Adapter部分,从而降低训练参数,提高训练效率。

qq_49730377的博客 2732

如何训练一个大模型:LoRA篇

现在有很多开源的大模型,他们一般都是通用的,这就意味着这些开源大模型在特定任务上可能力不从心。为了适应我们的下游任务,就需要对预训练模型进行微调。 全参数微调有两个问题:在新的数据集上训练,会破坏大模型原来的能力,使其泛化能力急剧下降;而且现在的模型参数动辄几十亿上百亿,要执行全参数微调的话,他贵啊!! 于是LoRA出现了,LoRA(Low-Rank Adaptation)是微软提出的一种参数有效的微调方法,可以降低微调占用的显存以及更轻量化的迁移。同时解决了上述两个问题,那它凭什么这么厉害?往下看吧。

xian0710830114的专栏 2万+

深入解析大模型主流微调方法:从LoRA、QLoRA到Flash Attention、增量学习

RLHF的起源和背景RLHF在人工智能中的作用和重要性强化学习与人类反馈:结合的优势RLHF的主要应用领域和案例研究从InstructGPT到GPT4。

weixin_59191169的博客 861

微调方法概述

通过优化输入提示(prompts)来引导模型生成所需的输出,而不改变模型的主要参数。P-Tuning:在Prompt-Tuning的基础上,添加一些可训练的提示向量,提高模型的适应能力。:在模型的权重矩阵中引入低秩矩阵,仅更新这些低秩矩阵,从而减少需要训练和存储的参数量。AdaLoRA:LoRA的改进版本,动态调整低秩矩阵的参数,提高适应性和效果。全参数微调适用于需要最大化模型性能且具备足够计算资源的场景。

zc621_的博客 1358

大家都在说的AI大模型微调到底是什么?最易懂的AI知识科普!一篇为你解决对“微调”所有的疑问

当我们谈论AI,谈论人工智能领域时,经常会提到“模型微调”。这个词儿听起来可能有些专业,但它的的确确是解锁AI强大潜力,让AI更加精准地服务于我们的需求,推动人工智能落地的关键。

2401_85325397的博客 1096
上一篇: 浅谈图数据库 vs 传统Rag, 以及图数据库 + 传统Rag
下一篇: 浅谈RLHF - PPO最通俗易懂的数学解释
栗子皮皮布丁
博客等级 码龄2年 204粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值