GPT-4平替版:MiniGPT-4,支持图像理解和对话,现已开源

  • 项目地址:https://minigpt-4.github.io/ 

  • 论文链接:https://github.com/Vision-CAIR/MiniGPT-4/blob/main/MiniGPT_4.pdf

  • 代码:https://github.com/Vision-CAIR/MiniGPT-4

  • 视频:https://youtu.be/__tftoxpBAw

  • 数据集:https://drive.google.com/file/d/1nJXhoEcy3KTExr17I7BXqY5Y9Lx_-n-9/view

  • Demo地址:https://6b89c70eb5e14dca33.gradio.live/

  • Demo备选地址1:https://b2517615b965687635.gradio.live/

  • Demo备选地址2:https://c8de8ff74b6a6c6a9b.gradio.live/

  • Demo备选地址3:https://0a111504e072685259.gradio.live/

  • Demo备选地址4:https://90bc0bac96e6457e8f.gradio.live/

Demo界面如下

MiniGPT-4介绍

阿卜杜拉国王科技大学的研究团队,提出了一个具有类似 GPT-4 图像理解与对话能力的 AI 大模型——MiniGPT-4,并将其开源

MiniGPT-4 由一个带有预训练的 ViT(与BLIP-2一样) 和 Q-Former 的视觉编码器、一个单一的线性投影层和一个 Vicuna 大语言模型组成,只训练线性投影层,视觉编码器和Vicuna的参数冻结。模型结构如下图所示:

实验发现,MiniGPT-4 具有出色的多模态能力,如从手写草稿创建网站、生成详细的图像描述、根据图像创作故事和诗歌、为图像中描述的问题提供解决方案,以及根据食物照片教对话对象如何烹饪一道美味的菜品等

MiniGPT-4两阶段fine-tuning

作者采用两阶段fine-tuningMiniGPT-4,第一阶段是在公开数据上微调,第二阶段是构建高质量的对话数据再微调。

First pretraining stage

MiniGPT-4使用一个线性投影层来对齐Vicuna语言编码器和视觉特征。刚开始,使用4个A100GPU以batch大小为256训练了20k个step(训练了10小时),训练数据是LAION,Conceptual Captions和SBU(总共5M数据),数据格式如下所示:

<ImageFeature> 表示是线性投影层得到的视觉特征。

如果生成的句子不够80个tokens,那么就在后面pad ###Human: Continue ###Assistant:

构建第二阶段微调所需要的数据

从Conceptual Caption数据集中随机选择5000个样本,这些样本可能会有噪声或者有错误,使用ChatGPT进行修复这些错误,Prompt如下:

最终人工进行检查,最后整理符合要求的样本有3500个,这些样本将用于第二阶段微调。

Second pretraining stage

第二阶段微调的Prompt数据格式如下:

<Instruction> 是从预定义好的instruction集中随机采样的,比如“Describe this image in detail”或“Could you describe the contents of this image for me”

Note:在计算回归损失函数的时候不计算<Instruction> 这个特殊的Prompt。

这个阶段使用一个A100GPU在batch大小为12的时候,训练400个step,仅仅训练了7分钟。

MiniGPT-4示例

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

推荐|x86视觉运动控制一体机VPLC710

正运动技术始终围绕客户需求不断迭代升级产品及开发&#xff0c;积极探索工控自动化高质量发展新路径&#xff0c;着眼于全力为客户提供更优质的产品与服务&#xff0c;特此开发了一款可满足全场景高速高精及中大型产线设备应用需求的x86的IPC形态控制器。 VPLC710产品简介 VP…

【JavaSE】Java基础语法(九):封装

文章目录 ☔1. private关键字☔2. private关键字的使用☔3. this关键字☔4. this内存原理☔5. 封装思想 ☔1. private关键字 概述 : private是一个修饰符&#xff0c;可以用来修饰成员&#xff08;成员变量&#xff0c;成员方法&#xff09; 特点 : 被private修饰的成员&…

Git的使用

Git 概念 版本控制 软件版本&#xff1a; JDK&#xff1a;1.8&#xff0c;17&#xff0c;20 MYSQL&#xff1a;5.7&#xff0c;8.0 IDEA&#xff1a;2022&#xff0c;2023 文件版本&#xff1a; 保存重要的历史记录&#xff0c;恢复数据 版本控制软件的基础功能 保存…

创新管理工具:低代码平台在学校管理中的应用实践

随着信息技术的不断发展&#xff0c;学校管理也随之发生了变革。传统的学校管理方式往往是依靠人工操作&#xff0c;存在信息不透明、效率低下等问题&#xff0c;而数字化管理的出现&#xff0c;可以帮助学校提高管理效率、降低管理成本、提升数据统计和分析能力。而低代码技术…

EDR(端点、端点检测与响应中心、可视化展现)

EDR基本原理与框架 EDR定义 端点检测和响应是一种主动式端点安全解决方案&#xff0c;通过记录终端与网络事件&#xff08;例如用户&#xff0c;文件&#xff0c;进程&#xff0c;注册表&#xff0c;内存和网络事件&#xff09;&#xff0c;并将这些信息本地存储在端点或集中数…

hive如何实现oracle中复杂的update sql

hive3.1有update语法&#xff0c;但是目前没用还是采用的非事务表&#xff0c;所以我们用其他的办法来解决hive的update问题 简单的update oracle update student set namecclovezbf where id1 hive insert overwrite table student select id, if(id1,cclovezbf,name) n…

LeetCode 49 字母异位词分组

LeetCode 49 字母异位词分组 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;https://leetcode.cn/problems/group-anagrams/description/ 博主Github&#xff1a;https://github.com/GDUT-Rp/LeetCode 题目&#xff1a; 给你一个字符串数组&#x…

PowerShell系列(四):PowerShell进入交互环境的三种方式

目录 1、Win键X 方式 2、使用微软自带的搜索功能 3、命令行运行方式 4、命令行窗口方式 5、使用第三方命令行软件&#xff08;Terminal&#xff09;开启PowerShell环境 6、PowerShell交互环境执行脚本的一些优势 7、小技巧 今天继续给大家讲解PowerShell相关的知识&…

发现一个好玩的东西:Markdown 使用 Emoji 表情

Markdown 使用 Emoji 表情 玩法1、复制和粘贴表情符号2、使用表情符号简码Markdown 定义列表 玩法 有两种方法可以将表情符号添加到Markdown文件中&#xff1a; 将表情符号复制并粘贴到Markdown格式的文本中或者键入emoji shortcodes。 1、复制和粘贴表情符号 在大多数情况…

鸿蒙Hi3861问题解决-[OHOS ERROR] clang not found, install it please

一、简介 在使用DevEco进行编译时出现[OHOS ERROR] clang not found, install it please问题&#xff0c;导致编译失败&#xff0c;这里做个问题记录。 二、解决 这种问题其实还是工具链安装不全造成的。 安装gn 这里用的是VSCode DevEco组件&#xff0c;里边包含了gn组件的安…

【分立元件】MOSFET如何用于同步整流

在电力电子中我们会使用二极管做开关,当二极管导时,相当于开关闭合,当二极管截止时,相当于开关断开。但是二极管在导通时的管压降在低压电源电路中是一个损耗来源,所以一般我们首选使用的是肖特基二极管,因为肖特基二极管的管压降比较低。 如下所示为非同步BUCK电源拓朴…

mybatis-plus实现逻辑删除(详细!)

文章目录 什么是逻辑删除&#xff1f;为什么用到逻辑删除&#xff1f;在springboot使用Mybatis-Plus提供的逻辑删除1、在application.yml配置2、 实体类字段上加上TableLogic注解演示 什么是逻辑删除&#xff1f; 逻辑删除的本质是修改操作&#xff0c;并不是真正的删除&#…

如何在华为OD机试中获得满分?Java实现【报数游戏】一文详解!

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: Java华为OD机试真题(2022&2023) 文章目录 1. 题目描述2. 输入描述3. 输出描述4. Java算法源码5. 测试6.解题思路1. 题目描述 100个人围成一圈,每个人…

多线程 -- 线程安全问题(3)

本篇重点: 总结线程安全问题的原因以及解决办法 目录 synchronized 加锁关键字join 和 synchronized 的区别volatile 关键字 在上一篇中我们介绍了Thread类的基本使用方法, 本篇将会介绍有关于线程的安全问题 线程不安全的原因: 抢占式执行(罪魁祸首, 万恶之源) 多个线程修改同…

CTF入门指南

何为CTF &#xff1f; CTF&#xff08;Capture The Flag&#xff09;夺旗比赛&#xff0c;在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会&#xff0c;以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。…

《逆商》我们该如何应对坏事件

关于作者 作者保罗史托兹博士是逆商理论的提出者和奠基人&#xff0c;他曾被《人力资源》杂志评为 “全球十大有影响力的思想家”。在二十多年前提出逆商理论之后&#xff0c;他一直在致力于帮助各行各业的人士提高逆商&#xff0c;在实践中积累了该领域大量的数据和经验。 关…

二叉树的认识

愚昧将使你达不到任何成果&#xff0c;并在失望和忧郁之中自暴自弃。 --达芬奇 目录 &#x1f341;一.二叉树的概念 &#x1f341;二.二叉树的特点&#xff0c;结构 &#x1f341;三.三种特殊的二叉树 &#x1f341;1.斜树 &#x1f341;2.满二叉树 …

redis

1. 什么是Redis&#xff1f;它主要用来什么的&#xff1f; Redis&#xff0c;英文全称是Remote Dictionary Server&#xff08;远程字典服务&#xff09;&#xff0c;是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库&#xff0c;并提…

基于计算机视觉的手势识别技术

一个不知名大学生&#xff0c;江湖人称菜狗 original author: Jacky Li Email : 3435673055qq.com Time of completion&#xff1a;2023.5.2 Last edited: 2023.5.2 手语是一种主要由听力困难或耳聋的人使用的交流方式。这种基于手势的语言可以让人们轻松地表达想法和想法&…

雷达中的无源和有源的区别

常规雷达探测目标时&#xff0c;需要源源不断地发射无线电波&#xff0c;所以叫有源雷达( active radar)。有源雷达的优点是能自主搜索目标&#xff0c;因为它接收的是自己发射的电磁波&#xff0c;所以灵敏度高&#xff0c;分辨率好。但这种雷达易受目标的电磁干扰&#xff0c…