MoExtend: 模态和任务扩展调整的新专家

MoExtend: Tuning New Experts for Modality and Task Extension

GitHub - zhongshsh/MoExtend: ACL 2024 (SRW)

https://arxiv.org/pdf/2408.03511

大型语言模型(LLM)在各种任务中表现出色,然而其应用范围受限于主要在文本数据上进行训练。为了扩展LLM的功能以包括视觉语言理解,需要从头开始在多模态数据上对其进行训练,这既具有挑战性又成本高昂。目前的指令调优方法(如LLAVA)通过完全微调LLM来连接预训练的CLIP视觉编码器和LLM,以弥合不同模态之间的差距。然而,完全微调存在灾难性遗忘和高昂的训练成本问题,特别是在任务和模态不断增加的情况下。为了解决这个问题,提出了MoExtend框架,该框架旨在简化混合专家(MoE)模型对新模态适应和扩展过程。MoExtend将新专家无缝集成到预训练的MoE模型中,并赋予它们新知识,而无需对预训练模型(如MoE和视觉编码器)进行调整。这种方法能够快速适应并扩展到新的模态数据或任务,并有效地解决了在LLM中容纳新模态所面临的挑战。此外,MoExtend还避免了对预训练模型进行调整带来的灾难性遗忘风险。实验结果证明了MoExtend提升LLM多模态能力方面有效且高效,在推动多模态AI研究发展方面具有积极意义。


 

大型语言模型(LLMs)的局限性

现状:LLMs在多种任务中表现出色,但主要基于文本数据训练,限制了其应用范围。

挑战:扩展LLMs以包含视觉-语言理解能力至关重要,但从头开始训练多模态数据成本高且困难。

现有方法的不足

方法:现有指令调优方法(如LLaVA)通过全微调LLMs来连接预训练的CLIP视觉编码器和LLMs,以弥合模态差距。

问题:全微调存在灾难性遗忘(即忘记先前知识)和高训练成本的问题,特别是在任务和模态不断增加的时代。

MoExtend框架的提出

框架:MoExtend是一个有效的框架,旨在简化Mixture-of-Experts(MoE)模型的模态适应和扩展。

优势:MoExtend能够无缝地将新专家集成到预训练的MoE模型中,赋予它们新知识,而无需调整预训练的MoE和视觉编码器,从而快速适应和扩展到新的模态数据或任务。

MoExtend的核心特点

高效性:MoExtend避免了微调预训练模型,从而减轻了灾难性遗忘的风险。

灵活性:该框架支持在不改变原始MoE模型参数的情况下,仅训练新添加的专家和相应的门控层。

MoExtend的三个阶段

对齐阶段:通过预训练的视觉编码器对新添加的MLP进行训练,使用图像-描述对数据实现模态对齐。具体细节包括:

利用CLIP编码器将图像映射为视觉向量V,并将文本描述通过词嵌入映射为文本向量T。

将V和T拼接后输入到MoE模型中,进行前向传播和自注意力计算。

扩展阶段:使用Extender确定哪些MoE层需要扩展以容纳新的模态信息。关键步骤包括:

通过分析在包含视觉模态数据的训练集上MoE层专家的选择频率变化,确定哪些层需要扩展。

只在选择频率变化最大的顶层MoE层中添加新的专家FFN_{m+1}。

微调阶段:对新添加的专家部分进行微调,以完成最终的多模态信息扩展。此阶段的关键是:

在冻结其他参数的情况下,仅对新添加的专家和对应的路由层进行微调。

使用特定的指令数据集对扩展部分进行训练,以达到更好的多模态理解和任务处理能力。

关键实现细节

权重初始化:新专家的权重初始化是基于原有专家的权重分布,选择具有最高选择概率的专家进行复制。

校准模块:每个新添加的专家都配备了一个轻量级的校准模块,用于校正由于专家数量增加而导致的路由权重变化。

参数效率:通过仅在必要时添加新专家,并微调少量新参数,MoExtend在保持高效训练的同时,降低了过拟合的风险。

贡献

贡献:MoExtend的贡献包括引入了一种新的策略来增强MoE LLMs的多模态能力,显著降低了微调成本,并在推理过程中没有额外成本,同时最小化了灾难性遗忘的影响。

MoExtend的应用前景

前景:随着LLMs在更多领域的应用需求增加,MoExtend提供了一种高效且灵活的方法来扩展LLMs的模态和任务能力,具有广泛的应用前景。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【vSphere 7/8】深入浅出 vSphere 证书 Ⅰ—— 初识和了解 vSphere证书

目录 引子1. vCenter Server 证书服务1.1 vSphere 安全证书(1)vSphere 安全证书的类型和有效期 1.2在 vSphere Client 中初识 vSphere 证书(1)vCenter 8.0.3 的 vSphere Client 界面(2)vCenter Server 7.0 …

TCP/UDP实现网络通信

TCP实现网络通信 1.服务端 #include<myhead.h>//1服务端定义:端口号\id号 #define SER_PIPR 6666 #define SER_IP "196.168.111.186" //通过ifconfig查看ip int main(int argc, const char *argv[]) {//1创建套接字int sfd socket(AF_INET,SOCK_STREAM,0);…

深度解析Edge SCDN与CDN:安全加速,全面防护

在现代互联网应用中&#xff0c;CDN已成为提高网站和应用性能不可或缺的技术之一。然而&#xff0c;随着网络安全威胁的日益严峻&#xff0c;单纯依靠CDN提供的加速服务已经不足以满足企业的安全需求。因此&#xff0c;Edge SCDN出现了&#xff0c;它不仅具备CDN的加速特性&…

解锁客户增长新密码:“老带新”策略的深度剖析与实战指南

客户推荐是什么&#xff0c;为何那么重要&#xff1f; 客户推荐是指满意的客户自愿地将其认为优质的产品或服务推荐给他们的社交网络成员&#xff0c;如朋友、家人或同事&#xff0c;这种推荐行为可以是自发的口碑传播&#xff0c;也可以是通过产品方推出的“老带新”奖励计划来…

OpenCV图像滤波(12)图像金字塔处理函数pyrDown()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 函数主要是对图像进行模糊处理并将其降采样。 默认情况下&#xff0c;输出图像的大小计算为 Size((src.cols1)/2, (src.rows1)/2)&#xff0c;但…

汽车维修预约服务系统的设计与实现

TOC springboot317汽车维修预约服务系统的设计与实现 第1章 绪论 1.1选题动因 当前的网络技术&#xff0c;软件技术等都具备成熟的理论基础&#xff0c;市场上也出现各种技术开发的软件&#xff0c;这些软件都被用于各个领域&#xff0c;包括生活和工作的领域。随着电脑和笔…

【大模型】多模态的原理简述

多模态的原理 多模态模型目前基本就是文生图、图生图、图生视频、文生视频这些&#xff0c;其底层逻辑其实还是先从生图片这一源头。因为毕竟视频也是若干帧的图片组成。 所以在生图片的这个环节上&#xff0c;我们把比较火的这个stablediffusion用的这个diffusion扩散模型理…

第T8周:使用TensorFlow实现猫狗识别

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 文章目录 一、前期工作1.设置GPU&#xff08;如果使用的是CPU可以忽略这步&#xff09;2. 导入数据 二、数据预处理1、加载数据2、再次检查数据3. 配置数据集4…

mysql写个分区表

因为表量已经达到1个亿了。现在想做个优化&#xff0c;先按照 create_time 时间进行分区吧。 create_time 是varchar类型。 CREATE TABLE orders (id varchar(40) NOT NULL ,order_no VARCHAR(20) NOT NULL,create_time VARCHAR(20) NOT NULL,amount DECIMAL(10,2) NOT NULL,…

springboot使用aop或Jackson进行数据脱敏

1.aop 启动类加EnableAspectJAutoProxy 自定义注解&#xff0c;在实体类中使用表示被脱敏字段 建立aop切面类 可能这里gpt会建议你用Pointcut("execution(public * com.xx.aop..*.get*(..))")这种方式拦截&#xff0c;这种我试了&#xff0c;拦截不住。猜测在mvc返…

FPGA开发——UART回环实现之接收模块的设计

一、简介 因为我们本次进行串口回环的实验的对象是FPGA开发板和PC端&#xff0c;所以在接收和发送模块中先编写接收模块&#xff0c;这样可以在后面更好的进行发送模块的验证。&#xff08;其实这里先编写哪个模块&#xff09;都不影响&#xff0c;这里看自己心情&#xff0c;反…

【SpringBoot】【autopoi】java生成word,基于模版生成(文本、图片、表格)

基于模版生成word 1、引入maven2、word模版编写3、java代码4、效果5、word转pdf AutoPoi的主要特点 参考文献 https://help.jeecg.com/autopoi/autopoi/prequel/test.html 1.设计精巧,使用简单 2.接口丰富,扩展简单 3.默认值多,write less do more 4.spring mvc支持,web导出可以…

【ubuntu24.04】远程开发:微软RDP;ssh远程root登录;clion以root远程

本地配置了一台ubutnu服务器,运行各种服务。偶尔会远程过去,做一些UI操作。感觉nomachine的就是会模糊一些,可能是默认的编码比较均衡?RDP更清晰? RDP 与nomachine比,更清晰,但是貌似不支持自动缩放窗口?默认的配置就比较高:GPT的建议 安装xrdp还要配置session:1. 安…

Git 课程任务

安装好git 写自我介绍 配置完git&#xff0c;进行提交 创建个人仓库 添加链接 本地提交到远程仓库

leetcode198打家劫舍

题目描述 LeetCode 第 198 题——打家劫舍&#xff08;House Robber&#xff09; 你是一个职业小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;这个地方所有的房屋都围成一圈&#xff0c;并且相邻的房屋有安全系统会相连&#xff0c;如果两间相邻的…

【C++高阶】哈希—— 位图 | 布隆过滤器 | 哈希切分

✨ 人生如梦&#xff0c;朝露夕花&#xff0c;宛若泡影 &#x1f30f; &#x1f4c3;个人主页&#xff1a;island1314 &#x1f525;个人专栏&#xff1a;C学习 ⛺️ 欢迎关注&#xff1a;&#x1f44d;点赞 &#x1f442;&am…

C++竞赛初阶L1-11-第五单元-for循环(25~26课)519: T454430 人口增长问题

题目内容 假设目前的世界人口有 x 亿&#xff0c;按照每年 0.1% 的增长速度&#xff0c;n 年后将有多少人&#xff1f; 输入格式 一行两个正整数 x 和 n&#xff0c;之间有一个空格。其中&#xff0c;1≤x≤100,1≤n≤100。 输出格式 一行一个数&#xff0c;表示答案。以亿…

RK3576 芯片介绍

RK3576 芯片介绍 RK3576瑞芯微第二代8nm高性能AIOT平台&#xff0c;它集成了独立的6TOPS&#xff08;Tera Operations Per Second&#xff0c;每秒万亿次操作&#xff09;NPU&#xff08;神经网络处理单元&#xff09;&#xff0c;用于处理人工智能相关的任务。此外&#xff0…

使用ITextRenderer导出PDF后无法打开问题,提示‘无法打开此文件‘

依赖如下 <!-- https://mvnrepository.com/artifact/org.xhtmlrenderer/flying-saucer-pdf --> <dependency><groupId>org.xhtmlrenderer</groupId><artifactId>flying-saucer-pdf</artifactId><version>9.1.22</version> &l…

6.MySQL的增删改查

目录 Create 单行插入数据 全列插入 多行数据指定列插入 插入否则更新 主键冲突 唯一键冲突 &#xff08;☆&#xff09; 替换数据 Retrieve Select列 全列查询 指定列查询 查询字段为表达式 where条件 NULL 的查询 NULL 和 NULL 的比较&#xff0c; 和 <>…