当前位置: 首页 > news >正文

【论文笔记】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能作为一个强大的高效视觉表示基准。

相关文章:

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

🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 基本信息 标题: LLaMA-VID: An Image is W…...

使用Web Storage API实现客户端数据持久化

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 使用Web Storage API实现客户端数据持久化 使用Web Storage API实现客户端数据持久化 使用Web Storage API实现客户端数据持久化…...

基于STM32F103的秒表设计-液晶显示

基于STM32F103的秒表设计-液晶显示 仿真软件: Proteus 8.17 编程软件: Keil 5 仿真实现: 在液晶1602上进行秒表显示,每100ms改变一次数值,一共三个按键,分为启动按键、暂停按键、复位按键。 电路介绍: 前面章节里已经和大家介绍了使用数码管设计的秒表,本次仿真将数…...

ReentrantLock的具体实现细节是什么

在 JDK 1.5 之前共享对象的协调机制只有 synchronized 和 volatile,在 JDK 1.5 中增加了新的机制 ReentrantLock,该机制的诞生并不是为了替代 synchronized,而是在 synchronized 不适用的情况下,提供一种可以选择的高级功能。 在 Java 中每个对象都隐式包含一个 monitor(监…...

【JavaScript】this 指向

1、this 指向谁 多数情况下,this 指向调用它所在方法的那个对象。即谁调的函数,this 就归谁。 当调用方法没有明确对象时,this 就指向全局对象。在浏览器中,指向 window;在 Node 中,指向 Global。&#x…...

DB Type

P位 p 1时段描述符有效,p 0时段描述符无效 Base Base被分成了三个部分,按照实际拼接即可 G位 如果G 0 说明描述符中Limit的单位是字节,如果是G 1 ,那么limit的描述的单位是页也就是4kb S位 S 1 表示代码段或者数据段描…...

python-返回函数

Python的函数不但可以返回int、str、list、dict等数据类型,还可以返回函数! 例如,定义一个函数 f(),我们让它返回一个函数 g,可以这样写: def f()&#xff…...

python语言基础-5 进阶语法-5.2 装饰器-5.2.1 闭包

声明:本内容非盈利性质,也不支持任何组织或个人将其用作盈利用途。本内容来源于参考书或网站,会尽量附上原文链接,并鼓励大家看原文。侵删。 5.2 装饰器 python中的装饰器相当于java中的注解。装饰器用于为函数添加某些修饰性、…...

用vscode编写verilog时,如何有信号定义提示、信号定义跳转(go to definition)、模块跳转(跨文件跳转)这些功能

(一)方法一:安装插件SystemVerilog - Language Support 安装一个vscode插件即可,插件叫SystemVerilog - Language Support。虽然说另一个插件“Verilog-HDL/SystemVerilog/Bluespec SystemVerilog”也有信号提示及定义跳转功能&am…...

MQTT+Springboot整合

1.mqttconfig配置(配置参数是从数据库查出来的) package com.terminal.dc3.api.center.manager.config;import com.collection.common.utils.StringUtils; import com.collection.system.mapper.MqttConfigMapper; import lombok.Data; import org.springframework.beans.fact…...

ERROR TypeError: AutoImport is not a function

TypeError: AutoImport is not a function 原因:unplugin-auto-import 插件版本问题 Vue3基于Webpack,在vue.config.js中配置 当unplugin-vue-components版本小于0.26.0时,使用以下写法 const { defineConfig } require("vue/cli-se…...

软考教材重点内容 信息安全工程师 第 3 章 密码学基本理论

(本章相对老版本极大的简化,所有与算法相关的计算全部删除,因此考试需要了解各个常 用算法的基本参数以及考试中可能存在的古典密码算法的计算,典型的例子是 2021 和 2022 年分别考了 DES 算法中的 S 盒计算,RSA 中的已…...

微信小程序 https://thirdwx.qlogo.cn 不在以下 downloadFile 合法域名列表中

授权登录后,拿到用户头像进行加载,但报错提示: https://thirdwx.qlogo.cn 不在以下 downloadFile 合法域名列表中 解决方法一(未完全解决,临时处理):在微信开发者工具将不校验...勾上就可以访问…...

Linux性能优化之火焰图的起源

Linux火焰图的起源与性能优化专家 Brendan Gregg 密切相关,他在 2011 年首次提出这一工具,用于解决性能分析过程中可视化和数据解读的难题。 1. 背景:性能优化的需求 在现代计算中,性能优化往往需要对程序执行中的热点和瓶颈进行…...

《Markdown语法入门》

文章目录 《Markdown语法入门》1.标题2.段落2.1 换行2.2分割线 3.文字显示3.1 字体3.2 上下标 4. 列表4.1无序列表4.2 有序列表4.3 任务列表 5. 区块显示6. 代码显示6.1 行内代码6.2 代码块 7.插入超链接8.插入图片9. 插入表格 《Markdown语法入门》 【Typora 教程】手把手教你…...

Controller Baseband commands速览

目录 一、设备连接与通信控制类(34条) 1.1. 连接参数相关 1.1.1. 连接建立超时设置 1.1.2. 链路监督超时设置 1.1.3. Page操作超时设置 1.1.4. 扩展Page操作超时设置 1.1.5. 安全连接主机支持 1.2. 扫描操作相关 1.2.1. 扫描启用与禁用 1.2.2.…...

Redisson 3.39.0 发布

Redisson 3.39.0 发布,官方推荐的 Redis 客户端 Redisson 3.38.0 ,一个 Java 编写的 Redis 客户端。 此版本更新内容如下: RTopic 对象的 partitioning 实现 RShardedTopic对象的 partitioning 实现 RReliableTopic 对象的 partitioning 实…...

高阶C语言补充:柔性数组

C99中,结构体中最后一个元素允许时未知大小的数组,这就叫做柔性数组成员。 vs编译器也支持柔性数组。 之所以把柔性数组单独列出,是因为: 1、柔性数组是建立在结构体的基础上的。 2、柔性数组的使用用到了动态内存分配。 这使得柔…...

S32K324信息安全-使用IC5000/IC5700进行debug口解锁

文章目录 前言winIDEA配置参考 前言 由于信息安全要求,需要对debug口(JTAG)进行加密,本文介绍基于固定密码的方式,使用IC5000/IC5700进行debug口解锁的方法 winIDEA配置 点击 Hardware | CPU Options | Reset | Ini…...

简单实现QT对象的[json]序列化与反序列化

简单实现QT对象的[json]序列化与反序列化 简介应用场景qt元对象系统思路实现使用方式题外话 简介 众所周知json作为一种轻量级的数据交换格式,在开发中被广泛应用。因此如何方便的将对象数据转为json格式和从json格式中加载数据到对象中就变得尤为重要。 在python类…...

别再被Excel文件‘炸’了!手把手教你用ZipSecureFile.setMinInflateRatio解决Apache POI的Zip Bomb报错

深度解析Apache POI的Zip Bomb防护机制与安全实践 当Java开发者使用Apache POI处理用户上传的Excel文件时,可能会突然遭遇"Zip bomb detected!"的报错。这个看似简单的错误背后,实际上涉及文件安全检测、内存防护和系统稳定性等多重考量。本文…...

ARM LDM指令原理与应用详解

1. ARM LDM指令架构解析LDM(Load Multiple)指令是ARM架构中用于批量加载数据的核心指令之一。作为一位长期从事ARM底层开发的工程师,我经常需要在中断处理、上下文切换等场景中使用LDM指令。与单寄存器加载指令相比,LDM指令通过单条指令即可实现从连续内…...

基于React与Docker构建可定制个人仪表盘:homepage项目实战指南

1. 项目概述:一个现代、轻量的个人仪表盘如果你和我一样,每天上班第一件事就是打开十几个浏览器标签页,在邮箱、项目管理工具、服务器监控、待办清单、常用文档之间来回切换,那么你一定能理解那种“数字工作台”杂乱无章带来的烦躁…...

NS-USBLoader完整指南:Switch文件管理、RCM注入与游戏传输的一站式解决方案

NS-USBLoader完整指南:Switch文件管理、RCM注入与游戏传输的一站式解决方案 【免费下载链接】ns-usbloader Awoo Installer and GoldLeaf uploader of the NSPs (and other files), RCM payload injector, application for split/merge files. 项目地址: https://…...

UVa 215 Spreadsheet Calculator

题目分析 本题要求实现一个简单的电子表格计算器。电子表格是一个矩形网格,每个单元格包含一个整数或者一个表达式。表达式由整数常量、单元格引用以及 和 - 运算符组成,计算时遵循从左到右的结合顺序。 输入首先给出行数 rrr 和列数 ccc,其…...

零碳园区的能源供给成本主要包括哪些方面?

零碳园区的能源供给以“绿色低碳、协同高效”为核心,区别于传统园区以化石能源为主的供给模式,其成本构成更具多样性和综合性,涵盖“前期建设投入、中期运营消耗、后期维护补充”全生命周期,且与绿电布局、技术选型、政策导向密切…...

3分钟快速上手:Sonar CNES Report代码质量报告生成完整指南

3分钟快速上手:Sonar CNES Report代码质量报告生成完整指南 【免费下载链接】sonar-cnes-report Generates analysis reports from SonarQube web API. 项目地址: https://gitcode.com/gh_mirrors/so/sonar-cnes-report Sonar CNES Report 是一个强大的开源工…...

R3nzSkin英雄联盟皮肤修改器:终极免费皮肤体验完整指南

R3nzSkin英雄联盟皮肤修改器:终极免费皮肤体验完整指南 【免费下载链接】R3nzSkin Skin changer for League of Legends (LOL) 项目地址: https://gitcode.com/gh_mirrors/r3n/R3nzSkin R3nzSkin是一款专为《英雄联盟》玩家设计的开源内存修改工具&#xff0…...

ARM设备运行x86_64程序:Box64高效兼容方案深度解析

ARM设备运行x86_64程序:Box64高效兼容方案深度解析 【免费下载链接】box64 Box64 - Linux Userspace x86_64 Emulator with a twist, targeted at ARM64, RV64 and LoongArch Linux devices 项目地址: https://gitcode.com/gh_mirrors/bo/box64 你是否曾在AR…...

苹果与伊利诺伊大学:四步AI绘图实现媲美五十步生成质量能力提升

这项由苹果公司(Apple)与伊利诺伊大学香槟分校(UIUC)联合开展的研究,于2026年5月以预印本形式发布在arXiv平台,论文编号为arXiv:2605.08078。研究提出了一种名为"正则化轨迹模型"(Nor…...