ImageBind-LLM: Multi-modality Instruction Tuning

发表时间:11 Sep 2023

论文链接:https://arxiv.org/pdf/2309.03905

作者单位: Shanghai Artificial Intelligence Laboratory

Motivation : 现有的工作主要集中在语言和图像 指令 调优上。

解决方法 :与之不同的是,我们的 ImageBind-LLM 可以通过仅图像-文本对齐训练响应多模态条件,包括音频、3D 点云 、视频及其嵌入空间算术 。

ImageBind-LLM展示了四个关键特点:

  1. 支持多种模式的指令,包括图片、文本、音频、3D点云和视频。

  2. 实现了高效的调优方法,包括图像编码器冻结和参数高效方法的使用。

  3. 使用可学习的门控方法进行渐进性知识注入,更为高效。

  4. 提供了来自图像特征的视觉缓存模型,用于增强嵌入以解决训练和推理之间的模态差异。

实现方式 :

视觉Encoder换成了ImageBind里面的Encoder,而不是CLIP里面的Encoder,因此可以支持更多模态的信息理解。

在训练期间,我们采用可学习的bind network来对齐 LLAMA 和 ImageBind 图像 编码器 之间的嵌入空间 。然后,将bind network转换的图像特征添加到 LLAMA 中所有层的单词标记中,该标记通过无注意和零初始化的门控机制(与LLAMA-Adapter类似,但是这里不是concat,而是求和)逐步注入视觉 指令。在ImageBind的联合嵌入的帮助下,简单的图像-文本训练使我们的模型能够表现出优越的多模态指令跟随能力。

模型的训练包含两个阶段,预训练阶段和多模态指令微调阶段(多模态大模型基本都是这么做,除了MoE-LLaVA是三阶段)。

预训练阶段包括两个步骤,第一个步骤用image-caption对形式的数据,第二个步骤用 指令 更随形式的数据。

在多模态 指令 微调阶段,用 LoRA 和bias-norm tuning 方法对 LLM 进行微调,首先是每一层transformer layer的线性层用rank 为16的LoRA做微调,同时线性层的归一化参数也会进行更新,也会和LLaMA-Adapter V2一样,加上可学习的偏置项。模型的其他部分的参数固定不变。

在推理过程中,多模态输入被馈送到相应的 ImageBind 编码器,并由所提出的视觉缓存模型处理以进行进一步的跨模态嵌入增强。无训练缓存模型从 ImageBind 提取的 300 万个图像特征中检索,这有效地减轻了训练推理模态差异。

由于训练的时候只有图像-文本的指令微调数据,没有在包含其他模态的指令微调数据上进行微调,对应的推理和训练是存在gap的,为了更好地对其他模态的信息进行推理理解,本文提到了一种缓存增强的推理方式,即Cache-enhanced Inference。

左边是得到cache Model的方式,右边是如何使用cache Model。

实验 **:**我们在开源图像-文本对数据、仅语言和视觉指令数据的集合上训练 ImageBind-LLM。 对于缓存增强推理,我们使用 FAISS 库 来构建我们的检索系统,Autofaiss 库 2 为索引找到最佳超参数。

结论 : 我们通过可学习的绑定网络简单地将 ImageBind 的视觉编码器与 LLM 对齐来实现这一点。由于 ImageBind 的结合特性,我们可以直接将多模态输入输入到 ImageBind-LLM 中进行推理,无需任何训练。 我们还提出了一种无训练的图像缓存模型(cache Model)来缓解训练和推理之间的模态差异。 未来,我们计划通过增加多模态标记的数量来增强 ImageBind-LLM。此外,将更多模式集成到 ImageBind-LLM 中也是增强其多模态容量的一种有前途的方法。

相关推荐
云和数据.ChenGuang2 分钟前
Python 菜鸟入门:字典(dict)类型详解与 CRUD 实战案例
开发语言·人工智能·python
小白今天也很酷15 分钟前
MCXN947更新板载DAP_Link固件的方法
c语言·python·单片机·ubuntu·excel·1024程序员节
小羊没烦恼!18 分钟前
.NET无侵入自动化探针原理和主流实现
运维·开发语言·javascript·python·自动化·.net·1024程序员节
立康科普23 分钟前
含多肽钙的补钙产品是什么?和普通钙片有什么区别?
python·1024程序员节
“AI国潮设计-小江”9 小时前
【AIGC实战】Python+SDXL批量生成“潮汕英歌舞不倒翁”IP | 角色一致性与多场景融合方案,附完整代码
开发语言·人工智能·python·prompt·aigc
Linux_cy9 小时前
服务器管理工具哪个好用?我用了七八个
运维·服务器·javascript·python·ssh·面板·gmssh
MoRanzhi12039 小时前
第6篇(下)· 使用 PyQt5 实现 2048 高性能计算版:统一运行控制与跨模式安全交接
python·pyqt·进程管理·状态机·软件架构·并发控制·数据一致性
code tsunami9 小时前
【无标题】
开发语言·python
CodeGL10 小时前
10、Python基础之进程和线程
开发语言·python
TechWayfarer11 小时前
PHP漏洞被利用,怎么揪出攻击IP?
开发语言·python·tcp/ip·网络安全·php