Video-LLaMA 开源,大语言模型也能读懂视频了!

news2024/11/25 23:48:32

出品人:Towhee 技术团队

作者:张晨

架构

Video-LLaMA 旨在使冻结的 LLM 能够理解视频中的视觉和听觉内容。如图所示,本文设计了两个分支,即视觉语言分支和音频语言分支,分别将视频帧和音频信号转换为与 LLM 的文本输入兼容的查询表示。

alt

1.1 视觉-语言分支

视觉语言分支旨在使 LLM 能够理解视觉输入。如图左侧所示,它由用于从视频帧中提取特征的冻结预训练图像编码器、用于将时间信息注入视频帧的位置 embedding 层、用于聚合帧的视频 Q-former 组成级表示和线性层,用于将输出视频表示投影到与 LLM 的文本 embeddings 相同的维度。

1.2 音频分支

为了处理给定视频的听觉内容,本文引入了音频语言分支。具体来说,它包括一个预训练的音频编码器,(用的是用预训练的 Imagebind),它用于计算给定一小段原始音频的特征,一个位置 embedding 层,用于将时间信息注入音频片段,一个音频 Q-former,用于融合不同音频片段的特征,和一个线性层,用于将音频表示映射到 LLM 的 embedding 空间。

训练

本文分别训练视觉语言和音频语言分支。第一阶段使用大规模视觉-字幕数据集进行训练,第二阶段使用高质量的指令遵循数据集进行fine-tuning训练。

2.1 视觉-语言分支训练

对于预训练视觉语言分支,本文使用了 Webvid-2M,这是一个大型短视频数据集,带有来自素材网站的文本描述。此外,使用了图像标题数据集 CC595k,该数据集来自 CC3M 。在预训练阶段采用视频到文本生成任务,即给定视频表示,促使冻结的 LLM 生成相应的文本描述。本文发现很大一部分文字描述不足以反映视频的全部内容。因此,视频中的视觉语义与视频描述中的文本语义并不完全一致。然而,这一阶段旨在利用大量数据并使视频特征包含尽可能多的视觉知识。

经过预训练阶段后,模型可以生成视频中的信息内容,但其遵循指令的能力有所下降。因此,在第二阶段,本文 fine-tune 使用高质量的指令数据来构建模型,整合了来自 MiniGPT-4的图像细节描述数据集、来自 LLaVA 的图像指令数据集和来自 Video-Chat 的视频指令数据集。在 fine-tuning 之后,Video-LLaMA 在遵循指令和理解图像和视频方面表现出非凡的能力。

2.2 音频分支训练

由于此类数据的稀有性,直接使用音频文本数据训练音频语言分支非常具有挑战性。音频语言分支中可学习参数的目标是将冻结音频编码器的输出 embedding 与 LLM 的 embedding 空间对齐。鉴于音频文本数据的稀缺性,本文采用变通策略来实现这一目标。用作音频编码器的 ImageBind 具有将不同模态的 embeddings 对齐到一个公共空间的非凡能力,在跨模态检索和生成任务上展示了令人印象深刻的性能。由于音频文本数据的稀缺性和视觉文本数据的丰富性,本文使用视觉文本数据训练音频语言分支,遵循与视觉分支相同的数据和过程。由于 ImageBind 提供的共享 embedding 空间,Video-LLaMA 展示了在推理过程中理解音频的能力,即使音频接口从未在音频数据上进行过训练。

限制

尽管 Video-LLaMA 在理解视频中的视觉和听觉内容方面表现出了令人印象深刻的能力,但它仍处于早期原型阶段并且存在一些局限性,包括:(1) 有限的感知能力:Video-LLaMA 的性能受到质量和当前训练数据集的规模。本文正在积极构建高质量的音频-视频-文本对齐数据集,以增强模型的感知能力(2) handle 长视频的能力有限。长视频(如电影和电视节目)包含大量信息,对计算资源提出更高要求。这一挑战仍然是研究界正在积极努力解决的一个关键问题(3)幻觉。 Video-LLaMA 继承了冻结 LLM 的幻觉问题。未来更强大的 LLM 的进步有望缓解这个问题。

参考链接:

代码地址:https://github.com/DAMO-NLP-SG/Video-LLaMA 论文地址:https://arxiv.org/abs/2306.02858 在线测试:https://huggingface.co/spaces/DAMO-NLP-SG/Video-LLaMA

🌟全托管 Milvus SaaS/PaaS 即将上线,由 Zilliz 原厂打造!覆盖阿里云、百度智能云、腾讯云、金山云。目前已支持申请试用,企业用户 PoC 申请或其他商务合作请联系 business@zilliz.com。


  • 如果在使用 Milvus 或 Zilliz 产品有任何问题,可添加小助手微信 “zilliz-tech” 加入交流群。 ​
  • 欢迎关注微信公众号“Zilliz”,了解最新资讯。 alt

本文由 mdnice 多平台发布

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

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

相关文章

首次使用云服务器搭建网站(一)

这是本人第一次使用云服务器搭建网站。 一、挑选云服务器 1、我此次使用的是腾讯云赠送的免费云服务器。 2、购买后,进入腾讯云总控制台。 3、点击云服务、云服务器、实例,进入云服务器的实例界面 4、大致就能看到这样一个界面 二、重装系统 腾讯云允许系…

医生出国访学有哪些好处?

医生出国访学有许多好处。在国外访学可以提供医生们与世界上其他国家的医学专家进行交流和合作的机会,从而拓宽他们的学术视野。下面是知识人网小编整理的一些出国访学的好处: 1. 学术交流:出国访学可以让医生们接触到不同国家的医学领域的最…

技术干货|如何解决工业缺陷检测小样本问题?

原创 | 文 BFT机器人 在工业生产制造中,由于生产过程是一个多因素耦合的复杂过程,生产过程中的任何异常都会导致产品缺陷产生,及时识别异常产品的缺陷模式是提高生产质量和生产效率的有效途径,所以缺陷检测具有十分重要的研究意义…

备份手机、电脑微信聊天记录并恢复

文章目录 前言一、手机聊天记录备份至电脑,再恢复1、在电脑新建一个文件夹保存备份文件2、按照下图操作3、最后备份文件大小4、恢复至手机 二、手机聊天记录同步至电脑1、在手机点击【我】--【设置】--【聊天】--【聊天记录迁移与备份】-【迁移】 总结 前言 最近需…

灰度图像点运算之线性变换

目录 note code test note // g(x,y) a * f(x,y) b code void line_convert_fun(uchar& in, uchar& out) {out -1 * in 255; } void img_line_convert(Mat& src, Mat& res) {if (src.empty()) {printf("src empty\n");return;}int src_rows…

【H5】移动端,常见界面布局模板

系列文章 【移动设备】iData 50P 技术规格 本文链接:https://blog.csdn.net/youcheng_ge/article/details/130604517 【H5】avalon前端数据双向绑定 本文链接:https://blog.csdn.net/youcheng_ge/article/details/131067187 【H5】安卓自动更新方案&a…

数据库入门上篇(数据库基础概念知识)

在这篇文章里,笔者将简单介绍数据库的起源和发展,数据库的分类,读完这篇文章,大家就对数据库有一个大概了解,也就是知道我们该学什么样的东西 为什么需要数据库 在如今的信息时代,各行各业每天都会产生大量…

11. python从入门到精通——异常处理及程序调试

目录 异常概述 异常处理语句主要有四种 程序调试:Python有两种常用调试方法 异常概述 异常:异常就是出现错误并且会中断程序的正常执行 异常处理语句主要有四种 示例库:在输入浮点数或除数为0时会异常 def division():功能:分苹果print…

【JMeter】threadNum:将接口查询结果列表按顺序赋值给各线程

使用JMeter做性能测试会遇到这么一个场景:后面的请求需要根据前面的查询列表结果通过正则表达式提取器取值后赋值,而后面用户的赋值必须是唯一的,此时该如何做? 如果按编程思维来说,这个问题并不难。只需要把前面的结…

他们都开始偷偷学习高性能计算了 | 学习高性能计算需要哪些前置知识?

随着大模型的越演越烈,高性能计算这一领域被越来越多的人所熟知。未来的超算互联网时代,不懂高性能计算更是难以适应未来时代的发展与变化。很多同学都想学习高性能计算,今天作为国内首家专注高性能计算人才培养的专业机构就帮大家梳理一下&a…

接连三预测成真,75%的参与率,华为、阿里、腾讯纷纷介入

Cartner预测:75%参与率 去年,Cartner预测,75%的大型企业将使用至少四种低代码/无代码开发工具,用于IT应用开发! 可以感受的到,这几年低代码以突飞猛进的速度在各领域中得到应用。可以预见的是,…

如何 Java 中的大量的 if else 判断?

目录 问题出现: 如何 Java 中的大量的 if else 判断? 解决方案: 1.策略模式 2.工厂模式 3.映射表 4.反射配置文件------极力推荐使用!!!!! 问题出现: 如何 Java 中的…

STM32F407ZGT6 LQFP144 uart 打印输出

STM32F407ZGT6 AX58100 ETHERCAT芯片软件,需要查看SSC 协议栈运行情况,UART输出状态信息。 STM32F407ZGT6 驱动库使用标准库,虽然老,但是够用。 1.STM32F407ZGT6 芯片情况 STM32F407ZGT6 作为AX58100 的主控 2.板子硬件 STM3…

mysql双主不一致数据修复

参考: pt-table-checksum — Percona Toolkit Documentation pt-table-sync — Percona Toolkit Documentation #对比host1 test库与备库差别 pt-table-checksum hhost1,proot,P3306,uroot -d test --recursion-method processlist --no-check-binlog-format -…

Spring Boot进阶(52):Spring Boot 如何集成Flyway并初始化执行 SQL 脚本?| 超级详细,建议收藏

1. 前言🔥 在我们的认知中,我们会使用 SVN 或 Git 进行代码的版本管理。但是,我们是否好奇过,数据库也是需要进行版本管理的呢? 在每次发版的时候,我们可能都会对数据库的表结构进行新增和变更,…

微机保护的数据采集系统(1)

一、模拟五输入电路概述 模拟量输入电路是微机保护装置中很重要的电路。保护装置的动作速度和测量精确度等性能都与该电路密切相关。模拟量输入电路的主要作用是隔离、规范输入电压及完成模数变换,以便与CPU接口,完成数据采集任务。因此这部分电路又称数…

iOS —— xcode14兼容 iOS9~iOS10系统

xcode14兼容 iOS9~iOS10系统 在Xcode升级到Xcode14以后,系统的支持版本升级到了iOS11.0。但是我们项目需要支持iOS9,脚本打包错误提示: The iOS deployment target IPHONEOS_DEPLOYMENT_TARGET is set to 9.0, but the range of …

鼠标的移入、移出事件

目录 一、mouseover和mouseenter 二、mouseout和mouseleave 三、重点总结 在原生JS中鼠标移入移出事件有四个,分别为mouseover ,mouseout ,mouseenter,mouseleave,其中mouseover和mouseenter为移入事件,mouseout和mouseleave为移出事件&…

IDEA提交过滤target、idea、iml、vscode、build、iws、imlz、ipr、xls、rebel.xml

一、问题截图(IDEA提交过滤target、idea、iml、vscode、build、iws、imlz、ipr、xls、rebel.xml) 二、解决 添加.gitignore提交到仓库,就可以了 HELP.md target/ !.mvn/wrapper/maven-wrapper.jar !**/src/main/** #!**/src/test/**### STS …

交换机中光口是如何配置的

在往期的文章中我们有介绍到电口和光口的概念,以及两者之间的区别。本期文章我们来了解一下交换机光口的是如何配置的。 一、交换机光口是如何配置的 1、确认光口类型:首先,确定光口插槽使用的光模块类型(如SFP、SFP、QSFP等&am…