多模态大模型学杂了能力反下降?新研究: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://xiahunao.cn/news/3014869.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

进制乘法表(任意进制均可以)

#include <iostream> // 包含输入输出流库 #include <vector> // 包含向量库&#xff0c;未使用&#xff0c;可以删除 #include <string> // 包含字符串库using namespace std; // 使用标准命名空间// 将十进制数转换为P进制形式的字符串 string toBase(…

uniapp 拉起微信授权登录App

登录 微信开放平台 创建移动应用&#xff1a; 然后下一步&#xff1a; 输入相关信息 然后在项目中配置&#xff1a; 通用链接页面需要在页面中配置拉起你的App的 UrlSchemes 具体可参考 uniapp 自定义App UrlSchemes-CSDN博客 示例代码&#xff1a; uni.login({"prov…

【MySQL】连接查询(JOIN 关键字)—— 图文详解:内连接、外连接、左连接、左外连接、右连接、右外连接

文章目录 连接查询驱动表连接查询分类 内连接&#xff08;INNER JOIN&#xff09;内连接 —— 等值连接内连接 —— 自然连接&#xff08;NATURAL JOIN&#xff09;内连接 —— 交叉连接&#xff08;笛卡尔积&#xff09; 外连接&#xff08;OUTER JOIN&#xff09;外连接 ——…

专注 APT 攻击与防御——红蓝对抗渗透测试

在团体渗透测试的项目中&#xff0c;如红蓝对抗&#xff0c;团队渗透测试比赛等&#xff0c;最重要的是过程与结果实时共享于团队&#xff0c;例如&#xff1a;A同学nmap目标站&#xff0c;B同学也nmap目标站&#xff0c;这在对抗比赛中是极其浪费时间也是非常容易引起防火墙&a…

IDEA无法下载远程仓库jar包问题

问题描述&#xff1a; idea无法下载远程仓库jar包&#xff0c;最奇怪的是idea有多个项目&#xff0c;有些项目可以下载&#xff0c;有些项目不行。报错如下&#xff1a; 一开始&#xff1a; unable to find valid certification path to requested target Try run Maven impo…

SQLI-labs-第十三关和第十四关

目录 第十三关 1、判断注入点 2、判断当前数据库 3、爆表名 4、爆字段名 5、爆值 第十四关 1、判断注入点 知识点&#xff1a;POST方式的单引号和括号闭合错误,报错注入 第十三关 思路&#xff1a; 1、判断注入点 使用Burpsuite抓包 首先加入一个单引号&#xff0c;…

小米手机短信删除了怎么恢复?这里教你快速解决!

手机已经成为我们生活中不可或缺的一部分&#xff0c;比如小米手机。我们通过手机进行通讯、娱乐、学习等各种活动&#xff0c;其中&#xff0c;短信是我们日常生活中的重要信息来源之一。然而&#xff0c;我们可能会不小心删除了一些重要的短信&#xff0c;这时候我们就会想知…

【JS】call和 apply函数的详解

JavaScript 中 call() 和 apply() 函数的详解 在JavaScript中&#xff0c;call()和apply()都是非常重要的方法&#xff0c;用于调用函数时指定函数体内的this的值&#xff0c;从而实现不同对象之间的方法共享。尽管它们的功能非常相似&#xff0c;但在实际使用中各有其优势和特…

【前端】实现表格简单操作

简言 表格合并基础篇 本篇是在上一章的基础上实现&#xff0c;实现了的功能有添加行、删除行、逆向选区、取消合并功能。 功能实现 添加行 添加行分为在上面添加和在下面追加行。 利用 insertAdjacentElement 方法实现&#xff0c;该方法可以实现从前插入元素和从后插入元…

两个开关控制一盏灯

1.PLC控制电路 1.1双联控制 开关控制灯最为普遍、简单的做法是用一个开关控制一盏灯&#xff0c;除此之外&#xff0c;在某个位置需要用两个开关控制一盏灯&#xff0c;这就是双联控制。 灯的双联控制&#xff0c;在传统上要用到2个单刀双联开关&#xff0c;其电气原理图如下图…

【CTS :testExtensionAvailability】

【CTS】android.hardware.camera2.cts.CameraExtensionCharacteristicsTest#testExtensionAvailability 报错&#xff1a; java.lang.AssertionError: Extensions system property : true does not match with the advertised extensions: false expected: but was: 通过对这…

暗区突围端游海外版预下载教程 暗区突围端游海外版怎么注册 下载

暗区突围端游海外版预下载教程 暗区突围端游海外版怎么注册 下载 想必最近暗区突围PC版本的上线对于热爱这款游戏的玩家们是一件喜事&#xff0c;这款游戏自从手游上线之初就在全世界范围内引起了不小的轰动&#xff0c;作为逃离塔科夫这款游戏的竞品&#xff0c;刚上线时自然…

嵌入式学习——C语言基础——day14

1. 共用体 1.1 定义 union 共用名 { 数据类型1 成员变量1; 数据类型2 成员变量2; 数据类型3 成员变量3; .. }; 1.2 共用体和结构体的区别 1. 结构体每个成员变量空间独立 2. 共用体每个成员变量空间共享 1.3 判断内存大小端 1. 内存大端…

doris 启动be报错

doris版本是1.2.4 java版本是&#xff1a;1.8 刚开始我以为是版本不兼容问题&#xff0c;后面发现思路错了&#xff0c;版本是兼容的&#xff0c;报以下错我的原因是操作系统没有达到安装要求 以下是博主在部署doris x64(avx2)版本中遇到的小bug 在大家使用doris的时候应该…

翻译《The Old New Thing》- Does Windows have a limit of 2000 threads per process?

Does Windows have a limit of 2000 threads per process? - The Old New Thing (microsoft.com)https://devblogs.microsoft.com/oldnewthing/20050729-14/?p34773 Raymond Chen 2005年07月29日 Windows 是否有一个每个进程2000线程的限制&#xff1f; 简要 文章解释了在 W…

javascript中的DOM和BOM

目录 JavaScript中的对象 简介&#xff1a; js对象的基本用法&#xff1a; 创建对象&#xff1a; 访问对象的属性&#xff1a; 设置修改对象的属性&#xff1a; 删除对象的属性&#xff1a; DOM&#xff08;文档对象模型&#xff09; 简介&#xff1a; DOM对象的属性…

探索未来居住新纪元:公寓商场综合楼可视化引领潮流

在繁忙的都市生活中&#xff0c;我们都渴望找到一处既能满足居住需求&#xff0c;又能提供便捷购物体验的理想之地。如今&#xff0c;这一梦想已不再是遥不可及&#xff0c;随着科技的飞速发展&#xff0c;3D可视化技术正逐渐走进我们的生活&#xff0c;为我们带来前所未有的居…

用脚本写一个日期样式的字符

现在想要诸如此类样式的语句&#xff1a;&#xff08;过去三个月的&#xff09; 可以用python脚本写&#xff1a; from datetime import date, timedelta# 获取当前日期 current_date date.today()# 定义过去三个月的时间间隔 three_months_ago current_date - timedelta(da…

第二证券|集合竞价915到920能成交吗?

不能&#xff0c;买卖日9点15分到9点20分是集合竞价申报时刻&#xff0c;还没有发生集合竞价。 在这个时刻段内&#xff0c;投资者能够申报&#xff0c;也能够撤单&#xff0c;但这些挂单并不会立即成交。9:25时&#xff0c;系统会对一切收到的挂单进行一次性促成处理&#xf…

python 12实验

1.导入数据。 2.清洗数据&#xff0c;将缺失值或“NAN”替换为“无”&#xff0c;并将文本数据转换为数值型数据。 3.使用聚类算法&#xff08;如KMeans&#xff09;对数据进行聚类&#xff0c;并计算样本到簇中心的平均距离以确定最佳的簇数量。 4.对数据进行PCA降维&#xff…