(2024,MixLoRA,任务干扰,独立因子选择,条件因子选择)使用 LoRA 的条件混合进行多模态指令调优

Multimodal Instruction Tuning with Conditional Mixture of LoRA

公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群)

目录

0. 摘要

3. 任务干扰在多模态指令调优中的 LoRA 应用

3.1 背景:LoRA

3.2 调查多模态指导调优中的任务干扰

4. 条件 LoRA 混合

4.1 动态因子选择

4.1.1 独立因子选择

4.1.2 条件因子选择

4.1.3 动态自适应矩阵的重建

5. 实验


0. 摘要

多模态大型语言模型(MLLMs)在不同领域的各种任务中展现了出色的熟练性,越来越关注提高它们在看不见的多模态任务上的 zero-shot 泛化能力。多模态指令调优已成为通过指令在各种多模态任务上对预训练模型进行微调以实现 zero-shot 泛化的成功策略。随着 MLLMs 的复杂性和规模的增加,对于像低秩适应(Low-Rank Adaption,LoRA)这样的参数高效的微调方法的需求变得至关重要,该方法通过使用最小的参数集进行微调。

然而,在多模态指令调优中应用 LoRA 面临任务干扰的挑战,这导致性能下降,尤其是在处理广泛的多模态任务时。为了解决这个问题,本文介绍了一种新方法,将多模态指令调优与条件 LoRA 混合(Mixture-of-LoRA,MixLoRA)相结合。它通过动态构建适应于每个输入实例独特需求的低秩适应矩阵,来减轻任务干扰。对各种多模态评估数据集的实验证明,MixLoRA 不仅在相同或更高秩的情况下胜过传统的 LoRA,展示了其在各种多模态任务中的功效和适应性。

3. 任务干扰在多模态指令调优中的 LoRA 应用

3.1 背景:LoRA

3.2 调查多模态指导调优中的任务干扰

我们的研究深入探讨了在参数高效的多模态指令调优中分析任务对之间梯度方向冲突的任务干扰。对于每一对任务 i 和 j,我们首先估计在根据任务 j 的损失 Lj 优化共享参数 θ 时,任务 i 的损失 Li 的变化,遵循(Zhu等,2022):

其中,xi 和 xj 是任务 i 和 j 的采样训练 batch,λ 是学习率。然后,任务 j 对任务 i 的干扰被量化如下:

在这里,正的 I_(i,j)​ 表明任务 i 和 j 之间的梯度方向是对齐的,而负值意味着梯度方向是分离的,表明任务 j 对任务 i 产生不利影响。

我们在使用 LoRA 和秩为 4 进行微调的 LLaVa(Liu等,2023)模型上进行实验,计算来自 Vision-Flan(Xu等,2023a)的六个不同任务之间的任务干扰,包括 “ScienceQA”(Lu等,2022)(用于“复杂推理”),“COCO”(Lin等,2014)(用于“粗粒度感知”),“Fair-Face”(Karkkainen和Joo,2021)(用于“细粒度感知”),“iNaturalist”(Van Horn等,2018)(用于“知识密集型”),“STVQA”(Biten等,2019)(用于“OCR”),以及 “PACS”(Li等,2017)(用于“领域特定”)。

我们基于涉及 LoRA A 和 B 的梯度计算任务干扰矩阵 I 的平均值,跨越各个层次。图 2 显示了 MLP(图 2a) 和 Self-Attention(图 2b) 在第 5 层和第 25 层 Transformer 层的 LoRA A 和 B 的任务干扰分数。

我们的结果显示,对于 LoRA A 和 B,无论在浅层还是深层 Transformer 层,都存在显著的任务干扰。例如,如图 2b 所示,在第 5 层的 LoRA A 中,领域特定的分类任务 “PACS” 对粗粒度感知任务 “COCO” 产生负面影响,负干扰分数为 -7.3。与此同时,还观察到了正面的影响。例如,图 2a 显示,在 LoRA B 的第 5 层,“PACS” 对 OCR 任务 “ST-VQA” 产生积极影响。正面和负面干扰的存在表明指导任务之间存在复杂的动态:正分数(红色)表明一个任务的学习可以增强另一个任务的性能,而负分数(蓝色)则意味着一个任务的学习可能会妨碍另一个任务。这些发现突显了在参数高效的多模态指导调优中存在显著的任务干扰,并强调了需要有效的适应方法来确保在各种多模态任务中具有强大和多功能的性能。

4. 条件 LoRA 混合

受到 “专家混合” 概念的启发(Shazeer等,2016),我们提出了条件 LoRA 混合(MixLoRA),它利用低秩分解因子(low-rank decomposition factors)作为动态选择的专家,构建针对特定输入实例的定制分解矩阵 A 和 B。MixLoRA 促进了对不同输入实例的动态处理路径,从而增强了处理各种复杂多模态指导任务的效力。

条件LoRA混合的核心在于通过张量分解表示权重调整矩阵 ΔW:

其中 {ai, bi} 是 ΔW 的秩 r 分解因子,ai ∈ R^(d_in × 1),bi ∈ R^(d_out × 1)。

利用 ΔW 可以表示为低秩分解因子 ai 和 bi 外积之和的概念,MixLoRA 引入了一个动态因子选择(Dynamic Factor Selection)模块。该模块通过从扩展的分解因子池

中选择 r 个适当的因子,动态构建特定输入的唯一 ΔW,如图 1(b)所示。

4.1 动态因子选择

动态因子选择模块使用两个主要组件来动态构建 LoRA A 和 B。首先,两个独立因子选择(Independent Factor Selection,IFS)路由器(第 4.1.1 节)分别选择 r 个相关因子,形成适应矩阵 LoRA A 和 B,确保精确、针对实例的自适应。其次,一个条件因子选择(Conditional Factor Selection,CFS)路由器(第 4.1.2 节)通过在选择 LoRA B 时将选择 B 的因子以选择 LoRA A 的因子为条件,推动了一致的自适应过程。

4.1.1 独立因子选择

MixLoRA 采用两个独立因子选择(IFS)路由器,

分别选择 LoRA A 和 B 的 r 个相关因子,如图 3 所示。

IFS 路由器采用基于实例的路由方法,相对于基于传统输入 token 的路由,这更具内存效率,用于选择 r 个分解因子。路由策略可以表示为:

其中 Avg(·) 对前一层的隐藏状态 h ∈ R^(seq × d_in) 在序列维度上进行平均。

因子选择过程涉及计算向量 gA∈R^E 和 gB∈R^E,以选择从集合 {a_e​}^E_(e=1​) 和 {a_e​}^E_(e=1​)​ 中的特定子集,分别用于 LoRA A 和 B。为了计算 gA,输入

通过具有权重 W_A ∈ R_(E × d_in) 的稠密层(dense layer)进行处理,然后进行 softmax 归一化和 top-r 选择:

该过程确保选择 LoRA A 的 r 个因子,其中 g_A[i] = 1 表示选择因子 i。相同的过程应用于确定 LoRA B 的 gB。

4.1.2 条件因子选择

尽管到目前为止 LoRA A 和 B 的因子是独立选择的,但我们假设 LoRA A 和 B 的选择之间存在相互依赖关系,可以利用这种关系提高模型的整体适应性和性能。为了利用这种关系,我们提出了一种条件因子选择(Conditional Factor Selection,CFS)策略,其中 LoRA B 投影上权重的因子选择也受到了为 LoRA A 投影下权重选择的因子的影响。

通过 IFS 路由器,LoRA A 从选择的分解因子中组装而成,表示为 A = [a1, · · · , ar]ᵀ,其中 A ∈ ℝ^(r x d_in)。在这之后,CFS 路由器采用权重张量 W_AB ∈ ℝ^(r x d_in x E),将 A 中的每个因子 A[i] ∈ ℝ^(r x d_in) 映射到专家维度 𝔼。对于每个因子 A[i],通过 softmax 归一化并在 r 个因子上聚合的映射过程如下:

其中 W_AB[i] ∈ ℝ^(d_in x E) 是与 A[i] 相关的映射矩阵。

LoRA B 的因子选择集成了 IFS RB IFS(·) 和 CFS RB CFS(·) 路由器的输出,通过后融合(late fusion)策略形成选择向量 gB,具体如下:

最终选择向量 gB 由来自 IFS 和 CFS 路由器的概率分布 p^B_IFS 和 p^B_CFS 组合而成。这种 CFS 策略使得 LoRA B 的选择能够受到为 LoRA A 选择的因子的启发,促使一个更具连贯性的选择过程。

4.1.3 动态自适应矩阵的重建

最后,MixLoRA 通过利用因子选择向量 gA 和 gB,收集已选因子 aₖ、bₖ ∈ 𝕂,|𝕂| = r,以组装 LoRA A 和 B 的最终矩阵,从而构建动态自适应矩阵。因此,在每次前向传递中,基于这些已选择的因子动态计算权重调整矩阵 ΔW ∈ ℝᵈₒᵤₜ×ᵈᵢₙ,表示为:

5. 实验

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/419288.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深度神经网络联结主义的本质

一、介绍 在新兴的人工智能 (AI) 领域,深度神经网络 (DNN) 是一项里程碑式的成就,突破了机器学习、模式识别和认知模拟的界限。这一技术奇迹的核心是一个与认知科学本身一样古老的思想:联结主义。本文深入探讨了联结主义的基本原理&#xff0…

Nodejs 第四十三章(redis)

Redis(Remote Dictionary Server)是一个开源的内存数据结构存储系统,它提供了一个高效的键值存储解决方案,并支持多种数据结构,如字符串(Strings)、哈希(Hashes)、列表&a…

React之组件定义和事件处理

一、组件的分类 在react中,组件分为函数组件和class组件,也就是无状态组件和有状态组件。 * 更过时候我们应该区别使用无状态组件,因为如果有状态组件会触发生命周期所对应的一些函数 * 一旦触发他生命周期的函数,它就会影响当前项…

X-pin扁线电机制造工艺复杂 联合电子率先实现其量产

X-pin扁线电机制造工艺复杂 联合电子率先实现其量产 扁线电机是扁平铜包线绕组的电机。扁线电机是目前主流电机绕组形式,根据技术路线不同,扁线电机分为I-pin扁线电机、Hair-pin扁线电机、X-pin扁线电机等,其中X-pin扁线电机是指采用X-pin绕组…

utniy urp shinyssrr插件使用

文章目录 前言步骤1首先在URP的配置文件里添加SSR后处理2 修改RenderingPath为延迟渲染3 启用深度纹理4 为物体添加脚本 插件下载 前言 用来实现屏幕空间反射效果 unity 版本为2021.3.8LTS,低版本的untiy URP的参数设置位置z可能会不同 步骤 1首先在URP的配置文件…

专访win战略会任志雄:澳门旅游业复苏 挖掘游客消费潜力

南方财经:各个国家地区的客商都有不同文化背景和消费习惯,应如何更好吸引外地客商来澳门? win战略会任志雄:首先,周边国家的市场潜力都非常大,包括韩国、日本、越南和印度。 这些年来,这些国家的经济增长都很高,居民的出游比重也在持续增加,如果他们国家的居民把澳门作为一个重…

初学JavaWeb开发总结

0 什么是Web开发 Web: 全球广域网,又称万维网(www World Wide Web),能够通过浏览器访问的网站。 Web开发,就是开发网站的,如:淘宝、京东等等。 1 网站的工作流程 流程: 浏览器先向前端服务器请求前端资…

一文看清楚流程自定义表单究竟好不好用

提升办公协作效率、做好数据资源利用率的话,可以用什么样的软件实现?在低代码技术平台领域奋斗多年,流辰信息服务商可以给大家推荐专用的流程自定义表单及低代码技术平台整套服务方案。如果你想知道流程自定义表单好不 好用,有什么…

idc业务具体包含哪些业务

IDC业务,即互联网数据中心业务,是指提供互联网基础设施服务的一种商业模式。它包括了许 多不同的业务,每个业务都有其特定的功能和用途。下面将详细介绍IDC业务具体包含哪些业务。 1. 服务器托管服务: 服务器托管是IDC业务中最基…

transformer--解码器

在编码器中实现了编码器的各种组件,其实解码器中使用的也是这些组件,如下图: 解码器组成部分: 由N个解码器层堆叠而成每个解码器层由三个子层连接结构组成第一个子层连接结构包括一个多头自注意力子层和规范化层以及一个残差连接第二个子层连…

<专利>机器人3D视觉快速定位抓取方法及系统

摘要,此专利无可用的关键技术信息,基本都是下面几句话反复说。。。 本发明提供了一种机器人3D快速定位抓取方法及系统, 包括: 通过高速的3D结构光成像对目标物体的表面轮廓进行扫描, 形成点云数据;对所述点…

浅谈排序算法(冒泡,插入,归并)

对于数据的排序,有多种方法,对应这不同的时间复杂度(效率不同)。 ​一、冒泡排序(Bubble Sort) 冒泡排序(Bubble Sort)是一种简单的排序算法。 算法思路: 1. 从第一对相…

利用 Python 抓取数据探索汽车市场趋势

一、引言 随着全球对环境保护意识的增强和技术的进步,新能源汽车作为一种环保、高效的交通工具,正逐渐受到人们的关注和青睐。在这个背景下,对汽车市场的数据进行分析和研究显得尤为重要。 本文将介绍如何利用 Python 编程语言,结…

扭蛋机小程序开发,线上扭蛋机成为市场发展主流?

近几年以来,潮玩市场一直处于领先状态,市场规模逐渐扩大。在潮玩行业中,除了盲盒,受到各大群体喜欢的就是扭蛋机了,它因为价格低、品类多样、收藏价值高的优势吸引了各个群体的消费者。 当下,线上用户体量…

基于springboot + vue实现的前后端分离-在线旅游网站系统(项目 + 论文)

项目介绍 本旅游网站系统采用的数据库是MYSQL ,使用 JSP 技术开发,在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。 技术选型 后端: SpringBoot Mybatis 数据库 : MyS…

★【二叉搜索树】【中序遍历+前后指针】Leetcode 530. 二叉搜索树的最小绝对差

★【二叉搜索树】【中序遍历前后指针】Leetcode 530. 二叉搜索树的最小绝对差 解法1 笨方法 中序遍历转化为有序数组之后遍历解法2 记忆一下!!!需要用一个pre节点记录一下cur节点的前一个节点 遇到在二叉搜索树上求什么最值,求差…

一篇教会你升级GPT-4,内附详细步骤(24年3月最新)

先介绍一下 GPT 升级 第一种: 支付宝购买礼品卡给美区 Apple ID 充值 第二种:3分钟快速升级方法(一键升级) GPT4的作用非常强大,还可以使用DALL进行绘画,比如我画一个小王子的插画: 平时用DALL绘画是比较…

事物

概述: 数据库的事务(Transaction)是一种机制、一个操作序列,包含了一组数据库操作命令。 事务把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么同时成功,要么同时失败。 事…

SpringCloud搭建微服务之Consul服务配置

1. 概述 前面有介绍过Consul既可以用于服务注册和发现,也可以用于服务配置,本文主要介绍如何使用Consul实现微服务的配置中心,有需要了解如何安装Consul的小伙伴,请查阅SpringCloud搭建微服务之Consul服务注册与发现 &#xff0c…

Ubuntu系统使用Docker搭建Jupyter Notebook并实现无公网ip远程连接

文章目录 1. 选择与拉取镜像2. 创建容器3. 访问Jupyter工作台4. 远程访问Jupyter工作台4.1 内网穿透工具安装4.2 创建远程连接公网地址4.3 使用固定二级子域名地址远程访问 本文主要介绍如何在Ubuntu系统中使用Docker本地部署Jupyter Notebook,并结合cpolar内网穿透…
最新文章