首页 > 其他分享 >LLaMA模型指令微调 字节跳动多模态视频大模型 Valley 论文详解

LLaMA模型指令微调 字节跳动多模态视频大模型 Valley 论文详解

时间:2023-07-09 16:55:23浏览次数:48  
标签:视频 模型 al LLaVA LLaMA 2023 et Valley

Valley: Video Assistant with Large Language model Enhanced abilitY

大家好,我是卷了又没卷,薛定谔的卷的AI算法工程师「陈城南」~ 担任某大厂的算法工程师,带来最新的前沿AI知识和工具,包括AI相关技术、ChatGPT、AI绘图等, 欢迎大家交流~。

近期基于LLaMA微调的模型有很多,Alpaca,Vicuna都是基于ChatGPT等数据进行文本场景指令微调,LLaVA也使用图文对数据进行了图文场景多模态能力的扩展(这几个模型往期文章都有涉及,不清楚/感兴趣的可以看)。

而本文提到的Valley则是字节发布的视频场景多模态指令微调LLaMA模型

其中这几个指令微调版本的模型都大差不差,主要还是数据与训练的差异。本文描述Valley当然对标的是其类似模型LLaVA,原文introduction部分翻译修改后如下:

在Valley中,我们遵循 LLaVA 的先预训练然后指令调整的流程,采用一个简单的投影模块作为视频、图像和语言模式之间的桥梁。 我们采用 CLIP (Radford et al., 2021) 的 ViT-L/14 (Dosovitskiy et al., 2021) 作为视觉编码器(与LLaVA一致),然后提出一种时空池化操作来统一视频和图像输入的视觉编码(模型差异点)。 通过更新投影模块进行预训练,以使统一的视觉嵌入与 LLM 保持一致,其中 Stable-Vicuna (Chiang et al., 2023) 由于其多语言能力而成为选择的 LLM。 此外,我们引入了从各种视频任务中收集的多模态指令跟踪数据集,包括视频问答、长描述、随意关系推理和动作识别。 经过指令微调,最终提出了我们的视频理解谷多模态基础模型。 作为人工智能助手,我们预计Valley将在各种视频相关任务中得到广泛的应用,并帮助用户以类似于在现实世界中与人聊天的方式更好地理解和解释复杂的视频。

结合论文内容,我对Valley的贡献作了概括:

  • 模型:基于LLaVA的方法,添加了时空池化模块应对视频(多帧)场景,将LLaVA从单图扩展为多图(动态长度),同时将LLaVA的Vicuna语言模型换为Stable-Vicuna模型。;
  • 数据:搞了多模态的instruction-following数据集,聚焦于视频理解、比较多样的任务(包括multi-short captions,带时间戳的时间性描述、长视频的复杂陈述。同时使用了ChatGPT生成对话人和视频内容的对话,进一步增强数据集的质量和多样性。
  • 开源:LLM时代,开源也是贡献~

感兴趣的可以通过 相关工作来了解一下LLM的现状,以下为部分机翻:

现有的方法可以分为两种技术路线,一种是利用LLM作为调度器来调度现有的多模态模型,另一种是基于LLM来训练多模态模型。 前者在接收到用户指令和各个基础模型的功能后,将LLM作为控制器逐步调用相应的模型,并整合各个模型的输出内容生成结果(Wu等,2023;Shen等,2023)。 ,2023;Yang 等人,2023)。 例如,HuggingGPT(Shen et al., 2023)利用ChatGPT根据其功能描述在Hugging Face1中选择合适的模型并总结其执行结果。 后者为法学硕士配备辅助模块,帮助他们通过端到端训练理解多模态内容(Li et al., 2023c; Zhu et al., 2023; Zhu et al., 2023; Zhu et al., 2023; Liu et al., 2023; Su 等人,2023;戴等人,2023)。 例如,LLaVA (Liu et al., 2023) 和 MiniGPT-4 (Zhu et al., 2023) 通过投影层将 LLaMA (Touvron et al., 2023) 与视觉编码器连接起来,赋予其理解图像的能力 。 Video-LLaMA (Zhang et al., 2023) 通过 Q-Former 为 LLaMA (Touvron et al., 2023) 提供视觉和音频信息,赋予其基于视频的对话能力。

方法部分

网络结构

在LLaVA(如上图)基础上进行了扩展,将其单图扩展为多图(视频),如下图:

多帧的处理通过时空池化模块,具体:

  1. 有T个图,每个图的特征为 Vcls + 256 个patch token;

  1. 在patch token上做时间维度的平均,即T个图平均,则剩余特征为 T个Vcls + 256个平均后的patch token,下图为patch token的平均;

  1. 因为patch token的时间平均会损失时间信息(保留空间信息),所以将Vcls token 拼接在patch token后面,最终得到 T+256个视觉Token的输入,下图的V平均就是patch token;

空间tokens:256 patch(平均),时序tokens:T个CLS Token;这两个Token最终会经过映射层(Projection)与Text tokens衔接在一起送给大模型;

指令微调数据收集

作者基于MSRVTT(10k)、VATEX(22k)、AativityNet(10k)、VIOLIN(5.8k)共多个数据集构建了视频中心多模态指令数据,包含3种上下文类型,这些对应的问答对生成通过stable-vicuna生成,如下图

参考LLaVA和VideoChat中生成Prompt的方式,作者也用了上面的3种上下文文本和Stable-Vicuna生成了指令微调数据,如下图。累积42k对话5.8k的问答对,其中对话数据涵盖基础视频内容描述(目标信息等)、时间内容理解。问答数据包含因果推理、字符识别和视频复杂内容理解。

训练

同LLaVA类似的两阶段训练方式,第一阶段通过预训练映射层来进行特征对齐第二阶段微调语言模型映射层

映射层预训练

使用图文对、视频文本对两种数据进行预训练,其中图文对为LLaVA的595k CC3M数据,视频文本对为参考LLaVA过滤方法进行过滤的 702K WebVid2M 数据。两种类型数据的Prompt组织方式一致,均为:

如果输入单个图像,则帧数为1。图像-文本对和视频-文本对构建为单轮对话,使用各种问题询问视频内容,并使用相应的标题进行回答。

微调

不止上面提到的42k对话和5.8k的问答对,为了增强对视觉内容的强调,还从LLaVA中收集了150k的图片指令数据、以及VideoChat收集的11k视频指令。

实验部分

没有什么指标,给了几个case大家感受下性能就行

Limitation

  1. 加入音频信息,构建 音、画、文三种模态可感知的多模态模型;

  2. 提供中文感知能力,构建更多的中文多模态数据来增强模型;

  3. 存在LLM固有的幻觉问题(hallucination problem)需要解决。幻觉问题指大模型的输出是错误的、无意义的、输出与输入是明显不符合的(比如在摘要生成任务上)等情况,详细可参考:

    1. GPT-4的“hallucination”(幻觉)相关对策
    2. 对话大模型中的事实错误:ChatGPT 的缺陷文本任务_问题
    3. Survey of Hallucination in Natural Language Generation arXiv:2202.03629v5

标签:视频,模型,al,LLaVA,LLaMA,2023,et,Valley
From: https://www.cnblogs.com/chengnan113/p/17538956.html

相关文章

  • String内存模型和Java常用方法
    一、String内存模型1、直接赋值创建string对象内存原理:StringTable(串池):字符串常量池,用来存储字符串,只能是在直接赋值中使用才会存在串池当中(JDK7前串池是在方法区里面,StringTable(串池)在JDK7版本开始从方法区中挪到了堆内存,但是运行机制没有发生变化)eg:首先mian方法进栈,创建变......
  • 2023.27 华为云盘古大模型
    2020年11月,华为盘古大模型在华为云内部立项成功,完成了与合作伙伴、高校的合作搭建。2021年,华为盘古大模型也正式对外公布,包括NLP(自然语言处理)、CV(机器视觉)和科学计算大模型;后续又发布了矿山、药物分子、气象、海浪等行业大模型,深入金融、制造、政务、煤矿、铁路等10多个行......
  • 【Proactor模型】事件驱动模型 - Proactor模型简述
    Proactor模型Reactor是非阻塞同步网络模式,而Proactor是异步网络模式。阻塞I/O:当程序执行read,线程会被阻塞,一直等到内核数据准备好,并把数据从内核缓冲区拷贝到应用程序的缓冲区中,当拷贝过程完成,read才会返回。阻塞等待的是"内核数据准备好"和"数据从内核态拷贝到用户态"这两个过......
  • 【Reactor模型】事件驱动模型 - Reactor模型简述
    Reactor模式Reactor模式是非阻塞同步网络模式,主要由Reactor和处理资源池这两个核心部分组成,负责:Reactor负责监听和分发事件,事件类型包含连接事件,读写事件;处理资源池负责处理事件,如read->处理逻辑->sendReactor模式是灵活多变的,可以应对不同的业务场景,灵活在于:Reactor的数......
  • 用 AIGC 重构后的智能客服,能否淘到大模型时代的第一桶金?
    ChatGPT的诞生打响了现代AI军备竞赛的第一枪。以GPT-4、ChatGTP、Bard等为代表的大语言模型在全球各界引起了广泛关注。结合ChatGPT的底层技术逻辑,未来中短期内ChatGPT产业化的方向大致有四类:即智能客服、文字模态的AIGC应用、代码开发相关工作以及图像生成。其中,最适......
  • Meta 正式开源音乐生成模型 MusicGen
    导读Meta近日在Github上开源了其音乐生成模型MusicGen。据介绍,MusicGen主要用于音乐生成,它可以将文本和已有的旋律转化为完整乐曲。该模型基于谷歌2017年推出的Transformer模型。研发团队表示:“我们使用了20000小时的授权音乐来对训练该模型,并采用Meta的EnC......
  • C++之内存模型
    背景C++内存模型是C++程序中内存管理和数据存储的基础。了解C++内存模型的概念和运作机制对于编写高效、安全的C++代码至关重要。本文将详细介绍C++内存模型的基本概念、内存分配策略以及与其相关的代码示例。C++内存模型的基本概念C++内存模型主要包括以下几个部分:静态存储......
  • Cesium学习笔记3——加载倾斜摄影模型
    本地的3dtiles模型采用ContextCapture19生成. 利用Cesium实验室V3.08对OSGB格式转换到3dtiles,得到的结果加载时老是报TypeError:Cannotreadpropertiesofundefined(reading'updateTransform')错误。没搞明白为啥,不过3dtiles文件夹层级目录的命名应该从以前到现在发生了......
  • R语言时间序列TAR阈值自回归模型|附代码数据
    原文链接:http://tecdat.cn/?p=5231最近我们被客户要求撰写关于时间序列TAR阈值自回归的研究报告,包括一些图形和统计输出。为了方便起见,这些模型通常简称为TAR模型这些模型捕获了线性时间序列模型无法捕获的行为,例如周期,幅度相关的频率和跳跃现象。Tong和Lim(1980)使用阈值模型表......
  • 行行AI人才直播第8期:新加坡国立大学在读博士生张傲《多模态大语言模型(MLLM)的简介及
    随着ChatGPT在各领域展现出非凡能力,多模态大型语言模型(MLLM)近来也成为了研究的热点,它利用强大的大型语言模型(LLM)作为“大脑”,可以执行各种多模态任务。更让人感慨的是,MLLM展现出了传统方法所不具备的能力,比如能够根据图像创作故事,无需OCR的数学推理等,这为实现人工智能的通用......