突破性技术!开源多模态模型—MiniGPT-5

多模态生成一直是OpenAI、微软、百度等科技巨头的重要研究领域,但如何实现连贯的文本和相关图像是一个棘手的难题。

为了突破技术瓶颈,加州大学圣克鲁斯分校研发了MiniGPT-5模型,并提出了全新技术概念“Generative Vokens ",成为文本特征空间和图像特征空间之间的“桥梁”,实现了普通训练数据的有效对齐,同时生成高质量的文本和图像。

为了评估MiniGPT-5的效果,研究人员在多个数据集上进行了测试,包括CC3M、VIST和MMDialog。结果显示,MiniGPT-5在多个指标上都优于多个对比基线,能够生成连贯、高质量的文本和图像。

例如,在VIST数据集上,MiniGPT-5生成的图像CLIP分数高于fine-tunedStable Diffusion 2; 在人类评估中,MiniGPT-5生成的语言连贯性更好(57.18%),图像质量更高(52.06%),多模态连贯性更强(57.62%)。

在这里插入图片描述

在MMDialog数据集上,MiniGPT-5的MM相关性指标达到0.67,超过基准模型Divter的0.62。这充分证明MiniGPT-5在不同数据模式下的强大适应能力。

开源地址:https://github.com/eric-ai-lab/MiniGPT-5

论文地址:https://arxiv.org/abs/2310.02239

在这里插入图片描述

MiniGPT-5模型主要有3大创新点:1)利用多模态编码器提取文本和图像特征,代表了一种全新的文本与图像对齐技术,效果优于直接利用大语言模型生成视觉token的方法。

2)提出了无需完整图像描述的双阶段训练策略:第一阶段,专注文本与图像的简单对齐;第二阶段,进行多模态细粒度特征学习。

3)在训练中引入了“无分类器指导”技术,可有效提升多模态生成的内容质量。主要模块架构如下。

Generative Vokens

MiniGPT-5的核心创新就是提出了“Generative Vokens”技术概念,实现了大语言模型与图像生成模型的无缝对接。

具体来说,研究人员向模型的词表中加入了8个特殊的Voken词元[IMG1]-[IMG8]。这些Voken在模型训练时作为图像的占位符使用。

在输入端,图像特征会与Voken的词向量拼接,组成序列输入。在输出端,模型会预测这些Voken的位置,对应的隐状态h_voken用于表示图像内容。

在这里插入图片描述

然后,h_voken通过一个特征映射模块,转换为与Stable Diffusion文本编码器输出对齐的图像条件特征ˆh_voken。

在Stable Diffusion中,ˆh_voken作为指导图像生成的条件输入。整个pipeline实现了从图像到语言模型再到图像生成的对接。

这种通过Voken实现对齐的方式,比逆向计算要直接,也比利用图像描述更为通用。简单来说,Generative Vokens就像是一座“桥梁”,使不同模型域之间信息传递更顺畅。

双阶段训练策略

考虑到文本和图像特征空间存在一定的域差异,MiniGPT-5采用了两阶段的训练策略。

第一阶段是单模态对齐阶段:只使用单个图像-文本对的数据,如CC3M。模型学习从图像标题生成对应的Voken。同时,加入辅助的图像标题损失,帮助Voken与图像内容对齐。

第二阶段是多模态学习阶段:使用包含连续多模态样本的数据,如VIST,进行微调。设置不同的训练任务,包括生成文本、生成图像和同时生成两者。增强了模型处理多模态信息的能力。

这种分阶段策略,可以缓解直接在有限数据上训练带来的问题。先进行粗粒度对齐,再微调细粒度特征,并提升了模型的表达能力和鲁棒性。

无分类器指导

为进一步提升生成文本和图像的连贯性,MiniGPT-5还采用了“无分类器指导”的技术。

其核心思想是,在图像扩散过程中,以一定概率用零特征替换条件Voken,实现无条件生成。

在推理时,将有条件和无条件的结果作为正负样本,模型可以更好地利用两者的对比关系,产生连贯的多模态输出。这种方法简单高效,不需要引入额外的分类器,通过数据对比自然指导模型学习。

文本到图像生成模型

MiniGPT-5使用了Stable Diffusion 2.1和多模态模型MiniGPT-4作为文本到图像生成模型。可以根据文本描述生成高质量、高分辨率的图片。

Stable Diffusion使用Diffusion模型和U-Net作为主要组件。Diffusion模型可以将图片表示成噪声数据,然后逐步进行去噪和重构。

U-Net则利用文本特征作为条件,指导去噪过程生成对应的图片。相比GAN,Diffusion模型更稳定,生成效果也更清晰逼真。

在这里插入图片描述

为了准确地将生成标记与生成模型对齐,研究人员制定了一个用于维度匹配的紧凑映射模块,并结合了一些监督损失,包括文本空间损失和潜在扩散模型损失。

文本空间损失帮助模型学习标记的正确位置,而潜在扩散损失直接将标记与适当的视觉特征对齐。由于生成Vokens的特征直接由图像引导,因此,不需要图像的全面描述就能实现无描述学习。

研究人员表示,MiniGPT-5的最大贡献在于实现了文本生成和图像生成的有效集成。只需要普通的文本、图像进行预训练,就可以进行连贯的多模态生成,而无需复杂的图像描述。这为多模态任务提供了统一的高效解决方案。

本文素材来源加州大学圣克鲁斯分校论文,如有侵权请联系删除

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

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

相关文章

❤️ React的安装和使用(实战篇)

React的安装和使用 一、React的安装和使用 reactJs警告提示: This version of tar is no longer supported, and will not receive security updates. Please upgrade asap 翻译:tar2.2.2:此版本的tar不再受支持,将不会收到安全…

golang实现极简todolist

ToDoList 最近跟着qimi老师做了一个ToDoList,我做的GitHub地址贴在这里,但由于前端出了点问题,所以都是用postman进行测试 原项目地址 部分功能展示 删除代办 查找代办 下面给出思路 思路 其实这是一个很简单的增删改查的实现&#xff…

linux下使用vscode对C++项目进行编译

项目的目录结构 头文件swap.h 在自定义的头文件中写函数的声明。 // 函数的声明 void swap(int a,int b);swap.cpp 导入函数的声明&#xff0c;写函数的定义 #include "swap.h" // 双引号表示自定义的头文件 #include <iostream> using namespace std;// 函…

LeetCode.6 N字形变换

一开始想的是真的创建一个数组 去按照题目所给的要求填入数据 最后输出不为空的数组项 但是不仅时间复杂度高 而且错误频繁出现 最终也没有提交成功 查阅题解后发现数组并不重要 假设我们忽略掉数组中的那些空白项 最终输出的结果就是numRows行的字符串的拼接 string conver…

apachesolr中简单使用

core使用 首先点击add core 可以看到报错solrconfig.xml不在new_core目录下&#xff0c;new_core是我们点击后自动创建的 那么我们将D:\solr2\solr-9.3.0\solr-9.3.0\server\solr\configsets下的任何一个目录下的conf拷贝到new_core过去 这里是使用_default下的conf目录拷贝…

【PC电脑windows环境下-[jetson-orin-NX]Linux环境下-下载工具esptool工具使用-相关细节-简单样例-实际操作】

【PC电脑windows环境下-[jetson-orin-NX]Linux环境下-下载工具esptool工具使用-相关细节-简单样例-实际操作】 1、概述2、实验环境3、 物品说明4-2、自我总结5、本次实验说明1、准备样例2、设置芯片3、编译4、下载5、验证 &#xff08;1&#xff09;windows环境下进行烧写1、下…

RabbitMQ 消息应答与发布

目录 一、消息应答 1、自动应答&#xff08;默认&#xff09; 2、手动消息应答的方法 ​编辑 3、消息重新入队 4、手动应答案列与效果演示 二、RabbitMQ持久化 1、队列持久化 2、消息持久化 三、不公平分发&#xff08;能者多劳&#xff0c;弱者少劳&#xff09; 1、…

算法通过村第十八关-回溯|青铜笔记|什么叫回溯(中篇)

文章目录 前言回溯的核心问题撤销操作解释总结 前言 提示&#xff1a;阳光好的时候&#xff0c;会感觉还可以活很久&#xff0c;甚至可以活出喜悦。 --余秀华 回溯是非常重要的算法思想之一&#xff0c;主要解决一些暴力枚举也搞不定的问题&#xff08;这里埋个坑&#x1f4a3;…

NTFS文件系统解析(三)

1、引言 对于NTFS文件系统而言&#xff0c;无论文件内容本身&#xff0c;抑或真实的文件属性&#xff0c;都被称之为属性。 而正如前文说到的&#xff0c;NTFS预定义了16种属性用于文件系统的管理。 而通常情况下&#xff0c;往往只需要关注其中的某些属性即可。 2、属性头 …

云智慧联合北航提出智能运维(AIOps)大语言模型及评测基准

随着各行业数字化转型需求的不断提高&#xff0c;人工智能、云计算、大数据等新技术的应用已不仅仅是一个趋势。各行业企业和组织纷纷投入大量资源&#xff0c;以满足日益挑剔的市场需求&#xff0c;追求可持续性和竞争力&#xff0c;这也让运维行业迎来了前所未有的挑战和机遇…

数据结构-二叉树·堆(顺序结构的实现)

&#x1f389;个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名乐于分享在学习道路上收获的大二在校生 &#x1f43b;‍❄个人主页&#x1f389;&#xff1a;GOTXX &#x1f43c;个人WeChat&#xff1a;ILXOXVJE&#x1f43c;本文由GOTXX原创&#xff0c;首发CSDN&…

【wp】2023鹏城杯初赛 Web web1(反序列化漏洞)

考点&#xff1a; 常规的PHP反序列化漏洞双写绕过waf 签到题 源码&#xff1a; <?php show_source(__FILE__); error_reporting(0); class Hacker{private $exp;private $cmd;public function __toString(){call_user_func(system, "cat /flag");} }class A {p…

Ansible中的角色使用

Ansible中的角色使用&#xff1a; 目录 一、ansible角色简介 二、roles目录结构 三、roles的创建 四、roles的使用 1、书写task主任务 2、触发器模块 3、变量模块 4、j2模块 5、files模块 6、启用模块 7、执行playbook 五、控制任务执行顺序 六、多重角色的使用 一…

数据结构(超详细讲解!!)第二十一节 特殊矩阵的压缩存储

1.压缩存储的目标 值相同的元素只存储一次 压缩掉对零元的存储&#xff0c;只存储非零元 特殊形状矩阵&#xff1a; 是指非零元&#xff08;如值相同的元素&#xff09;或零元素分布具有一定规律性的矩阵。 如&#xff1a; 对称矩阵 上三角矩阵 下三角矩阵 对角矩阵 准…

redis教程 二 redis客户端Jedis使用

文章目录 Redis的Java客户端-JedisJedis快速入门创建工程&#xff1a;引入依赖&#xff1a;建立连接测试&#xff1a;释放资源Jedis连接池创建Jedis的连接池改造原始代码 Redis的Java客户端-SpringDataRedis快速入门导入pom坐标配置文件测试代码 数据序列化器StringRedisTempla…

【unity实战】Unity实现2D人物双击疾跑

最终效果 前言 我们要实现的功能是双击疾跑&#xff0c;当玩家快速地按下同一个移动键两次时能进入跑步状态 我假设快速按下的定义为0.2秒内&#xff0c;按下同一按键两次 简单的分析一下需求&#xff0c;实现它的关键在于获得按键按下的时间&#xff0c;我们需要知道第一次…

STM32G030F6P6 芯片实验 (二)

STM32G030F6P6 芯片实验 (二) Hello World - GPIO LED 尝试了下, 从 0 开始建 MDK HAL M0plus Project, 成功点亮 LED了。 但是 ST-LINK跑着跑着, 码飞了! 不知飞哪去了。 只好拿 MX 建了个 MDK Base。 呼叫 SysTick HAL_Delay(), 切换 LED。 基本上都是一样的用法, 只是换…

MapReduce WordCount程序实践(IDEA版)

环境 Linux&#xff1a;Hadoop2.x Windows&#xff1a;jdk1.8、Maven3、IDEA2021 步骤 编程分析 编程分析包括&#xff1a; 1.数据过程分析&#xff1a;数据从输入到输出的过程分析。 2.数据类型分析&#xff1a;Map的输入输出类型&#xff0c;Reduce的输入输出类型&#x…

蓝桥杯每日一题2023.11.2

题目描述 等差素数列 - 蓝桥云课 (lanqiao.cn) 题目分析 对于此题我们需要求出最小的公差并且长度为10&#xff0c; 1.确保序列开始为素数 2.确定枚举的个数 注意&#xff1a;序列中数只是d的变化&#xff0c;可以通过此计算将开始数字后9个数字都计算出来&#xff0c;d是…

【Qt之QtXlsx模块】安装及使用

1. 安装Perl&#xff0c;编译QtXlsx源码用 可以通过命令行进行查看是否已安装Perl。 下载及安装传送门&#xff1a;链接: https://blog.csdn.net/MrHHHHHH/article/details/134233707?spm1001.2014.3001.5502 1.1 未安装 命令&#xff1a;perl --version 显示以上是未安装…