多模态大模型学杂了能力反下降?新研究:MoE+通用专家解决冲突

微调,能让通用大模型更加适配具体的行业应用。

但现在,研究人员们却发现:

对多模态大模型做“多任务指令微调”,大模型可能会“学得多错得多”,因为不同任务之间的冲突,导致泛化能力下降。

多模态指令微调存在任务冲突

举个例子,多模态问答任务可能要求回复尽可能简洁准确,文档理解任务却会反过来要求大模型尽可能详细地做出描述。

不同下游任务指令微调数据分布差异较大,导致一个大模型难以在多个下游任务中均达到最优性能。

如何解决这个问题?

来自香港科技大学、南方科技大学和华为诺亚方舟实验室的联合研究团队,受MoE(混合专家模型)开源大模型Mixtral-8×7B的启发,提出利用稀疏专家模型,打造下游任务泛化性能更好、理解能力更强的多模态大模型。

具体细节,一起来看。

多模态指令微调存在任务冲突

为了验证多模态指令微调中不同类型任务数据对模型性能的影响,研究人员将数据进行如下划分:

  • VQA(视觉问答):VQAv2、OKVQA、A-OKVQA、OCRVQA,

  • Captioning(图像描述):COCO Caption、Web CapFilt、TextCaps,

  • Full(所有数据):VQA、Captioning、LLaVA-150k、VQG(视觉问题生成,基于VQA数据)。

基于以上数据,研究人员采用LoRA对InstructBLIP进行微调,获得3个专家模型,并在其他数据(Flickr30k-图像描述、GQA/SciQA/IconQA/TextVQA等不同类型视觉问答、HM/VSR等多模态分类或推理任务)上进行零样本测试和评估。

从上图(右)中可以看出,在指令微调中,并非采用全量数据会取得最好效果,相反,只有三个下游任务(GQA,VSR,TextVQA)在全量数据专家下表现最好。

这说明,对于大部分任务来说,在指令微调过程中引入其他任务的数据,反而会降低模型性能,多模态指令微调存在任务冲突

另一方面,实验中观察到,VQA和Captioning两个专家模型,在各自任务中取得了相较于全量专家更好的表现。这样的方法看似解决了任务冲突的问题,但存在以下局限:

  1. 不同训练任务的知识无法在任务专家之间共享;

  2. 训练的数据需要人为地划分,当训练数据种类较多时难以进行;

  3. 新任务来临时,需要人为判断使用哪一个任务专家。

为了解决以上局限,研究团队提出,可以利用稀疏专家模型(MoE),不同的专家处理不同的任务,并设计一种数据划分的方法,把相似的任务交给同一个专家处理。

基于指令聚类的稀疏专家多模态大模型

通过指令聚类划分数据

在大型视觉-语言模型(LVLM)中,该文定义指令为所有的文本输入,如上图(左)C1-C4的文本。

这些指令描述了任务的意图、要求。因此,作者使用Kmeans将所有的指令聚为64类。

如上图(右)所示,指令的聚类信息可以有效表示数据的任务类型。这样做省去了人力划分数据的成本

基于指令聚类信息进行混合LoRA专家路由

和前面的任务专家相似,模型在该层的输出同样由冻结的LLM线性层以及微调的LoRA产生。

不同的是,这里利用数据的指令聚类信息来对混合LoRA进行路由。具体而言,对于的模型的输入,可以按照如下方式计算它的路由信息:

其中,topk()(考虑k=1的情况)保持前k个最大项不变,并将其他的设置为0,C是可学习的类别的嵌入表征,C[xi]表示xi对应指令的聚类表征,Wgate是路由的线性参数。

通用专家提升模型泛化性

实验发现,上述的指令聚类LoRA专家的确缓解了任务冲突的问题,但由于一个专家可能只见过一部分任务,整个模型对下游任务的泛化性降低了。

因此,该研究团队提出用通用专家来从所有数据中学习指令泛化能力。

与MoE不同,除了通过top1选择的任务专家,该方法还固定地激活一个通用专家,使得这个专家从所有的指令数据中学习。

因此,模型在该层输出为LLM原始冻结参数W,任务专家We和通用专家Wu的加权和。

在这样的设计下,任务专家和通用专家的协同既提升了模型在和训练集相似任务的表现,又保障了模型对新任务的泛化能力。

实验效果

该论文遵循InstructBLIP的实验场景(数据使用、评估标准、训练细节),在13个训练数据集(包括VQA、Captioning、VQG等)上进行指令微调并在11个测试数据集上评估(训练数据集和测试数据集没有重叠)。

由上表所示,引入该文章提出的方法(MoCLE)后,InstructBLIP相较于基线模型在所有下游任务上都有提升,其中,在VSR,IconQA,TextVQA和MSVD-QA的提升尤为明显。

上图可视化了LLM某一层混合LoRA专家在不同数据下的路由结果,虚线上下方分别是训练和测试数据。(a)和(b)分别显示了使用指令聚类信息和指令token平均表征作为路由的结果。

可以看到,使用指令聚类信息路由时,数据在专家中出现了分化。例如专家0主要负责VQA相关任务,专家2主要负责Captioning相关任务,有效实现专家的差异化。另一方面,使用指令token平均表征作为条件时,不同任务对专家的激活是相似的,没有出现分化。

研究团队认为,稀疏专家多模态大模型+通用专家模块的组合,缓解了任务之间的冲突,还保证了稀疏模型对任务的泛化能力,使得多模态大模型能够更有效地适配不同的下游行业应用。

这是首个在多模态大模型指令微调中结合LoRA和稀疏专家模型(MoE)来缓解任务冲突并保持模型泛化能力的工作。
该工作证实了其应对复杂下游任务的有效性,并未多模态大模型的应用和发展开辟了新途径。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

123?spm=1001.2014.3001.5501)这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

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

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

相关文章

杭州恒生面试,社招,3年经验

你好,我是田哥 一位朋友节前去恒生面试,其实面试问题大部分都是八股文,但由于自己平时工作比较忙,完全没有时间没有精力去看八股文,导致面试结果不太理想,HR说节后通知面试结果(估计是凉了&…

【软件测试】接口自动化测试面试题及详细答案

🔥 交流讨论:欢迎加入我们一起学习! 🔥 资源分享:耗时200小时精选的「软件测试」资料包 🔥 教程推荐:火遍全网的《软件测试》教程 📢欢迎点赞 👍 收藏 ⭐留言 &#x1…

【算法】数字接龙 走迷宫问题的一般处理思路

前言 其实走迷宫就是一个普普通通的深搜回溯嘛,但是我之前做的很多题都是在一个二维的地图上,只能上下左右四个方向走迷宫,在做数字接龙这道题的时候,相当于可以往8个方向走,虽然逻辑上不变,但按照我之前的…

[Maven]IDEA报错-xxx is referencing itself

在IDEA中,执行 mvn clean时报错xxx is referencing itself。 解决方案:https://stackoverflow.com/questions/64246267/maven-error-using-intellij-is-referencing-itself 具体做法:采用上图第二条,将父模块pom文件中的对子模块…

1天搞定SpringBoot+Vue全栈开发 (7)Axios网络请求

1.Axios的使用 Axios中文文档 | Axios中文网Axios 是一个基于 promise 的网络请求库&#xff0c;可以用于浏览器和 node.jshttps://www.axios-http.cn/ 2.与vue整合 App.vue: <template><div id"app"><Moviev-for"movie in movies":key&qu…

【mobx-入门与思考】

介绍 mobx 是 nodejs生态中的框架&#xff0c; 主要用于做状态管理&#xff0c;可以监控变量状态的变化。 nodejs中除了mobx&#xff0c;还有个redux&#xff0c;也是做状态管理的&#xff0c;都是比较成熟的框架&#xff0c;二者的选择可以参考 【nodejs状态管理: Redux VS M…

mac电脑如何安装python及环境搭建

&#xff08;1&#xff09;进入官网&#xff1a;Download Python | Python.org&#xff0c;根据自己电脑选择python (2)这里我选择的是mac,点击&#xff1a;macos&#xff0c;选择最近版本并点击进入 (3)选择mac版本&#xff1a; (4)点击就可以进入下载&#xff1a; (5)下载好之…

京东工业优选商品详情API接口:解锁高效工业采购新体验

京东工业优选的商品详情API接口&#xff0c;允许开发者通过程序化的方式&#xff0c;快速获取平台上的商品详细信息。这些详细信息包括但不限于商品名称、价格、规格、库存、图片、评价等&#xff0c;为企业提供全方位的商品信息查询服务。 二、API接口的主要功能 实时查询&a…

Baidu Comate——您的智能编码伙伴

文章目录 1.Baidu Comate智能编码助手简介2.Baidu Comate安装使用3.查看Comate插件功能4.Baidu Comate基础功能介绍✨注释生成代码✨实时续写✨函数注释✨行间注释✨代码解释✨单元测试生成✨代码优化✨技术问答 5.使用体验结语 1.Baidu Comate智能编码助手简介 ✨Baidu Comat…

电脑装了两个Win10系统,怎么修改其名称方便识别?

前言 有小伙伴在上一期的双系统教程上留言说怎么修改双系统引导时候显示的名称 不然看起来两个系统好像都没啥分别&#xff0c;如果是Windows10Windows11的方案还好说&#xff0c;但如果是两个Windows10或者是两个Windows11&#xff0c;有时候还真的很不好分辨。 万一想要启动…

Candance画运算放大器

根据拉扎维《模拟CMOS集成电路设计》第九章第一个放大器进行搭建电路图。 此电路图中两个NMOS栅极互联是因为NMOS的衬底要接片上最低电压。所以要两个互联并接到最低点。 因为两条支路上的器件都是一样的&#xff0c;所以这两条路平分idc的直流电流。 测试的时候要加上下图这两…

【Ajax零基础教程】-----第一课 Ajax简介

一、什么是ajax ajax即 Asynchronous javascript And XML (异步 javaScript 和 XML) 是一种创建交互式&#xff0c;快速动态应用的网页开发技术&#xff0c;无需重新加载整个网页的情况下&#xff0c;能够更新页面局部数据的技术。 二、为什么使用Ajax 通过在后台与服务器进行少…

天锐绿盾 | 办公加密系统,源代码防泄密、源代码透明加密、防止开发部门人员泄露源码

天锐绿盾作为一款专注于数据安全与防泄密的专业解决方案&#xff0c;它确实提供了针对源代码防泄密的功能&#xff0c;帮助企业保护其核心的知识产权。 PC地址&#xff1a; https://isite.baidu.com/site/wjz012xr/2eae091d-1b97-4276-90bc-6757c5dfedee 以下是天锐绿盾可能采…

值得收藏!修复Windows 10/11中找不到输出或输入设备的五种方法

序言 这篇文章主要关注处理声音输出/输入设备未发现的问题。它提供了许多可行的方法,帮助了许多Windows用户。阅读以下内容以找到你的解决方案。 最近,我将Windows 10更新到21H2,发现我的音频无法工作。当我把鼠标放在任务栏上的声音图标(上面有一个十字图标)上时,它会…

6.Nginx

Nginx反向代理 将前端发送的动态请求有Nginx转发到后端服务器 那为何要多一步转发而不直接发送到后端呢&#xff1f; 反向代理的好处&#xff1a; 提高访问速度&#xff08;可以在nginx做缓存&#xff0c;如果请求的是同样的接口地址&#xff0c;这样就不用多次请求后端&#…

TCP经典异常问题探讨与解决

作者&#xff1a;kernelxing TCP的经典异常问题无非就是丢包和连接中断&#xff0c;在这里我打算与各位聊一聊TCP的RST到底是什么&#xff1f;现网中的RST问题有哪些模样&#xff1f;我们如何去应对、解决&#xff1f;本文将从RST原理、排查手段、现网痛难点案例三个板块自上而…

鸿蒙编译子系统详解(二)main.py

1.5.4源码解析 1.5.4.1 build/hb/main.py脚本 这个脚本是编译的主程序脚本&#xff0c;流程如下&#xff1a; 首先是初始化各种module类&#xff0c;然后运行对应模块。 hb分为build,set,env,clean,tool,help几个模块&#xff0c;模块源码位于build/hb/modules/目录下&#xff…

ctfshow——SSRF

文章目录 web 351web 352web 353web 354web 355web 356web357web 358web 359web 360 SSRF(Server-Side Request Forgery&#xff1a;服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下&#xff0c;SSRF攻击的目标是从外网无法访问的内部系统…

python实现的信号合成分析系统(DSP)

python实现的信号合成分析系统(DSP) 流程 1、在QT界面上设置好信号频率,采样频率,采样点数 2、使用np构建sin函数 3、使用matplotlib画出 4、分别分析合成信号的FFT频域信息1、效果图 2、示例代码 def btn_com_clicked(self):# 信号合成分析Fs = self.com_fs_edit_value #…

C++程序设计教案

文章目录&#xff1a; 一&#xff1a;软件安装环境 第一种&#xff1a;vc2012 第二种&#xff1a;Dev-C 第三种&#xff1a;小熊猫C 二&#xff1a;语法基础 1.相关 1.1 注释 1.2 换行符 1.3 规范 1.4 关键字 1.5 ASCll码表 1.6 转义字符 2.基本框架 2.1 第一种&…