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 中也是增强其多模态容量的一种有前途的方法。

相关推荐
费弗里2 小时前
Python全栈应用开发利器Dash 3.x新版本介绍(1)
python·dash
李少兄9 天前
解决OSS存储桶未创建导致的XML错误
xml·开发语言·python
就叫飞六吧9 天前
基于keepalived、vip实现高可用nginx (centos)
python·nginx·centos
Vertira9 天前
PyTorch中的permute, transpose, view, reshape和flatten函数详解(已解决)
人工智能·pytorch·python
学Linux的语莫9 天前
python基础语法
开发语言·python
匿名的魔术师9 天前
实验问题记录:PyTorch Tensor 也会出现 a = b 赋值后,修改 a 会影响 b 的情况
人工智能·pytorch·python
Ven%9 天前
PyTorch 张量(Tensors)全面指南:从基础到实战
人工智能·pytorch·python
mahuifa9 天前
PySide环境配置及工具使用
python·qt·环境配置·开发经验·pyside
大熊猫侯佩9 天前
ruby、Python 以及 Swift 语言关于 “Finally” 实现的趣谈
python·ruby·swift
19899 天前
【Dify精讲】第19章:开源贡献指南
运维·人工智能·python·架构·flask·开源·devops