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

相关推荐
2501_914245938 小时前
SQL如何高效提取大表前几行:分页查询与OFFSET优化
jvm·数据库·python
Ulyanov8 小时前
《玩转QT Designer Studio:从设计到实战》 QT Designer Studio状态机深度应用:智能待办事项管理系统
开发语言·python·qt·gui·雷达电子对抗系统仿真
AC赳赳老秦8 小时前
OpenClaw界面错乱、闪退问题,一键修复教程(附工具)
人工智能·python·职场和发展·django·tornado·deepseek·openclaw
LiAo_1996_Y8 小时前
如何使用Navicat连接云端MariaDB_白名单与实例配置
jvm·数据库·python
2401_837163898 小时前
mysql如何利用cron定时备份_mysql自动化配置说明
jvm·数据库·python
2301_773553628 小时前
如何在登录界面添加自定义背景图片_Login CSS覆盖修改
jvm·数据库·python
m0_493934538 小时前
JavaScript中模块化在游戏引擎开发中的资源调度作用
jvm·数据库·python
abc123456sdggfd8 小时前
C# Dev Tunnels使用方法 C# Visual Studio如何公开本地Web API进行调试
jvm·数据库·python
m0_617881428 小时前
如何优雅处理SQL存储过程异常_使用TRY-CATCH块机制
jvm·数据库·python
步辞8 小时前
如何用SQL实现分组内前N个百分比筛选_窗口函数应用
jvm·数据库·python