【论文笔记】LLaMA-VID: An Image is Worth 2 Tokens in Large Language Models

🍎个人主页:小嗷犬的个人主页
🍊个人网站:小嗷犬的技术小站
🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。


基本信息

标题: LLaMA-VID: An Image is Worth 2 Tokens in Large Language Models
作者: Yanwei Li, Chengyao Wang, Jiaya Jia
发表: ECCV 2024
arXiv: https://arxiv.org/abs/2311.17043

基本信息

摘要

在这项工作中,我们提出了一种新颖的方法来解决视觉语言模型(VLMs)在视频和图像理解中的token生成挑战,称为LLaMA-VID

当前的VLMs虽然在图像描述和视觉问答等任务上表现出色,但在处理长视频时由于视觉token过多而面临计算负担。

LLaMA-VID通过用两个不同的token来表示每一帧,即上下文token和内容token,来解决这个问题。

上下文token根据用户输入编码整体图像上下文,而内容token封装了每一帧中的视觉线索。

这种双token策略显著减少了长视频的负载,同时保留了关键信息。

通常,LLaMA-VID使现有框架能够支持长达一小时的视频,并通过额外的上下文token提高了其上限。

它已被证明在大多数基于视频或图像的基准测试中优于先前的方法。

代码可在https://github.com/dvlab-research/LLaMA-VID上找到。

The proposed LLaMA-VID achieves leading performance on most of benchmarks with 7B LLMs

LLaMA-VID

LLaMA-VID

在用户指令下,LLaMA-VID通过接收单张图像或视频帧作为输入,并从语言模型(LLM)生成响应。

该过程从视觉编码器开始,将输入帧转换为视觉嵌入。

然后,文本解码器根据用户输入生成文本查询。在上下文注意力中,文本查询从视觉嵌入中聚合与文本相关的视觉线索。

为了提高效率,提供了将视觉嵌入下采样到各种token大小或单个token的选项。

接着,使用线性投影仪将文本引导的上下文token和视觉丰富的内容token构建出来,以表示时间 t t t 的每一帧。

最后,LLM 接收用户指令和所有视觉token作为输入,并给出响应。

Encoder and Decoder

提出的LLaMA-VID可以用于与单张图片或长视频进行交互。

为了清晰起见,我们假设输入图像是从视频序列中捕获的,如在时间 t t t,首先使用基于Transformer的视觉编码器来生成视觉嵌入 X t ∈ R N × C X_t \in \mathbb{R}^{N \times C} XtRN×C

这里, N = H / p × W / p N = H/p \times W/p N=H/p×W/p C C C 分别表示图像块的数量和嵌入通道。

对于基于ViT的骨干网络,图像块大小 p p p 通常设置为14。

同时,我们以用户指令为输入,并生成文本引导的查询 Q t ∈ R M × C Q_t \in \mathbb{R}^{M \times C} QtRM×C,其中 M M M 表示查询的数量。

如图2所示,这种跨模态交互主要发生在文本解码器中,可以轻松地使用BERT或QFormer实例化。

通过这种方式,文本查询 Q t Q_t Qt 包含与用户指令最相关的突出视觉线索。

Token Generation

通过文本查询 Q t Q_{t} Qt 和视觉嵌入 X t X_{t} Xt,我们可以轻松地为大型语言模型(LLMs)生成代表性token。

具体来说,上下文注意力被设计为聚合与文本相关的视觉特征,并将它们压缩成一个单一的上下文token。

如图2所示,它以 Q t Q_{t} Qt X t X_{t} Xt 作为输入,并制定上下文相关的嵌入 E t ∈ R 1 × C E_{t} \in \mathbb{R}^{1 \times C} EtR1×C 为:

E t = Mean ( Softmax ( Q t × X t T ) × X t ) E_{t} = \text{Mean}\left(\text{Softmax}\left(Q_{t} \times X_{t}^{T}\right) \times X_{t}\right) Et=Mean(Softmax(Qt×XtT)×Xt)

其中,Softmax 函数和 Mean 操作分别沿着 N N N M M M 维度进行。

与采用32个视觉查询作为 LLMs token的 QFormer 不同,我们仅使用文本查询 Q t Q_{t} Qt 来聚合具有高响应分数的视觉特征以输入指令。因此,与用户相关的最关键视觉线索被有效地保留在压缩嵌入中。

随后,使用线性投影器将嵌入 E t E_{t} Et 转换为上下文token E t T ∈ R 1 × C E_{t}^{T} \in \mathbb{R}^{1 \times C} EtTR1×C,这与 LLMs 的语言空间对齐。

同时,我们根据计算限制采用自适应池化策略对视觉嵌入进行处理,以产生内容token E t V ∈ R n × C E_{t}^{V} \in \mathbb{R}^{n \times C} EtVRn×C,其中 n ∈ [ 1 , N ] n \in [1, N] n[1,N]

例如,当输入单张图像时,我们保持视觉嵌入 X t X_{t} Xt 的原始分辨率,而对长视频进行下采样,将 X t X_{t} Xt 下采样为1个token。这种方法显著减少了每帧 LLMs 的开销,从而有效支持长达数小时的视频。

最后,生成的上下文token E t T E_{t}^{T} EtT 和内容token E t V E_{t}^{V} EtV 被连接起来表示时间 t t t 的帧。连同其他时间戳的帧,整个视频序列被转换为token格式的语言空间,然后用于生成来自大型语言模型(LLMs)的响应。

Token Generation

Training Strategy

Multimodal data distribution and instruction format for model training in each stage

三阶段训练:

  • Modality Alignment: 🔥 Context Attention、Projector ❄️ Visual Encoder、Text Decoder、LLM
  • Instruction Tuning: 🔥 Other ❄️ Visual Encoder
  • Long Video Tuning: 🔥 Other ❄️ Visual Encoder

Training settings of LLaMA-VID

实验

主实验

Comparison with leading methods on 4 zero-shot video QA datasets

Comparison with leading methods on the video-based generative performance benchmark

Comparison with leading methods on 8 benchmarks

消融实验

Comparison with different token types

Comparison with different token numbers

Comparison with different text decoders

总结

我们引入了LLaMA-VID,这是一种简单而有效的VLMs(视频语言模型)token生成方法。

LLaMA-VID背后的核心概念是用上下文token和内容token来表示图像。具体来说,上下文token是根据输入指令生成的,而内容token则是基于图像内容产生的。

根据预算,内容token可以被压缩为一个token或以未压缩的形式表达。这使我们能够以保留细节的方式表示单个图像,并且只需两个token就能高效地编码每个视频帧。

此外,我们还构建了一个用于理解时长为一小时的视频的指令数据集。

我们在多个基于视频和图像的基准测试上的实验证明了我们方法的优势。

我们希望LLaMA-VID能作为一个强大的高效视觉表示基准。

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

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

相关文章

leetcode_二叉树最大深度

对二叉树的理解 对递归调用的理解 对内存分配的理解 基础数据结构(C版本) - 飞书云文档 每次函数的调用 都会进行一次新的栈内存分配 所以lmax和rmax的值不会混在一起 /*** Definition for a binary tree node.* struct TreeNode {* int val;* …

【模拟仿真】基于区间观测器的故障诊断与容错控制

摘要 本文提出了一种基于区间观测器的故障诊断与容错控制方法。该方法通过构建区间观测器,实现对系统状态的上下边界估计,从而在存在不确定性和外部噪声的情况下进行高效的故障诊断。进一步地,本文设计了一种容错控制策略,以保证…

Ubuntu24.04LTS在线安装Docker引擎

Ubuntu24.04LTS在线安装Docker引擎 文章目录 Ubuntu24.04LTS在线安装Docker引擎1. 官网教程2. 安装Docker引擎1. 卸载旧版本2. 使用存储库apt安装1. 设置Docker的APT仓库(官网)2. 设置Docker的APT仓库(阿里云-推荐) 3. 安装1. 安装最新版2. 安装指定的版本 1. 官网教程 官网安…

directed-map cache简单示例

这张图的地址映射是基于直接映射缓存的策略进行的,以下是详细解释: 直接映射缓存的映射方式 缓存块号 (Cache Block Number): 使用公式 Cache块号 主存块号 % 缓存块总数 来决定主存地址在哪个缓存块中存储。比如,这里 Cache块总数 4&#…

SpringBoot配置相关的内容

依赖Starter和Parent 查依赖坐标网站:Maven Repository: Search/Browse/Explorehttps://mvnrepository.com/ 设置配置文件 配置文件相关的配置 yml多个数据的书写 配置文件的读取

基于Python的仓库管理系统设计与实现

背景: 基于Python的仓库管理系统功能介绍 本仓库管理系统采用Python语言开发,利用Django框架和MySQL数据库,实现了高效、便捷的仓库管理功能。 用户管理: 支持员工和管理员角色的管理。 用户注册、登录和权限分配功能&#x…

使用tauri + naiveAdmin 构建桌面应用程序

非常好的如何部署naiveAdmin的文档笔记: 非常详细的 https://sx-code.github.io/wiki/adminpro/02_project_prepare/04_%E9%A1%B9%E7%9B%AE%E8%AE%BE%E7%BD%AE.html 阅读原码ing 前端框架 NaiveUiAdmin Rust 数据处理 ing … Mysql 数据库使用 ing …

RGB与YCbCr转换算法

目录 RGB与YCbCr转换算法RGB与YCbCr色域介绍RGB模型YCbCr色域简介YCbCr的应用YUV 和 YCbCr 的区别 色彩转换公式 RGB 转 YCbCr 实现RGB 转 YCbCr 的 Matlab 实现RGB 转 YCbCr 的 FPGA 实现 YCbCr 转 RGB 实现YCbCr 转 RGB 的 Matlab 实现YCbCr 转 RGB 的 FPGA 实现 RGB与YCbCr转…

【STM32】I2C通信协议

文章目录 I2C通信协议简介I2C协议硬件规定I2C协议软件规定I2C时序基本单元I2C典型时序 参考 STM32硬件I2C与软件模拟I2C超详解 I2C通信协议简介 I2C 也叫 IC、IIC (Inter-Integrated Circuit) ,集成电路总线是由 Phiilps 公司开发的两线式串行总线,用于…

大数据挖掘

大数据挖掘 数据挖掘 数据挖掘定义 技术层面: 数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中、人们事先不知道的、但又潜在有用的信息的过程。 数据准备环节 数据选择 质量分析 数据预处理 数据仓库 …

leetcode101:对称二叉树

给你一个二叉树的根节点 root , 检查它是否轴对称。 示例 1: 输入:root [1,2,2,3,4,4,3] 输出:true示例 2: 输入:root [1,2,2,null,3,null,3] 输出:false提示: 树中节点数目在范围…

湘潭大学软件工程算法设计与分析考试复习笔记(一)

文章目录 前言随机类(第七章)随机概述数值随机化舍伍德拉斯维加斯蒙特卡罗 模拟退火遗传人工神经网络 回溯(第五章)动态规划(第四章)后记 前言 考试还剩十一天,现在准备开始复习这门课了。好像全…

Win11专业版Docker安装、配置记录

零,系统环境配置 首先,安装Docker需要系统支持开启硬件虚拟化及Hyper-V功能,所以这里需要Win10/11的专业版,这样才能进行Docker for Windows软件安装。 1,硬件虚拟化 至于如何开启硬件虚拟化,自行百度即…

【Android】线程池的初见

引言 在Android当中根据用途分为主线程与子线程,主线程当中主要处理与界面相关的操作,子线程主要进行耗时操作。除了Thread本身以外,在Android当中还有很多扮演者线程的角色,比如AsyncTask( 底层为线程池,…

春秋云镜-2022网鼎杯

flag1 进入网站,发现是wordpress,这种一般都不会有啥直接漏洞,应该是插件漏洞,或者弱口令 fscan扫描ip 好像没扫出啥东西 wp-login进入后台 爆破密码,弱口令admin,123456,之前lazysysadmin好…

js ResizeObserver API

一、ResizeObserver 是什么 ResizeObserver 是一个浏览器提供的 JavaScript API,用于监测一个元素的大小变化。它可以帮助开发者在元素的宽度或高度发生改变时执行某些操作,比如调整布局、重新渲染内容等。 二、Resize Observer和监听resize的区别及其…

《探索Zynq MPSoC》学习笔记(三)

引言:本文简要介绍FPGA器件技术发展以及当今FPGA器件的体系架构和特性。 第二章 FPGA、Zynq和Zynq MPSoC(2) 在本章涵盖的三种器件类型中,FPGA是建立时间最长的,也是Zynq和Zynq MPSoC器件PL元件的基础。因此&#xf…

支持用户注册和登录、发布动态、点赞、评论、私信等功能的社交媒体平台创建!!!

需要整体源代码的可以在我的代码仓下载https://gitcode.com/speaking_me/social-media-platformTest.git 社交媒体平台 描述:社交媒体平台需要支持用户注册、发布动态、点赞、评论、私信等功能。 技术栈: 前端:React, Angular, Vue.js后端…

跨平台WPF框架Avalonia教程 十五

ListBox 列表框 列表框从元素源集合中显示多行元素,并允许选择单个或多个。 列表中的元素可以组合、绑定和模板化。 列表的高度会扩展以适应所有元素,除非特别设置(使用高度属性),或由容器控件设置,例如…

STL之mapset续|红黑树篇

STL之map&set续|红黑树篇 红黑树红黑树的规则红黑树的模拟实现 map&set的模拟实现封装map/set关于红黑树的复用红黑树模板参数set的const迭代器问题 红黑树 红黑树也是一种搜索二叉树,它通过颜色和规则控制树上没有一条路径会比其他路径长两倍,…