OneLLM:对齐所有模态的框架!

news2024/11/18 20:41:37

深度学习自然语言处理 原创
作者:wkk

今天为大家介绍香港中文大学联合上海人工智能实验室的最新研究论文,关于在LLM时代将各种模态的信息对齐的框架。

10c6b6fd40d45a0c6662cb882d908962.png

论文:OneLLM: One Framework to Align All Modalities with Language
地址:https://arxiv.org/abs/2312.03700
git: https://github.com/csuhan/OneLLM

引言

随着LLM的兴起,由于其强大的语言理解和推理能力,在学术和工业界中越来越受欢迎。LLM的进展也启发了研究人员将LLM作为多模态任务的接口,如视觉语言学习、音频和语音识别、视频理解等,因此多模态大语言模型(Multimodal Large Language Model, MLLM)也引起了研究人员的关注。然而,目前的研究依赖特定于单模态的编码器,通常在架构上有所不同,并且仅限于常见的模态。本文提出了OneLLM,这是一种MLLM,它使用一个统一的框架将八种模式与语言对齐。通过统一的多模态编码器和渐进式多模态对齐pipelines来实现这一点。不同多模态LLM的比较如下图所示,可以明显的看出OneLLM框架的工作方式与之前研究的区别。8c5d8db5b64066479fda8bd4dad8f7ff.pngOneLLM由轻量级模态标记器、通用编码器、通用投影模块(UPM)和LLM组成。与之前的工作相比,OneLLM 中的编码器和投影模块在所有模态之间共享。特定于模态的标记器,每个标记器仅由一个卷积层组成,将输入信号转换为一系列标记。此外,本文添加了可学习的模态标记,以实现模态切换并将不同长度的输入标记转换为固定长度的标记。

动机

众多特定于模态的编码器通常在架构上有所不同,需要付出相当大的努力将它们统一到一个框架中。此外,提供可靠性能的预训练编码器通常仅限于广泛使用的模式,例如图像、音频和视频。这种限制对 MLLM 扩展到更多模式的能力施加了限制。因此,MLLM 的一个关键挑战是如何构建一个统一且可扩展的编码器,能够处理广泛的模态。

贡献

  • 本文提出了一个统一框架来将多模态输入与语言对齐。与现有的基于模态的编码器的工作不同,展示了一个统一的多模态编码器,它利用预训练的视觉语言模型和投影专家的混合,可以作为 MLLM 的通用且可扩展的组件。

  • OneLLM 是第一个在单个模型中集成八种不同模态的MLLM。通过统一的框架和渐进式多模态对齐pipelines,可以很容易地扩展OneLLM以包含更多数据模式。

  • 本文策划了一个大规模的多模态指令数据集。在这个数据集上微调的 OneLLM 在多模态任务上取得了更好的性能,优于主流模型和现有的 MLLM。

相关工作

LLM的迅猛发展引起了研究人员的重视,因此有研究人员提出了视觉领域的大型视觉语言模型,并取得了较好的性能。除了视觉领域大语言模型之外,研究人员将其拓展到了多模态领域,如音频、视频和点云数据中,这些工作使得将多种模式统一为一个LLM成为可能即多模态大语言模型。X-LLM,ChatBridge,Anymal,PandaGPT,ImageBind-LLM等MLLM不断涌现。然而,当前的 MLLM 仅限于支持常见的模式,例如图像、音频和视频。目前尚不清楚如何使用统一的框架将 MLLM 扩展到更多模式。在这项工作中,提出了一个统一的多模态编码器来对齐所有模态和语言。将多种模式对齐到一个联合嵌入空间中对于跨模态任务很重要,这可以分为:判别对齐和生成对齐。判别对齐最具代表性的工作是CLIP,它利用对比学习来对齐图像和文本。后续工作将 CLIP 扩展到音频文本、视频文本等。本文的工作属于生成对齐。与之前的工作相比,直接将多模态输入与LLM对齐,从而摆脱训练模态编码器的阶段。

方法

模型架构

6dddd5b98c81639aae074e9f4c71140a.png

上图展示了 OneLLM 的四个主要组件:特定于模态的标记器通用编码器通用投影模块LLM

  • 模态标记器:模态标记器是将输入信号转换为标记序列,因此基于转换器的编码器可以处理这些标记。为每个模态设计了一个单独的标记器。对于图像和视频等二维位置信息的视觉输入,直接使用单个二维卷积层作为标记器。对于其他模态,将输入转换为 2D 或 1D 序列,然后使用 2D/1D 卷积层对其进行标记。

  • 通用编码器:利用预训练的视觉语言模型作为所有模态的通用编码器。视觉语言模型在对大量图文数据进行训练时,通常学习视觉和语言之间的稳健对齐,因此它们可以很容易地转移到其他模式。在OneLLM中,使用CLIPViT作为通用计算引擎。保持CLIPViT的参数在训练过程中被冻结。

  • 通用投影模块:与现有的基于模态投影的工作不同,提出了一个通用投影模块,将任何模态投影到 LLM 的嵌入空间中。由 K 个投影专家组成,其中每个专家都是在图像文本数据上预训练的一堆transformer层。尽管一位专家还可以实现任何模态到 LLM 的投影,但实证结果表明,多个专家更有效和可扩展。当扩展到更多模态时,只需要添加几个并行专家。

  • LLM:采用开源LLaMA2作为框架中的LLM。LLM的输入包括投影的模态标记和单词嵌入后的文本提示。为了简单起见,本文总是将模态标记放在输入序列的开头。然后LLM被要求以模态标记和文本提示为条件生成适当的响应。

渐进式多模态对齐

多模态对齐的简单方法是在多模态文本数据上联合训练模型。然而,由于数据规模的不平衡,直接在多模态数据上训练模型会导致模态之间的偏差表示。本文训练了一个图像到文本模型作为初始化,并将其他模式逐步接地到LLM中。包括图文对齐、多模态-文本对齐。同时为每个模态收集 X 文本对。图像-文本对包括LAION-400M和LAION-COCO。视频、音频和视频的训练数据分别为WebVid-2.5M、WavCaps和Cap3D。由于没有大规模的deep/normal map数据,使用预训练的 DPT 模型来生成deep/normal map。源图像和文本以及 CC3M。对于IMU-text对,使用Ego4D的IMU传感器数据。对于fMRI-text对,使用来自NSD数据集的 fMRI 信号,并将与视觉刺激相关的字幕作为文本注释。

多模态指令调优

在多模态文本对齐之后,OneLLM 成为一个多模态字幕模型,可以为任何输入生成简短的描述。为了充分释放OneLLM的多模态理解和推理能力,本文策划了一个大规模的多模态指令调优数据集来进一步微调OneLLM。在指令调优阶段,完全微调LLM并保持其余参数冻结。尽管最近的工作通常采用参数高效的方法,但凭经验表明,完整的微调方法更有效地利用 OneLLM 的多模态能力,特别是利用较小的 LLM(e.g.,LLaMA2-7B)。

实验

实现细节

  • 架构:通用编码器是在LAION上预训练的CLIP VIT Large。LLM 是 LLAMA2-7B。UPM有K=3个投影专家,每个专家有8个transformer块和88M个参数。

  • 训练细节:使用AdamW优化器,β1=0.9,β2==0.95,权重衰减为0.1。在前2K次迭代中应用了线性学习速率预热。对于阶段I,在16个A100 GPU上训练OneLLM 200K次迭代。有效批量大小为5120。最大学习率为5e-5。对于第II阶段,在8个GPU上训练 OneLLM 200K,有效批量大小为1080,最大学习率为1e-5。在指令调优阶段,在8个gpu上训练OneLLM 1 epoch,有效批大小为512,最大学习率为2e-5。

定量评价

  • Image-Text Evaluation:下表结果表明,OneLLM还可以在视觉专门的LLM中达到领先水平,MLLM和视觉LLM之间的差距进一步缩小。fc2eb7f9f4c35e67dd6374c2b6028d32.png

  • Video-Text Evaluation:下表可以看出,本文模型在相似的 VQA 数据集上进行训练明显增强了其紧急跨模态能力,有助于提高视频QA任务的性能。eb8950775a5d14309037659f0a340b5f.png

  • Audio-Text Evaluation:对于Audio-Text任务,结果显示,在Clotho AQA上的zero-shot结果与完全微调的Pengi相当。字幕任务需要更多特定于数据集的训练,而QA任务可能是模型固有的零样本理解能力更准确的度量。808561783219d134a36ff432b5973318.png

  • Audio-Video-Text Evaluation:下表结果表明,OneLLM-7B在所有三个数据集上都超过了 ChatBridge-13B。由于 OneLLM 中的所有模态都与语言很好地对齐,因此在推理过程中可以直接将视频和音频信号输入到 OneLLM。0d2b786334c626a0d22dedd6f32ca82a.png

  • Point Cloud-Text Evaluation:从下表中可以看出,由于精心设计的指令提示在任务之间切换,OneLLM可以实现出色的字幕结果,而InstructBLIP和PointLLM 难以生成简短而准确的字幕。在分类任务中,OneLLM也可以获得与 PointLLM 相当的结果。c19ccbd17f871c642e4b81a6b764baa2.png

  • Depth/Normal Map-Text Evaluation:如下表中所示,与CLIP相比,OneLLM实现了优越的zero-shot分类精度。这些结果证实,在合成deep/normal map-text数据上训练的OneLLM可以适应现实世界的场景。e9a2d1b9993c4e2e4e188126792e32b4.png

消融实验

为了探索 OneLLM 的一些关键设计。消融实验是在训练数据的一个子集上进行的,除了对专家数量的研究外,它只包含图像、音频和视频的多模态对齐和指令调整数据集。如果没有指定,其他设置保持不变。消融实验的结果如下表所示,ccf3f14be68c287a6a772edad7863e9a.png

  • MLLM 的一个重要问题是联合训练的 MLLM 是否优于特定于模态的 MLLM。为了解决这个问题,在表7(a)中比较了单独训练的MLLM与联合训练的MLLMs的性能。在单独的训练中,模型只能访问自己的数据;在联合训练中,模型在所有数据上联合训练。在两个图文任务 NoCaps 和 VQAv2 上,可以看到单独和联合训练的模型取得了可比较的结果;虽然单独训练的音频和视频模型比 ClothoQA 和 MSVDQA 上的联合训练模型差得多。这表明联合训练通过允许跨模态迁移学习知识的转移,极大地有利于数据稀缺模态(例如音频和视频)。

  • 表7(b)表明,具有图像-文本对齐的 OneLLM 可以帮助多模态文本对齐。如果使用随机初始化的模型直接将所有模态与文本对齐,图像和视频的性能会显着下降。相反,具有图像-文本预训练的 OneLLM 可以更好地平衡不同的模式。

  • 具有三个投影专家的 OneLLM 足以保持所有模态。增加专家的数量并不能带来所需的改进,而一位专家的结果也不能令人满意。

  • 软路由器优于其他两个路由器,表明其对多模态信号的动态路由的有效性。

定性分析

下图中给出了 OneLLM 在八种模态上的一些定性结果。展示了 OneLLM 可以(a)理解图像中的视觉和文本内容,(b)利用视频中的时间信息,(c)基于音频内容进行创造性写作,(d)理解3D形状的细节,(e)分析fMRI数据中记录的视觉场景,(f)基于运动数据猜测人的动作,以及(g)-(h)使用deep/normal map进行场景理解。601a59ff22acb24876761db874722a75.png以下是OneLLM框架更多的定性分析结果。9c46a726ed96eb4eb92088bce4e80238.png

总结

在这项工作中,本文介绍了 OneLLM,这是一种 MLLM,它使用一个统一的框架将八种模式与语言对齐。最初,训练一个基本的视觉LLM。在此基础上,设计了一个具有通用编码器、UPM 和 LLM 的多模态框架。通过渐进式对齐pipelines,OneLLM 可以使用单个模型处理多模态输入。此外,本文工作策划了一个大规模的多模态指令数据集,以充分释放OneLLM的指令跟踪能力。最后,在 25 个不同的基准上评估 OneLLM,显示出其出色的性能。

限制与未来工作:本文的工作面临两个主要挑战:

  1. 缺乏图像之外模态的大规模、高质量的数据集,这导致 OneLLM 和这些模式上的专业模型之间存在一定差距。

  2. 高分辨率图像、长序列视频和音频等的细粒度多模态理解。未来,将收集高质量的数据集,设计新的编码器来实现细粒度的多模态理解。


备注:昵称-学校/公司-方向/会议(eg.ACL),进入技术/投稿群

13559a666e053cf334ad9506b9662a1e.png

id:DLNLPer,记得备注呦

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

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

相关文章

vue中实现使用相框点击拍照,canvas进行前端图片合并下载

拍照和相框合成,下载图片dome 一、canvas介绍 Canvas是一个HTML5元素,它提供了一个用于在网页上绘制图形、图像和动画的2D渲染上下文。Canvas可以用于创建各种图形,如线条、矩形、圆形、文本等,并且可以通过JavaScript进行编程操作。 Canvas元素本身是一个矩形框,可以通…

《Kotlin核心编程》笔记:面向对象

kotlin 中的类 // Kotlin中的一个类 class Bird {val weight: Double 500.0val color: String "blue"val age: Int 1fun fly() { } // 全局可见 }把上述代码反编译成Java的版本,然后分析它们具体的差异: public final class Bird {privat…

逆向经历回顾总结

逆向经历回顾总结 一、前言 将自己的逆向经验做个总结,希望新手对逆向大方向能快速了解。高手有啥不一样的经验也可以讨论讨论。 二、个人经历 本人入行逆向全因一部韩剧“幽灵”,里面涉及渗透、病毒分析、取证的攻防对抗,我觉得对新手来说…

S1试讲讲稿

习题题目 答案 用到的概念: 概率之和等于1 E ( x ) ∑ i 1 4 x i P i E(x)\sum_{i1}^4x_iP_i E(x)∑i14​xi​Pi​ E ( x 2 ) ∑ i 1 4 x i 2 P i E(x^2)\sum_{i1}^4x_i^2P_i E(x2)∑i14​xi2​Pi​ V a r ( X ) Var(X) Var(X) ∑ i 1 4 ( x i − x ‾ ) 2…

美易官方:道指续创收盘历史新高

美国股市周三继续上涨,道琼斯工业平均指数连续六个交易日收高,并再次创下收盘历史新高。尽管市场对全球经济增长放缓的担忧依然存在,但美国经济数据的强劲表现以及企业盈利的良好预期,使得投资者对股市的信心得到提振。 在今日的交…

Volatility3内存取证工具安装及入门在Linux下的安装教程

1-1. Volatility3简介 Volatility 是一个完全开源的工具,用于从内存 (RAM) 样本中提取数字工件。支持Windows,Linux,MaC,Android等多类型操作系统系统的内存取证。 针对竞赛这块(CTF、技能大赛等)基本上都…

系列二十七、Apache Jmeter使用

一、安装 下载安装包>解压到指定目录>双击打开D:\Programs\apache-jmeter-5.5\bin\ApacheJmeter.jar即可。我分享的ApacheJmeter链接: 链接:https://pan.baidu.com/s/1VI7f3buIWZbQEeq2CRbwlg?pwdyyds 提取码:yyds 二、使用 2.1、添…

docker创建镜像 Dockerfile

目录 docker的创建镜像的方式 dockerfile形成(原理) docker的核心作用 docker的文件结构 dockerfile的语法 CMD和ENTRPOINT的区别 创建dockerfile镜像 区别 RUN命令的优化 如何把run命令写在一块 copy和ADD区别 区别 centos7 构建Apache的d…

jdk常用命令

1.jinfo命令 jinfo命令主要查看虚拟机配置参数信息,也可用于调整虚拟机的配置参数。jinfo不仅可以查看运行时某一个Java虚拟机参数的实际取值, 甚至可以在运行时修改部分参 数,并使之立即生效。 但是,并非所有参数都支持动态修改。…

springboot使用validation-api对入参进行校验

springboot使用validation-api对入参进行校验 前言:在实际开发中,我们不能完全相信前端给我们的参数是否符合预期或规范,为了避免恶意入参,引发系统或数据安全问题,需要对前端传过来的参数进行校验。例如字符串长度校…

牛客网BC107矩阵转置

答案&#xff1a; #include <stdio.h> int main() {int n0, m0,i0,j0,a0,b0;int arr1[10][10]{0},arr2[10][10]{0}; //第一个数组用来储存原矩阵&#xff0c;第二个数组用来储存转置矩阵scanf("%d%d",&n,&m); if((n>1&&n<10)&&am…

ShopsN commentUpload 文件上传漏洞复现

0x01 产品简介 ShopsN 是一款符合企业级商用标准全功能的真正允许免费商业用途的开源网店全网系统。 0x02 漏洞概述 ShopsN commentUpload 接口处存在任意文件上传漏洞,攻击者可以利用文件上传漏洞执行恶意代码、写入后门、读取敏感文件,从而可能导致服务器受到攻击并被控…

千梦网创:Too Young,to simple

大多数人啊&#xff0c;还是too young&#xff0c;包括我。 网上的评论对我而言并不影响我通过提供价值服务经营生活&#xff0c;但是有时候对于我的思考还是有一些帮助的。 我把很多可以争与不可争的事件看做是一种现象&#xff0c;这种现象往往可以给予我新的能量。 当学员…

2024美赛备战-美赛必备技能(matlab 和SPSS入门必备)

( 一 )Matlab 1.数值计算和符号计算功能 Matlab 以矩阵作为数据操作的基本单位&#xff0c;它的指令表达式与数学、工程中 常用的符号、表达式十分相似&#xff0c;故用Matlab 来解算问题要比用C、FORTRAN 等 语 言完成相同的事情简捷得多&#xff0c;使学者易于学习和掌握…

完蛋,我的AI自己动起来了

故事的开始 一开始&#xff0c;我只是给我的公众号接入了星火认知大模型。但是公众号的应用场景不足&#xff0c;没办法当成群机器人来用。所以我后来办了张新的电话卡&#xff0c;注册了个小号微信。想把小号打造成微信群聊助手&#xff0c;在我没时间翻冗长的聊天记录的时候…

平面腔体谐振计算与仿真

PCB的电源网络是由电介质材料隔开的两个平行金属板所组成&#xff0c;可以通过以下的3种方法对其谐振模式进行分析&#xff1a; 1. 基于腔体模型的计算&#xff1b; 2. 基于SPICE等效电路&#xff1b; 3. 基于全波数值电磁算法的3D模型。 设计得当的前提下&#xff0c;上述3种方…

西工大计院计算机系统基础实验二(配置gdb插件)

第二次实验是二进制炸弹实验&#xff0c;为了简化操作&#xff0c;并且让大家接下来能够按照作者之前已经为网安院写好的博客西工大网络空间安全学院计算机系统基础实验二&#xff08;清楚实验框架及phase_1&#xff09;-CSDN博客来走&#xff0c;大家需要下载一款好用的gdb插件…

退回论文如何修改最好最快 快码论文

大家好&#xff0c;今天来聊聊退回论文如何修改最好最快&#xff0c;希望能给大家提供一点参考。 以下是针对论文重复率高的情况&#xff0c;提供一些修改建议和技巧&#xff0c;可以借助此类工具&#xff1a; 退回论文如何修改最好最快 当论文被退回时&#xff0c;如何修改才…

“快速排序:一种美丽的算法混沌”

欢迎来到我的博客&#xff01;在今天的文章中&#xff0c;我将采用一种独特且直观的方式来探讨我们的主题&#xff1a;我会使用一幅图像来贯穿整篇文章的讲解。这幅精心设计的图表不仅是我们讨论的核心&#xff0c;也是一个视觉辅助工具&#xff0c;帮助你更深入地理解和掌握本…

【idea】idea尾部自动删除空格,idea2023.1.2关闭自动去除行尾空格的功能

这个功能是由于git或者svn上的代码有许多空格的时候&#xff0c;会自动把空格去掉&#xff0c;就会导致出现许多更改的地方&#xff0c;会自动删空格。 尾部刚打好空格准备写代码&#xff0c;自动就删掉空格&#xff0c;又得重打空格后继续编码&#xff0c;非常不爽。 设置如…