突破性技术!开源多模态模型—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的最大贡献在于实现了文本生成和图像生成的有效集成。只需要普通的文本、图像进行预训练,就可以进行连贯的多模态生成,而无需复杂的图像描述。这为多模态任务提供了统一的高效解决方案。
本文素材来源加州大学圣克鲁斯分校论文,如有侵权请联系删除
相关文章:
突破性技术!开源多模态模型—MiniGPT-5
多模态生成一直是OpenAI、微软、百度等科技巨头的重要研究领域,但如何实现连贯的文本和相关图像是一个棘手的难题。 为了突破技术瓶颈,加州大学圣克鲁斯分校研发了MiniGPT-5模型,并提出了全新技术概念“Generative Vokens ",…...
IntelliJ IDEA快捷键sout不生效
1.刚下载完idea编辑器时,可能idea里的快捷键打印不生效。这时你打开settings 2.点击settings–>Live Templates–>找到Java这个选项,点击展开 3.找到sout 4.点击全选,保存退出就可以了 5.最后大功告成!...
用C++QT实现一个modbus rtu通讯程序框架
下面是一个简单的Modbus RTU通讯程序框架的示例,使用C和QT来实现: #include <QCoreApplication> #include <QSerialPort> #include <QModbusDataUnit> #include <QModbusRtuSerialMaster>int main(int argc, char *argv[]) {QC…...
Python如何设置下载第三方软件包的国内镜像站服务器的地址
使用pip下载第三方python软件包时,如果下载的速度太慢,说明是从国外的服务器上下载的。需要进行一个设置,让pip从国内的镜像站服务器下载。 1. 新建一个纯文本文件,Windows下名字叫做pip.ini;Linux下名字叫做pip.cnf…...
ChatGLM3-6B详细安装过程记录(Linux)
先附上GitHub官方地址: https://github.com/THUDM/ChatGLM3https://github.com/THUDM/ChatGLM3 目录 一、预览 1. 基于 Gradio 的网页版 demo...
python的类
python中的类用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。 一、object是python的默认类,有很多方法,python3默认所有的类都继承object,定义类的时候类名后面加不加括号&#x…...
前端 用HTML,CSS, JS 写一个简易的音乐播放器
<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Music Player</title><style>/* 样式可自行修改 */.container {width: 600px;margin: 0 auto;}h2 {text-align: center;}.controls {displ…...
自定义QChartView实现鼠标放在图表时,显示鼠标位置坐标值(x,y)
前言:因为需要一次性从文件中加载大量数据到图表中显示,所以打算使用qchartviewqscrollarea,当横坐标数据超出默认设定的显示范围之后,重新设置chartview的宽度和scrollarea内容区域(scrollAreaWidgetContents)的宽度,…...
antv/g6 交互与事件及自定义Behavior
监听和绑定事件 在 G6 中,提供了直接的单机事件、还有监听时机的方法。可以监听画布、节点、边、以及各函数被调用的时机等: 1. 绑定事件 要绑定事件,首先需要获得图表实例(Graph 实例),然后使用 on 方法…...
MongoDB根据时间范围查询
MongoDB 查询语句示例 1. 根据时间范围查询 db.getCollection(orders).find({"enabled":true,"$or": [{"endTime": {"$gt":ISODate("2023-10-18T14:45:17.69870008:00")}}, {"endTime": null}], "startTim…...
大数据Doris(十五):Doris表的字段类型
文章目录 Doris表的字段类型 一、TINYINT数据类型 二、SMALLINT数据类型 三、INT数据类型...
文本批量处理,一键转换HTML文件编码,释放您的繁琐工作!
亲爱的用户,您是否曾经为需要手动转换HTML文件编码而耗费大量时间和精力而感到困扰?现在,我们为您提供了一款强大的文本批量处理工具!让您一键将HTML文件编码进行转换,轻松释放您的繁琐工作! 首先…...
硬件工程师到底可以从哪些方面提升自己?
大家好,这里是大话硬件。 最近在大话硬件群里,聊得比较多的就是讨论怎么提升自己的能力,怎么拿到更高的工资。我想,这可能并不是只在大话硬件群才有的话题,其实在每一位工作的人心里应该都在想的两个问题。 因此,这篇文章简单分享一下,作为一名硬件工程师,可以在做哪…...
论文辅助笔记:t2vec models.py
1 EncoderDecoder 1.1 _init_ class EncoderDecoder(nn.Module):def __init__(self, vocab_size, embedding_size,hidden_size, num_layers, dropout, bidirectional):super(EncoderDecoder, self).__init__()self.vocab_size vocab_size #词汇表大小self.embedding_size e…...
R语言如何写一个爬虫代码模版
R语言爬虫是利用R语言中的网络爬虫包,如XML、RCurl、rvest等,批量自动将网页的内容抓取下来。在进行R语言爬虫之前,需要了解HTML、XML、JSON等网页语言,因为正是通过这些语言我们才能在网页中提取数据。 在爬虫过程中,…...
鸿运主动安全云平台任意文件下载漏洞复习
简介 深圳市强鸿电子有限公司鸿运主动安全监控云平台网页存在任意文件下载漏洞,攻击者可通过此漏洞下载网站配置文件等获得登录账号密码 漏洞复现 FOFA语法:body"./open/webApi.html" 获取网站数据库配置文件 POC:/808gps/Mobile…...
CMake基础【学习笔记(八)】
声明此博客为转载 CMake基础 文章目录 CMake基础一、准备知识1.1 C的编译过程1.2 静态链接库和动态链接库1.3 为什么需要CMake1.3.1 g 命令行编译1.3.2 CMake简介 二、CMake基础知识2.1 安装2.2 第一个CMake例子2.3 语法基础2.3.1 指定版本2.3.2 设置项目2.3.3 添加可执行文件…...
异常的学习
异常分为编译时期异常与运行时期异常 编译时期异常运行前必须处理,否则代码报错 除了RuntimeException和他的子类,其他都是编译时异常 运行时期异常运行时报错,一般是由参数传递错误导致的报错 异常的作用: 1.异常使用来查询b…...
【洛谷 P1101】单词方阵 题解(深度优先搜索)
单词方阵 题目描述 给一 n n n \times n nn 的字母方阵,内可能蕴含多个 yizhong 单词。单词在方阵中是沿着同一方向连续摆放的。摆放可沿着 8 8 8 个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间可以交叉,因此…...
教师减负神器
在传统的成绩管理模式中,教师需要手动输入、整理、分析成绩数据,工作量大且繁琐。这不仅耗费了教师大量的时间和精力,还容易出现错误。为了解决这个问题,我们可以通过各种代码和Excel来实现学生自助查询成绩的功能。 一、建立成绩…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...
拉力测试cuda pytorch 把 4070显卡拉满
import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...
MySQL 主从同步异常处理
阅读原文:https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主,遇到的这个错误: Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一,通常表示ÿ…...
Axure 下拉框联动
实现选省、选完省之后选对应省份下的市区...
