当前位置: 首页 > news >正文

微调系列:LoRA原理

论文链接:https://arxiv.org/pdf/2106.09685

视频推荐:

大模型微调第5节-LoRA微调的原理及从零实现_哔哩哔哩_bilibili


动机

1. 预训练大模型本质上具有低秩特性

2. 全参微调模型非常昂贵

有研究表明:即使将模型参数通过随机投影映射到更小的子空间,模型依然能够高效地学习。

Measuring the Intrinsic Dimension of Objective Landscapes

这篇论文提出并实验证明了“模型训练的本征维度远小于模型参数总数”。他们通过随机投影等技术测量了神经网络loss lanscape的本征维数,发现即使大模型,真正有效参与优化的空间也很小。

什么是本征维度?
用来描述高维数据或参数空间中,实际有效变化或有意义信息所处的“内在”维度。

什么是LandScape?

“损失景观”,损失函数随着模型参数变化而形成的高维空间中的“地形”或“曲面”。

把参数空间的每一个点(即一组参数值)都对应到一个损失函数值:整个参数空间中的每个点都有一个“高度”,这个高度就是损失函数值。

  • 损失景观中的“低谷”是损失较低(模型表现好的参数组合),最优点就是“最低点”。
  • “鞍点”或“高原”是一些局部平坦或特殊结构区域。

怎么理解通过随机投影测量loss lanscape的本征维数找寻有效优化空间?

随机投影:在高维参数空间里,随机选出一个低维子空间(“划一片区域”),模型参数只允许在这片区域内调整。

维数:子空间的“大小”,即用多少个方向描述这片区域。

本征维数:一开始子空间很小,可选择的方向很少,所以不能找到landscape中所有的低谷(最优解),逐渐增加,可选择的方向增加,直到在某个空间包含的方向能够找到最优解(模型和全空间训练效果一样),这个最小的充分空间就称为本征维数。

整体理解为通过随机投影的手段,在loss landscape上,找出覆盖所有最优解方向所需的最小空间(最少的独立方向即维度)。

注意,这里的空间指的是方向的几何,而不是具体的空间部分。随机投影不是简单地选一个“地形片段”,而是确定了一组“方向”,每个方向是一条直线。

Intrinsic Dimensionality Explains the Effectiveness of Language Model Fine-Tuning

这篇论文系统研究了大型语言模型微调的本征维数。他们发现下游任务微调时,参数空间的有效维度(本征维度)非常低,这意味着只需要对极少量参数进行调整就可以获得很好的迁移效果。

其他微调方法存在的问题

当前的高效适配主要有两种策略:Adapter适配器 和 优化输入层的某种激活形式。

Adapter

1. 推理延迟增加

Adapter层通常插入在Transformer Block内部。虽然参数量很少,但需要按顺序处理,导致推理速度下降(尤其是batchsize很小,比如在线服务)。

2. 部署和维护复杂度提升

每个任务都有独立的Adapter参数;在分布式或多实例部署时,adapter参数可能需要冗余存储于多台设备,消耗更多内存。

3. 计算资源消耗

Parameter-Efficient Transfer Learning for NLP的方法:每个 Transformer 块有两个适配器层

Exploring Versatile Generative Language Model Via Parameter-Efficient Transfer Learning的方法:每个块只有一个适配器层,但多了一个 LayerNorm

直接优化prompt

该类方法有prompt tuning、soft prompt、prefix tuning,通过优化可学习的“伪 token”向量,作为上下文插入到输入中,从而调整大模型的行为。

1. 可调空间有限

  • 因为参数量少,通常只优化几十到几百个虚拟token的嵌入参数,远小于Adapter和LoRA。
  • 并且prompt层本质只能重排列和强调预训练模型预警学会的知识,难以引入全新知识。

2. 任务适用性低

对于复杂任务(逻辑推理,复杂理解,跨域迁移),单靠prompt编排输入不足以让模型学会新技能。

3. 训练不稳定

soft prompt训练初期很容易陷入局部最优或者梯度消失/爆炸,优化难度大。

4. 数据依赖性高

需要较多数据才能学习到效果较好的soft prompt,数据少时容易过拟合。

下图为prefix-tuning的方法:

方法

对于一个预训练的权重矩阵:

W_0 + \Delta W = W_0 + BA

其中,B\in \mathbb{R}^{d\times r},A\in \mathbb{R}^{r\times k},且秩r\ll min(d,k)

训练时,W_0被冻结,不接收梯度更新,A 和B 包含可训练参数。注意,W_0\Delta W = BA都会与相同的输入相乘,并将各自的输出向量按坐标加和。

对输入 x,有:

h = W_0x+\Delta Wx = W_0x+BAx

用高斯分布随机初始化A,用零初始化B,因此在训练开始时\Delta W = BA = 0

然后用 \frac{\alpha }{r}来缩放\Delta Wx,其中 α 是一个与 r 有关的常数。

用Adam优化时,如果初始化合适,调节α 大致相当于调整学习率。

实际上,直接将α设为我们尝试的第一个rr值,并不专门调参。这种缩放有助于在调整r时减少超参数调优的需求。

如果将LORA的秩r 设置为预训练权重矩阵的秩,就能恢复全量微调的表达能力。

优点

无额外推理延迟

在实际部署中,我们可以显式计算并存储 \Delta W = BA,像常规模型一样进行推理。注意,W_0BA形状都是d×k。

当需切换到其他下游任务时,只需将BA减去再加上另一个{B}'{A}'即可,这个操作非常快,几乎不增加内存。

重要的是,这确保了与全量微调模型相比,推理时不会引入任何额外延迟。

LoRA可以调节可训练参数数量,使得训练效果大致能收敛到近似训练原始模型的水平;

而Adapter方法则收敛到一个MLP;

Prefix-based方法则无法处理长输入序列。

http://www.dtcms.com/a/347823.html

相关文章:

  • MVC模式在个人博客系统中的应用
  • 【通俗易懂】TypeScript 增加了 JavaScript 的可选链 (?.) 和空值合并运算符 (??)理解
  • 【集合和映射】USACO Bronze 2019 December - 我在哪Where Am I?
  • 机器学习案例——预测矿物类型(模型训练)
  • DS18B20温度传感器详解
  • 电阻的功率
  • 多光谱相机检测石油石化行业的跑冒滴漏的可行性分析
  • 电蚊拍的原理及电压电容参数深度解析:从高频振荡到倍压整流的完整技术剖析
  • 决策树基础学习教育第二课:量化最优分裂——信息熵与基尼系数
  • 01_Python的in运算符判断列表等是否包含特定元素
  • [Vid-LLM] 创建和训练Vid-LLMs的各种方法体系
  • crypto.randomUUID is not a function
  • 一个备份、去除、新增k8s的node标签脚本
  • Redis(八股二弹)
  • 玳瑁的嵌入式日记D24-0823(数据结构)
  • 每日一题8.23
  • Day26 树的层序遍历 哈希表 排序算法 内核链表
  • 线程池理解
  • CMake安装教程
  • 传统 AI 与生成式 AI:IT 领导者指南
  • 10.Shell脚本修炼手册---脚本的条件测试与比较
  • 如何查看MySQL 的执行计划?
  • 引领GEO优化服务新潮流 赋能企业数字化转型
  • 信贷模型域——信贷获客模型(获客模型)
  • AI大模型 限时找我领取
  • Transformer核心概念I-token
  • Java:对象的浅拷贝与深拷贝
  • 获取高德地图经纬度解析地址的免费API接口(无调用限制)
  • JWT实现Token登录验证
  • 任务型Agent:执行计划详细设计