多模态的过渡态——latent modal

news2024/9/28 3:25:39

背景:

随着大模型的推进,单模态的大模型已经无法很好的满足现实工作的需要。很多科研团队和机构开始多模态的研究,多模态的几种机构在前面的文章已经介绍过,这部分不做过多介绍。最理想的多模态应该就是没有模态,单一的模型可以把各种的数据无差别的输入,根据控制需要可以生成出任何想要的输出结果,换句话说就是我们可以用一个模型对齐所有模态之间关系。要实现这样的目标至少是有三种架构:

1.把各种模态输入/输出拉横,分区块设计每个部分对应模态,通过任务设计,让一种输入数据预测输出数据的值,通过足够多数据训练,让模型学习到模态之间对应关系

2.训练时候输入/输出只有一种模态数据,通过训练模型可以学习到模态之间对应关系

3.把各种模态之间映射到一个统一的空间,在统一空间里通过对齐方式拉起模态之间映射关系

前两种架构是一阶段的训练方法,也就是说各种模态之间数据不需要经过映射到latent空间这一步骤。直接的可以对齐到各种模态各种粒度的信息对齐,理论上讲只要有足够多的数据,一阶段的模型表达能力是更强大。但因为数据收集难度、数据处理难度、训练代价、以及下游任务的推理算力需求。现在主流的多模态应该是两阶段的对齐训练架构。即:

1.先单独把每个模态数据映射到一个空间

2.然后通过多个模态数据对齐任务设计让模态对齐

但是在模态对齐过程中任务的设计又可以根据:是否考虑数据序列、训练任务难易度、训练任务通用度做更细粒度划分。不同任务设计下产出模型表现力也会有较大差异。

下面介绍的三个模型:clip、blip2、mini-chatgpt4差异如下:

1.clip:训练数据基本没有考虑数据之间序列、任务设计图文做相似的计算

2.blip2:训练数据基本没有考虑序列,任务设计:相似的计算、模态交融任务设计、VQA、图到文本生成

3.mini-chatgpt4:有考虑数据序列(单图多轮对话),图多轮对话式生成

过度态模型:

clip

CLIP(Contrastive Language-Image Pre-Training)是一种基于(图像,文本)对的训练神经网络。它可以以自然语言指令为目标,根据给定的图像预测最相关的文本片段,拥有类似于GPT-2和3的零样本预测能力。CLIP在ImageNet“零样本”任务上与原始的ResNet50表现相同,而预测样本可以不在训练的原始1.28亿标记数据中中。

CLIP的训练任务包括:1.图文对相似度计算 2.给定图embbeding,通过文本指令预测图中物体类别。训练数据:网络爬取整理的400M的图文对,通过弱监督(应该是有多轮boost)。50万次互联网query,每次query召回2万条数据,图embedding尝试了:resnet、VIT两种架构抽取,文本embedding采用:63M参数12层 512输入长度 8 个attention头的transformer的Masked self-attention来抽取。数据量、转成prompt的图文分类对zeroshot表现和图文信息对齐,信息表征能力有较大提升。(任务设计、数据选择应该很重要)

blip2

大规模模型的端到端训练,视觉和语言前训练的成本已经变得越来越高昂。BLIP-2为了解决大模型训练贵的问题,提出一种通用且高效的前训练策略,可以从现有的 frozen 预训练图像编码器和 frozen 大型语言模型中Bootstrap 视觉和语言前训练。BLIP-2通过轻量级查询Transformer bridge了modality gap,该Transformer 在两个阶段前训练。第一阶段从 frozen 图像编码器中 Boot-strap 视觉语言表示学习。第二阶段从 frozen 语言模型中Bootstrap 视觉到语言生成学习。BLIP-2在各种视觉语言任务中实现了最先进的性能,尽管训练参数数量比现有方法要少得多。

BLIP-2框架的概述。采用两阶段策略来预处理一个轻量级的查询Transformer,以解决两模态差异。第一阶段从冻结的图像编码器中Bootstrap视觉语言表示学习。第二阶段从冻结的LLM中Bootstrap视觉到语言生成学习,这可以实现zero-shot的图像到文本生成。

固定视觉预训练模型,通过三个任务来训练一个 Q-Former 将图像输入中的语义编码到一个和文本特征空间相似的特征空间中。具体来讲,模型基于 K 个可学习的 query 嵌入和 cross-attention 机制从图像中获取特征,三个任务包括:

1. 图文匹配:对输入的(图像,文本)二元组分类,判断其是否相关

2. 基于图像的文本生成:给定图像输入,生成对应的文本描述

3. 图文对比学习:拉近图像特征和对应文本特征的距离,增大其和无关文本特征的距离

将 Q-Former 的输出通过一个全联接网络输入给固定的大语言模型,通过【基于图像的文本生成】任务将与文本特征进行了初步对齐的视觉特征进一步编码为大语言模型可以理解的输入。

优点:

通过固定单模态的预训练模型,BLIP-2 大大减少了预训练所需的计算和数据资源。

仅用了 129M 的图文对,一台 16-A100(40G) 机器不足 9 天可以训练完最大规模的 BLIP-2

通过固定大语言模型的参数,BLIP-2 保留了大语言模型的 Instruction Following 能力。

缺点:

模型没有多模态的 In-Context-Learning 能力

minichatgpt4

blip2可以看出两阶段的训练方式,第一阶段是对图文表征能力学习,第二阶段是把图文embedding作为soft prompt来做prefix的文案生成。比clip只学习图文表征能力更进一步,通过生成的prompt指导文本生成方式来更好对齐图文在映射空间表达。

MiniGPT-4 的目标是将一个训练好的视觉编码器和先进的大型语言模型 (LLM) 对齐,使用 Vicuna 作为语言解码器,它基于 LLaMA构建,能够执行各种复杂的语言任务。对于视觉感知,我们使用与 BLIP-2 相同的视觉编码器,并将其训练的 Q 前体相结合。语言和视觉模型都是开源的。使用线性投影层,通过一个设计的对话模板,用一条路径将视觉编码器和 LLM 对齐。提出了一种两阶段的训练方法。

1.初始阶段涉及在大量的对齐图像文本对上预训练模型,以获取视觉-语言知识。

2.第二阶段,使用一个较小的但高质量的图像文本dataset,并使用设计的对话模板微调预训练模型,以提高模型的生成可靠性和可用性。

第一段预训练阶段
在第一段预训练阶段,设计任务让模型从 aligned image-text pairs 中获取视觉语言知识。利用注入的投影层的输出作为 LLM 的软prompt,促使它生成相应的真实文本。
在整个预训练过程中,两个预训练的视觉编码器和 LLM 都保持冻结,只有线性投影层进行预训练。使用公开的的 Concep- tual Caption , SBU 和 LAION 数据集来训练模型。经历了 20,000 训练步,批量大小为 256,涵盖了大约 5 百万个图像-文本对。使用了 4 块A100 (80GB) GPU,整个过程需要大约 10 小时。问题设计为图文embdding成soft prompt做文本生成:

<Img><ImageFeature></Img> Describe this image in detail. Give as many details as possible. Say everything you see. ###Assistant:

在第一段预训练阶段之后, MiniGPT-4 表现出能够拥有丰富知识并对人类问题做出合理回答的能力。但是观察到它有时难以生成连贯的语言学输出,例如生成重复的词语或句子、破碎的句子或无关的内容。这些问题妨碍了 MiniGPT-4 与人类进行流畅的视觉对话的能力。
类似的问题在 GPT-3 中也存在。尽管 GPT-3 在广泛的语言数据集上进行了预训练,但它不能直接生成符合用户意图的语言学输出。通过从人类反馈中学习指令微调和强化学习,GPT-3 逐渐进化为 GPT-3.5,能够生成更加人性化的输出。这种现象与 MiniGPT-4 在第一段预训练阶段之后的状态类似。模型可能会在这一阶段难以生成流畅和自然的语言输出。

为了增强生成语言的自然度和提高模型的可用性,需要进行第二段对齐过程。虽然在 NLP 领域中,指令微调和对话数据集很容易获得,但在视觉语言领域中却没有类似的数据集。为了解决这个问题,需要精心设计一个高质量的图像文本数据集,专门用于对齐。该数据集随后用于第二段对齐过程中,用来MiniGPT-4 进行微调。
初始对齐图像-文本生成。在初始阶段,使用从第一段预训练阶段推导出来的模型生成一个给定图像的详细描述。为了让模型生成更详细的图像描述,设计了一个遵循vicuna 语言模型对话格式的prompt,如下所示:
###Human: <Img><ImageFeature></Img> Describe this image in detail. Give as many details as possible. Say everything you see. ###Assistant:
在这个prompt中,表示线性投影层产生的视觉特征。

要识别不完整的句子,需要检查生成句子是否超过了80个词。如果未超过,可以添加另一个提示,###Human: Continue ###Assistant: ,,促使MiniGPT-4继续生成句子。通过将两个步骤的输出合并,可以创建一个更全面的图像描述。这种方法使模型能够生成更多具有详细和 informative 的图像描述。随机选择了5,000张概念标题数据集上的图像,并使用这种方法为每个图像生成相应的语言描述。
数据预处理 生成的图像描述仍然存在许多噪声和包含错误,例如重复单词或句子,以及包含不合理陈述的问题。为了减轻这些问题,使用ChatGPT来通过后续提示来优化描述。
后续处理 完成预处理后,手动检查每个图像描述是否正确,以确保其质量。具体而言,检查每个生成图像描述是否符合想要的格式,并手动优化生成的标题描述,通过删除ChatGPT无法检测的重复单词或句子。最终,只有大约3,500个图像-文本对满足我要求,这些对随后用于第二阶段对齐过程。

3.3 第二段超参数调优
在第二段超参数调优中,我们使用 curated high-quality image-text pairs curated 高质图像文本对进行超参数调优。在超参数调优中,我们使用以下模板中的预定义提示:
###Human: <Img><ImageFeature></Img> <Instruction> ###Assistant:
在 this 提示中, 代表我们随机采样的指令集,其中包含指令的变体,例如“详细描述这个图像”或“能否为我描述这个图像的内容”。重要的是指出,我们不使用该特定文本图像提示的回归损失。
因此,MiniGPT-4 现在能够产生更加自然和可靠的响应。此外,我们观察到模型的超参数调优过程非常高效,只需要 400 步的训练步骤,批量大小为 12,只需要短暂的 7 分钟就能完成 single A100 GPU。

优点:

1.研究表明,通过将冻结的视觉编码器和先进的大型语言模型 Vicuna 对齐,可以实现新兴的视觉-语言能力。
2.通过使用预训练的视觉编码器和大型语言模型,MiniGPT-4 实现了更高的计算效率。研究结果表明,仅训练一个投影层可以有效地将视觉特征与大型语言模型对齐。 MiniGPT-4 仅需要在 4 A100 GPU 上训练大约 10 小时。
3.仅仅使用公开数据集的 raw 图像-文本对将视觉特征与大型语言模型对齐并不能开发出表现良好的 MiniGPT-4 模型。它可能产生缺乏一致性(包括重复和破碎语句)的人造语言输出。解决这个问题需要使用高质量的、对齐良好的数据集,这显著改善了其可用性。

小结:

1.现在多模态多模型文本语言大模型,还是以图文对齐,文本生成为主导,还做不到图文一起生成

2.从clip到blip2到minichatgpt4,统一输入格式、统一任务设计已成为趋势

3.minichatgpt4也未能实现真正的in-context图文生成,只是第一阶段和第二阶段学习任务是一样,输入:图、文做softmax把表征和生成问题统一成生成任务,第二阶段数据格式一样只是有更长序列和更多要求用高质量人类筛选数据做aliment

4.从趋势看图文多模态,任务设计应该兼备输入为:instruct、图、文、content==>输出:图、文、content、annotate;这样方式才能真正做到in-context的图文多模态,解决in-context图文任务,把人类物理世界的时间序列变量引入

5.lantent modal学习后续是否会和raw rext、pixcel粒度数据融合或者说是更细粒度图文特征接入,解决细粒度图文可控性生成是个可以关注方向(当然这么做对训练数训练技巧、训练算力要求会很高)

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

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

相关文章

持续集成/持续交付——JenkinsFile详细使用教程

JenkinsFile详细使用教程 一、BlueOcean1、BlueOcean 概念2、BlueOcean 特性3、BlueOcean 安装 二、Pipeline 简介1、Jenkins Pipeline 概念2、Jenkinsfile 语法类型&#xff1a;3、采用Jenkins 任务页面输入a. Jenkins中创建一个 pipeline 任务b. Definition 中选择 Pipeline …

电脑提示msvcp140.dll丢失的解决方法,msvcp140.dll丢失修复教程

msvcp140.dll是Microsoft Visual C Redistributable所需的一个动态链接库文件&#xff0c;它包含了Visual C运行库中的一些函数和类库。这个文件通常出现在Windows操作系统中&#xff0c;用于支持使用Visual C编写的程序的正常运行。如果系统缺少或损坏了这个文件&#xff0c;可…

计算机组成原理 4.2.1存储芯片连接

连接原理 主存储器 通过数据总线、地址总线和控制总线和CPU相连数据总线的位数正比于数据传输率地址总线的位数决定可寻址的最大地址空间控制总线(读/写)指出总线周期的类型和本次输入/输出完成的时刻 但是实际中存储芯片往往很小难以满足地址和数据的位数需求&#xff0c;此…

如何在云服务器上搭建ChatGLM

摘录&#xff1a;ChatGPT重新点燃了AI&#xff0c;然后OpenAI却没有向我们开放ChatGPT&#xff0c;虽然有些人通过了一下手段注册了账号&#xff0c;但是不久就被OpenAI拉入了黑名单。3月份我国的百度也推出了和ChatGPT对标的文言一心&#xff0c;随后阿里也推出了自己的文本对…

李雨浛:在数据、网络与民意之间——用计算社会科学方法探讨数字媒体与可持续未来 | 提升之路系列(八)...

导读 为了发挥清华大学多学科优势&#xff0c;搭建跨学科交叉融合平台&#xff0c;创新跨学科交叉培养模式&#xff0c;培养具有大数据思维和应用创新的“π”型人才&#xff0c;由清华大学研究生院、清华大学大数据研究中心及相关院系共同设计组织的“清华大学大数据能力提升项…

创建并使用shell脚本

1&#xff0c;查询 bash解释器 所在位置 创建前&#xff0c;我们需要先知道 bash 解释器所在的位置&#xff0c;以方便在头部写声明。一般位置是在 /bin/bash 但是有的是在 /usr/bin/bash &#xff0c;所以需要查找一下。 文件位置查找命令&#xff1a;whereis xxx rootarmb…

Probabilistic and Geometric Depth: Detecting Objects in Perspective 论文学习

论文地址&#xff1a;Probabilistic and Geometric Depth: Detecting Objects in Perspective Github 地址&#xff1a;Probabilistic and Geometric Depth: Detecting Objects in Perspective 1. 解决了什么问题&#xff1f; 3D 目标检测在许多应用中发挥着重要作用&#xf…

分析的四个维度

我们都听过这句格言“数据是新石油”——一种宝贵、丰富的资源&#xff0c;只有提炼后才有用。然而&#xff0c;最引人注目但又令人望而生畏的比较之一是将船只送入海洋进行石油勘探。有些会失败&#xff0c;有些会有重大发现。 深海勘探和钻探取决于精确测绘和对海底的清晰认…

【计算机网络】图解内容分发网络 CDN

【计算机网络】图解内容分发网络 CDN 参考资料&#xff1a; 用了CDN就一定比不用更快吗&#xff1f; 什么是内容分发网络 高性能利器&#xff1a;CDN我建议你好好学一下&#xff01; 文章目录 【计算机网络】图解内容分发网络 CDN一、CDN 概述1.1、什么是 CDN1.2、为什么需要 …

数字化转型导师坚鹏:数字化转型背景下的企业人力资源管理

企业数字化转型背景下的企业人力资源管理 课程背景&#xff1a; 很多企业存在以下问题&#xff1a; 不清楚企业数字化转型目前的发展阶段与重要应用&#xff1f; 不知道企业数字化转型给企业人力资源管理带来哪些机遇与挑战&#xff1f; 不知道企业数字化转型背景下如何…

SpringBoot 项目如何实现动态配置多数据源?

简介&#xff1a; dynamic-datasource-spring-boot-starter 是一个基于springboot的快速集成多数据源的启动器。 其支持 Jdk 1.7, SpringBoot 1.4.x 1.5.x 2.x.x。 特性&#xff1a; 支持 数据源分组 &#xff0c;适用于多种场景 纯粹多库 读写分离 一主多从 混合模式。支持…

认识JavaBean

什么是JavaBean? JavaBean是指符合特定规范以及定义的Java类&#xff0c;通常用于封装数据&#xff0c;提供访问数据的方法和属性&#xff0c;并且可以被其他程序重用。它具有以下特点&#xff1a; 遵循特定编程规范&#xff1a;JavaBean必须要遵循JavaBean编程规范&#xff…

分层领域模型相关总结(DO/PO/VO/BO/DTO/Query等概念)

分层领域模型(DO/PO/VO/BO/DTO/Query等概念) 1. 为什么会有这么多O的概念&#xff1f; 各种分层概念的提出都是为了解耦&#xff0c;增加逻辑/代码的复用&#xff0c;便于后期维护/开发&#xff0c;提高团队开发效率&#xff1b;but&#xff0c;过多的细分也会使得开发过程相对…

Chrome 113 发布,默认启用 WebGPU

经过四周时间开发&#xff0c;Chrome 113 稳定版正式推出&#xff0c;新版本包括用于视频电话会议的 AV1 视频编码、WebGPU&#xff0c;以及其他增强功能。 默认启用 WebGPU WebGPU 是用于 Web 的新 API&#xff0c;它使用了现代的硬件功能&#xff0c;允许在 GPU 上进行渲染和…

Unable to import maven project: See logs for details错误的多种解决方法

文章目录 1. 复现错误2. 分析错误3. 解决问题3.1 解决方法一3.2 解决方法二 4. 补充说明 1. 复现错误 今天从gitlab上下载完项目后&#xff0c;无法启动项目&#xff0c;留意到右下角的Evnet Log&#xff0c;点开如下图所示&#xff1a; 即Unable to import maven project: See…

vue-element-admin快速搭建后台模板

快速搭建后台模板 环境以及会出现的问题安装目录结构基本配置路由配置 环境以及会出现的问题 node版本17.0.0 python版本2.7.10&#xff08;node-sass依赖&#xff09; 运行项目报错Error: error:0308010C:digital envelope routines::unsupport 请看这篇文章 https://blog.cs…

FM33A048B I2C

I2C 模块实现MCU 与外部I2C 接口器件之间的同步通信&#xff0c;硬件实现串并转换。支持I2C 的主机模式&#xff0c;不支持从机模式和多主机模式。 特点&#xff1a; ⚫ 只支持I2C 主机模式, 不支持从机模式和多主机模式 ⚫ 支持7 位或10 位从机地址 ⚫ 传输速度支持标准模式(1…

Java面试题总结 | Java面试题总结10- Feign和设计模式模块(持续更新)

文章目录 Feign项目中如何进行通信Feign原理简述 设计模式spring用到的设计模式项目的场景中运用了哪些设计模式写单例的时候需要注意什么工厂模式的理解设计模式了解么工厂设计模式单例设计模式代理设计模式策略模式**模板方法模式**观察者模式**适配器模式**观察者模式**适配…

TimeScaleDB食用手册

TimescaleDB食用手册 一 TimescaleDB介绍 TimescaleDB是一种用于处理时间序列数据的开源时序数据库&#xff0c;它是PostgreSQL的扩展。它可以处理大量的时间序列数据&#xff0c;并且支持SQL查询和连续聚合功能。 1.TimescaleDB的优点 分布式架构&#xff1a;TimescaleDB利…

类和对象上

文章目录 一、类的定义1、声明和定义全部放在类体中2、 类声明放在.h文件中&#xff0c;成员函数定义放在.cpp文件中 二、类的访问限定符三、类的作用域类及其实例化1、作用域2、实例化 四、类对象大小的计算1、计算对象&#xff08;仅成员变量&#xff09;2、计算方式&#xf…