5 个经典的大模型微调技术

article/2025/6/9 10:42:45

传统微调方法(如下图所示)对于大语言模型而言并不可行,因为这些模型具有数百亿甚至千亿的参数量,而且显存需求高达数百GB,并非所有人都能获得如此规模的计算资源。

但如今,我们拥有多种优化大语言模型的微调方法,下图展示了五种主流技术:

1. LoRA(Low-Rank Adaptation)

LoRA 通过引入两个低秩矩阵 A(降维)和 B(升维)来微调预训练模型,仅训练这两个小矩阵,而冻结原始权重 W。这样可以大幅减少训练参数(如仅调整 0.1% 的参数),同时保持接近全量微调的性能。

将两个低秩矩阵A和B与权重矩阵叠加,这些权重矩阵包含可训练参数。不对W进行微调,而是调整这些低秩矩阵中的权重。

2. LoRA-FA(LoRA with Frozen-A)

LoRA-FA 是 LoRA 的改进版,冻结矩阵 A,仅训练矩阵 B,从而进一步减少激活内存需求(降低 1.4 倍),同时保持性能接近 LoRA。

虽然LoRA显著减少了训练参数的总量,但仍需大量激活内存来更新低秩权重。LoRA-FA(FA代表Frozen-A)通过冻结矩阵A并仅更新矩阵B来解决这一问题。

3. VeRA(Vector-based Random Matrix Adaptation)

在 LoRA 中,每一层都有一对不同的低秩矩阵A和B,且这两个矩阵都参与训练。然而在VeRA中,VeRA 采用共享随机矩阵 A 和 B,并引入可训练的缩放向量 d 和 b,使可训练参数比 LoRA 减少 10 倍以上,适用于低资源场景。VeRA的核心思想是学习微小的、特定于各层的缩放向量(记为b和d),这些向量是唯一可训练的参数。

4. Delta-LoRA

除了训练低秩矩阵外,矩阵W也会被调整,但并非采用传统方式。而是将连续两个训练步骤中低秩矩阵A与B乘积的差值(或增量)叠加到W上,从而增强表达能力,同时不增加额外计算成本:

5. LoRA+

在LoRA中,矩阵A和B均采用相同的学习率进行更新。研究者发现,为矩阵B设置更高的学习率能实现更优的收敛效果,提高训练效率,可加速训练,同时小幅提升准确率。

总结

技术核心改进训练参数内存优化性能表现适用场景
LoRA引入低秩矩阵 A、B 微调,冻结 W较少(~0.1% 参数)中等接近全量微调通用微调
LoRA-FA冻结 A,仅训练 B更少(比 LoRA 减半)接近 LoRA低显存设备
VeRA共享随机 A、B,训练缩放向量 d、b极少(比 LoRA 少 10 倍)最高略低于 LoRA超低参数微调
Delta-LoRA通过 BA 的梯度更新 W较多(额外调整 W)中等优于 LoRA高精度微调
LoRA+A、B 采用不同学习率(B 更高)同 LoRA中等略优于 LoRA快速微调
  • LoRA 是最基础的版本,适用于大多数微调任务。

  • LoRA-FA 适合显存受限的环境。

  • VeRA 参数效率最高,适合超低资源场景。

  • Delta-LoRA 增强表达能力,适合需要更高精度的任务。

  • LoRA+ 优化训练速度,适合快速迭代。

推荐阅读:全模型微调 vs LoRA 微调 vs RAG-CSDN博客


http://www.hkcw.cn/article/HCjpHKSqCL.shtml

相关文章

爱耕云课时管理系统评测

1 核心功能模块与代码实现 1.1 智能排课引擎(Python伪代码示例) 爱耕云的排课系统采用约束满足算法(Constraint Satisfaction Problem)解决教培机构最头疼的资源冲突问题。该系统将教师、教室、课程和时间段抽象为多维资源&…

Go的隐式接口机制

正确使用Interface 不要照使用C/Java等OOP语言中接口的方式去使用interface。 Go的Interface的抽象不仅可以用于dynamic-dispatch 在工程上、它最大的作用是:隔离实现和抽象、实现完全的dependency inversion 以及interface segregation(SOLID principle中的I和D)。…

Linux总结

一、Linux linux系统的构成 1.linux系统内核:提供最核心的功能,如:调度CPU、调度内存、调度文件系统、调度网络通信、调度IO等。 2.系统级应用程序:出厂自带程序,可供用户快速上手操作系统。如:文件管理…

嵌入式复习小练

1.ARM处理器中用作程序计数器PC的通用寄存器是() A.R12 B.R13 C.R14 D.R15 答案:D。在 ARM 处理器中,R15 用作程序计数器(PC) ,用于存放下一条要执行指令的地址 2.以下关于ARM程序状态寄存器C…

Python Day41学习(日志Day8复习)

对信贷数据中的离散特征重新进行独热编码 重写代码时出现的问题: .tolist()是一个方法对象,调用时须加()。刚开始书写时漏掉了(),导致报错。 复习“日志Day8”的内容 今日有点事耽搁了,少复习了些内容,明日继续加油&…

入门AJAX——XMLHttpRequest(Post)

一、前言 在上篇文章中,我们已经介绍了 HMLHttpRequest 的GET 请求的基本用法,并基于我提供的接口练习了两个简单的例子。如果你还没有看过第一篇文章,强烈建议你在学习完上篇文章后再学习本篇文章: 🔗入门AJAX——XM…

网络交换机:构建高效、安全、灵活局域网的基石

在数字化时代,网络交换机作为局域网(LAN)的核心设备,承担着数据转发、通信优化和安全防护的关键任务。其通过独特的MAC地址学习、冲突域隔离、VLAN划分等技术,显著提升了网络性能,成为企业、学校、医院等场景不可或缺的基础设施。…

《深入解析SPI协议及其FPGA高效实现》-- 第三篇:FPGA实现关键技术与优化

第三篇:FPGA实现关键技术与优化 聚焦高速时序、资源复用与信号完整性 1. 时序收敛关键策略 1.1 源同步时序约束 tcl # Vivado XDC约束示例 create_generated_clock -name spi_sck -source [get_pins clk_gen/CLKOUT] \-divide_by 1 [get_ports sck]# 建立时间约…

EtherCAT背板方案:方芯半导体工业自动化领域的高速、高精度的通信解决方案

前言:EtherCAT背板方案是一种插拔式设计方案,ESC(EtherCAT从站控制器)之间通过底板信号线相互连接。底板信号线为所支撑的器件提供电源和数据信号。ESC芯片多级从站之间通过LVDS(低压差分信号)接口相连接&a…

TablePlus:一个跨平台的数据库管理工具

TablePlus 是一款现代化的跨平台(Window、Linux、macOS、iOS)数据库管理工具,提供直观的界面和强大的功能,可以帮助用户轻松管理和操作数据库。 TablePlus 免费版可以永久使用,但是只能同时打开 2 个连接窗口&#xff…

记我的第一个深度学习模型尝试——MNIST手写数字识别

种一棵树最好的时间是十年前,其次是现在。 目录 前言 一、数据准备 二、构建模型 三、模型精度检验 前言 最近又空闲下来,终于有时间把之前荒废的学习计划给重拾起来了!今天做的是MNIST手写数字识别项目。这可以说是深度学习的“Hello Wo…

杭州白塔岭画室怎么样?和燕壹画室哪个好?

杭州作为全国美术艺考集训的核心区域,汇聚了众多实力强劲的画室,其中白塔岭画室和燕壹画室备受美术生关注。对于怀揣艺术梦想的考生而言,选择一所契合自身需求的画室,对未来的艺术之路影响深远。接下来,我们将从多个维…

AI与区块链:数据确权与模型共享的未来

AI与区块链:数据确权与模型共享的未来 系统化学习人工智能网站(收藏):https://www.captainbed.cn/flu 文章目录 AI与区块链:数据确权与模型共享的未来摘要引言技术路线对比1. 数据确权:从中心化存储到分布…

【T2I】Decouple-Then-Merge: Finetune Diffusion Models as Multi-Task Learning

CODE: CVPR 2025 GitHub - MqLeet/DeMe: [CVPR2025] Official implementation of "Decouple-Then-Merge: Finetune Diffusion Models as Multi-Task Learning" Abstract 扩散模型是通过学习一系列模型来训练的,这些模型可以逆转噪声衰减的每一步。通常&…

二分查找的边界艺术:LeetCode 34 题深度解析

文章目录 一、问题引入:寻找区间的边界二、二分的核心:二段性三、左边界的查找逻辑(找第一个 ≥ target 的位置)四、右边界的查找逻辑(找最后一个 ≤ target 的位置)五、代码实现六、二分边界模板总结结语 …

系统思考:短期利益与长期系统影响

一个决策难题:一家公司接到了一个大订单,客户提出了10%的降价要求,而企业的产能还无法满足客户的需求。你会选择增加产能,接受这个订单,还是拒绝?从系统思考的角度来看,这个决策不仅仅是一个简单…

【数据结构 -- B树】

目录 一、前言二、B树示例定义查找数据插入数据删除数据 一、前言 前面我们已经学习了二叉搜索树和AVL树,它们的查找、插入、删除数据效率都很高,我们首先需要了解它们是怎么操作数据的 首先将所有数据一次性调到内存中,再在内存中进行处理…

新手小白使用VMware创建虚拟机练习Linux

新手小白想要练习linux,找不到合适的地方,可以先创建一个虚拟机,在自己创建的虚拟机里面进行练习,接下来我给大家接受一下创建虚拟机的步骤。 VMware选择创建新的虚拟机 选择自定义 硬件兼容性选择第一个,不同的版本&a…

C++ Vector算法精讲与底层探秘:从经典例题到性能优化全解析

前引:在C标准模板库(STL)中,vector作为动态数组的实现,既是算法题解的基石,也是性能优化的关键战场。其连续内存布局、动态扩容机制和丰富的成员函数,使其在面试高频题(如LeetCode、…

【macbook】触控板手势

在 MacBook 上,你可以使用「触控板手势」或快捷键来实现在多个窗口/应用间切换,以下是几种方式: ✅ 1. 三指或四指左右滑动:切换“全屏应用”或“桌面”空间 **操作方式:**三指或四指在触控板上左右滑动。**适用场景&…