清华和字节联合推出的视频理解大模型video-SALMONN(ICML 2024)
video-SALMONN: Speech-Enhanced Audio-Visual Large Language Models
论文信息
paper:https://arxiv.org/abs/2406.15704
code:https://github.com/bytedance/SALMONN/
AI也会「刷抖音」!清华领衔发布短视频全模态理解新模型 | ICML 2024
video-SALMONN:语音增强的端到端视听大语言模型
论文概要
- 提出一个端到端的视频理解多模态大模型,可以同时输入视频的语音、音频、视频帧,输出视频描述。
- 论文框架包含三点设计:1)音视频在时间维度上的对齐模块;2)多分辨率因果Q-Former;3)多样性损失函数和混合未配对音视频数据训练。
摘要翻译
作为使用音频-视觉大型语言模型(av-LLMs)进行视频理解的一个关键但研究不足的方面,语音理解是至关重要的。本文提出了video-SALMONN,这是一个单一的端到端av-LLM,用于视频处理,它不仅能理解视觉帧序列、音频事件和音乐,还能理解语音。为了获得语音理解所需的细粒度时间信息,同时保持对其他视频元素的高效处理,本文提出了一种新颖的多分辨率因果Q-Former(MRC Q-Former)结构,以连接预训练的音频-视觉编码器和骨干大型语言模型。此外,为了避免帧或模态的主导,我们提出了专门的训练方法,包括多样性损失和非成对视听混合训练方案。在引入的语音-视听评估基准(SAVE)上,video-SALMONN在视频QA任务上实现了超过25%的绝对准确率提升,在包含人类语音的视听QA任务上实现了超过30%的绝对准确率提升。此外,video-SALMONN在前所未有的任务上展示了卓越的视频理解和推理能力。我们的训练代码和模型检查点可在https://github.com/bytedance/SALMONN/ 上获得。
技术细节
输入处理
1)分别采用Whisper编码器(Speech Encoder)和BEATs编码器(Audio Encoder)来对同一音频流中的语音和非语音音频进行编码,采样频率为50Hz
2)采用InstructBLIP中的视觉编码器(Visual Encoder)来对视频中的帧进行独立地编码,视频帧采样频率为2Hz,即1秒2帧
音视频对齐
对应图中灰色块(Temporal Fine-grained Synchronisation)
按照AI也会「刷抖音」!清华领衔发布短视频全模态理解新模型 | ICML 2024中的解释,音频编码器每1秒音频对应50个向量,而视频编码器每1秒视频2帧,对应64个向量。
因此,三个序列在时间维度上,以视频帧为基准每0.5秒对齐并拼接一次(temporal fine-grained synchronisation),因为语音音频序列略短于视觉序列,短的部分加上zero padding。
MRC Q-Former
多分辨率因果Q-Former对应上图中绿色块
1)首先在特征维度上,将三个向量进行拼接,也就是论文中的公式(1)
2)采用不同的步长(即不同的分辨率)对序列进行Q-Former(注意力机制)计算。以图2为例(假设视频的序列长度为100),在高分辨率下,步长k取5,query取2,则会产生一个长度为(100/5)*2=40的向量输出。在低分辨率下,步长k取25,query取10,则最终也会产生一个长度为(100/25)*10=40的向量输出,这对应论文中的公式(2)
3)Q-Former中的注意力机制使用了mask机制,如图3所示,即前面的序列不能看见后面的序列信息
4)对每个不同分辨率Q-Former的输出向量进行一个线性映射后再进行加和,得到最终的一个向量输出,这对应论文中的公式(4)
5)最后将Q-Former输出的向量结合文本prompt一起送入大语言模型中,对应论文中的公式(5)
论文中也解释了这种多分辨率划窗设计的好处:
滑动窗口设计使得输入序列的长度可以根据输入特征序列的长度而变化。因此,与在整个序列上使用单一的Q-Former相比,它在保留信息的程度与计算和存储成本之间实现了更好的平衡。
此外,论文中也提到了不同分辨率的Q-Former的参数是共享的
在应用较小窗口以获得更细粒度的时间尺度时,会使用较少的查询向量来减少信息容量,反之亦然。请注意,尽管对于不同的分辨率保持查询向量的不同,但MRC Q-Former的其余参数在所有分辨率级别上都是共享的,因为模态对齐的任务是相同的。
训练策略
首先提出了一个diversity loss,即论文中的公式(6),该loss的设计目的是使同一个分辨率下Q-Former输出的向量彼此不相近,即作者希望每个输出的向量能表征不同的信息。
原文是这样解释的:
视频问答(video QA)等视频任务的训练数据通常只需要一到两个关键帧,而输出查询往往倾向于重复捕捉相同的信息。因此,提出了一种新颖的多样性损失,以鼓励MRC Q-Former提取输入序列的更多不同方面。
请注意,多样性损失仅在低分辨率级别上需要,因为在这些级别上窗口中有足够的帧来提取多样化的信息。
最后,为了避免出现模态主导的问题,论文采用了部分音视频不配对的训练数据,来迫使模型是视频或者音频中来学习。
原文是这样说的:
此外,为了避免视频中的模态主导现象,除了少量成对的音视频数据外,我们提出了一种混合训练方案,即在训练集中的一部分增加非成对的音视频数据,并在提示中结合音频和视频的原始任务。这样,模型就被强制要求从音频和视频输入中提取信息,而不是依赖于某个主导模态。这种策略改善了不同模态之间的平衡,并是导致音视频理解和共同推理能力的关键因素。
相关文章:

清华和字节联合推出的视频理解大模型video-SALMONN(ICML 2024)
video-SALMONN: Speech-Enhanced Audio-Visual Large Language Models 论文信息 paper:https://arxiv.org/abs/2406.15704 code:https://github.com/bytedance/SALMONN/ AI也会「刷抖音」!清华领衔发布短视频全模态理解新模型 | ICML 2024 …...
从数据爬取到可视化展示:Flask框架与ECharts深度解析
目录 🔹 Flask框架源码解析 Flask应用初始化路由与视图函数请求与响应中间件 🔹 ECharts可视化精讲 ECharts安装与配置基本图表类型图表样式与交互高级图表配置与数据动态更新实战:结合Flask与ECharts展示爬取数据 Flask框架源码解析 &…...
【jvm】类加载分几步
目录 1. 加载(Loading)2. 链接(Linking)2.1 验证(Verification)2.2 准备(Preparation)2.3 解析(Resolution) 3. 初始化(Initialization࿰…...
使用Apache http client发送json数据(demo)
POM依赖 : <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.12</version></dependency><dependency><groupId>com.alibaba</groupId&g…...

读零信任网络:在不可信网络中构建安全系统07设备信任
1. 设备信任 1.1. 在零信任网络中建立设备信任至关重要,这也是非常困难的一个环节 1.2. 建立设备信任是基石,直接影响零信任网络架构的成败 1.3. 大多数网络安全事件都和攻击者获得信任设备的控制权相关,这种情况一旦发生,信任…...

【Java算法专场】前缀和(下)
目录 和为 K 的子数组 算法分析 算法步骤 算法代码 算法示例 和可被 K 整除的子数组 算法分析 同余定理 负数取余 算法步骤 算法代码 算法示例 连续数组 算法分析 算法步骤 算法代码 算法示例 矩阵区域和 算法分析 算法步骤 算法代码 算法示例 算法分析 …...
音视频相关文章总目录
为了方便各位观看,本文置顶,以目录形式汇集我写过的大部分音视频专题文章。之后文章更新,本目录也会同步更新。写得不好和零零散散的文章就不放在这里了😅 : 音视频入门基础:像素格式专题系列文章&#x…...

7月31日MySQL学习笔记
今日内容: mysql: 行列转换 数据类型 函数 触发器 存储过程 事务 索引(还没讲) 三范式 JDBC连接数据库的6个步骤 三握四挥 行列转换 第一步 新建要转换的列 select name, 1 as 语文, 1 as 数学, 1 as 英语 from t_score GROUP BY name 第二步 对每一列填入值…...

什么是容器查询?分享 1 段优质 CSS 代码片段!
本内容首发于工粽号:程序员大澈,每日分享一段优质代码片段,欢迎关注和投稿! 大家好,我是大澈! 本文约 700 字,整篇阅读约需 1 分钟。 今天分享一段优质 CSS 代码片段,使用容器查询…...

【linux深入剖析】初识线程---线程概念
🍁你好,我是 RO-BERRY 📗 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 🎄感谢你的陪伴与支持 ,故事既有了开头,就要画上一个完美的句号,让我们一起加油 目录 1. Linux线程概念什么是线…...

【MySQL】索引——索引的引入、认识磁盘、磁盘的组成、扇区、磁盘访问、磁盘和MySQL交互、索引的概念
文章目录 MySQL1. 索引的引入2. 认识磁盘2.1 磁盘的组成2.2 扇区2.3 磁盘访问 3. 磁盘和MySQL交互4. 索引的概念4.1 索引测试4.2 Page4.3 单页和多页情况 MySQL 1. 索引的引入 海量表在进行普通查询的时候,效率会非常的慢,但是索引可以解决这个问题。 -…...
python部署flask项目
python部署flask项目 1. 准备服务器2. 设置服务器环境3. 创建虚拟环境并安装项目依赖4. 配置Gunicorn5. 配置Nginx6. 设置Supervisor(可选)7. 测试部署 将Flask项目部署到服务器的流程大致如下: 1. 准备服务器 首先,需要准备一台…...

数据建模标准-基于事实建模
前情提要 数据模型定义 DAMA数据治理体系中将数据模型定义为一种文档形式,数据模型是用来将数据需求从业务传递到IT,以及在IT内部从分析师、建模师和架构师到数据库设计人员和开发人员的主要媒介; 作用 记录数据需求和建模过程中产生的数据定义&…...

量产部落SM2258XT开卡软件,SM2258XT主控128G SSD固态卡死修复
故障现象:连接此固态硬盘后电脑就会卡死,拔掉重新连接概率性显示盘符,显示了之后也不能正常操作,一点击打开,电脑就立马卡死。 解决过程:下载了很多款量产工具,都不能开卡成功,点击…...

《零散知识点 · 自定义 HandleMapping》
📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…...
谈谈我对微服务的理解2.0
文章目录 一、引出问题二、微服务2-1、微服务的技术2-2、微服务的目的 三、微服务的拆分四、不连表查询五、微服务的好处六、微服务的坏处七、应付当下 这篇文章原本叫《如何做到不连表查询》,因为我对这个事一直耿耿于怀。在上家公司我经常被连表折磨(连…...

ECCV 2024前沿科技速递:GLARE-基于生成潜在特征的码本检索点亮低光世界,低光环境也能拍出明亮大片!
在计算机视觉与图像处理领域,低光照条件下的图像增强一直是一个极具挑战性的难题。暗淡的光线不仅限制了图像的细节表现,还常常引入噪声和失真,极大地影响了图像的质量和可用性。然而,随着ECCV 2024(欧洲计算机视觉会议…...

前端低代码必备:FrontendBlocks 4.0版本重磅发布,助力Uniapp-X原生APP开发
项目介绍 本软件是一款强大的所见即所得前端页面设计器,是低代码开发领域的基础设施,生成的代码不依赖于任何框架,实测可以将前端布局工作的耗时减少80%以上,最关键的是,它实现了人人都可以写前端页面的梦想。 不用写…...

如何将PyCharm 中使用 PDM 管理的 Django 项目迁移到 VS Code 并确保一切正常工作?
嗨,我是兰若姐姐,相信很多小伙伴都遇到过这种情况,使用pycharm用习惯了,想换个编辑器,比如换成vscode,今天就告诉大家,如果轻松切换到vscode 步骤 1:在 VS Code 中打开项目 打开 V…...
认识Android Handler
“Android Handler” 通常指的是 Android 开发中的 Handler 类,它是 Android SDK 的一部分,用于管理消息队列和线程之间的通信。它在 Android 开发中非常有用,特别是在计划消息和可运行对象(Runnables)在未来某个时间点…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...

shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...

R 语言科研绘图第 55 期 --- 网络图-聚类
在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...