MiniGPT-4开源了,史无前例的AI图片内容分析,甚至能用于逻辑验证码推理识别

news2025/1/23 8:11:53

MiniGPT-4:

github库

https://github.com/Vision-CAIR/MiniGPT-4

在线测试网址

https://minigpt-4.github.io/

案例一:分析图片内容

出结果较慢,建议图片小一点,并且提示文字尽可能简短
在这里插入图片描述
The man in the image is wearing a white tank top and shorts. He is standing on a rocky cliff overlooking a body of water with mountains in the background. The man is holding a cell phone in his hand and appears to be looking at it. There are no other objects or people in the image.
照片中的男子穿着白色背心和短裤。他站在一个岩石悬崖上,俯瞰着以山脉为背景的水体。这名男子手里拿着一部手机,似乎在看手机。图像中没有其他物体或人。

正方体上的字母是什么字母是什么颜色在什么位置上?

What are the letters on the cube what are the colors and where are the letters?

在这里插入图片描述
在这里插入图片描述

原理

最近的GPT-4展示了非凡的多模式能力,例如直接从手写文本生成网站和识别图像中的幽默元素。
这些特征在以前的视觉语言模型中很少观察到。我们认为GPT-4先进的多模态生成能力的主要原因在于使用了更先进的大型语言模型(LLM)。

为了研究这一现象,我们提出了MiniGPT-4,它使用一个投影层将冻结的视觉编码器与冻结的LLM, Vicuna对齐。我们的研究结果表明,MiniGPT-4具有许多类似于GPT-4所展示的功能,如详细的图像描述生成和从手写草稿创建网站。

此外,我们还观察到MiniGPT-4中的其他新兴功能,包括根据给定图像编写故事和诗歌,为图像中显示的问题提供解决方案,根据食物照片教用户如何烹饪等。

在我们的实验中,我们发现只有对原始图像-文本对进行预训练才能产生缺乏连贯性的非自然语言输出,包括重复和句子碎片。

为了解决这个问题,我们在第二阶段策划了一个高质量的、对齐良好的数据集,使用会话模板来微调我们的模型。

这一步对于增强模型的生成可靠性和整体可用性至关重要。值得注意的是,我们的模型具有很高的计算效率,因为我们只使用大约500万对齐的图像-文本对来训练一个投影层。

视频演示模型MiniGPT-4由一个预先训练的ViT和Q-Former的视觉编码器、一个单一的线性投影层和一个先进的Vicuna大型语言模型组成。MiniGPT-4只需要训练线性层以使视觉特征与骆马对齐。MiniGPT-4的架构。

MiniGPT-4官方文档

MiniGPT-4:使用高级大型语言模型增强视觉语言理解

Deyao Zhu(在就业市场上!),Jun Chen(在就业市场上!),沈小倩,Xiang Li,和穆罕默德 · 埃尔霍赛尼.* 同等贡献

阿卜杜拉国王科技大学

介绍

  • MiniGPT-4 仅使用一个投影层将来自 BLIP-2 的冻结视觉编码器与冻结 LLM(小羊驼)对齐。
  • 我们用两个阶段训练 MiniGPT-4. 第一个传统的预训练阶段是使用 4 个 A100 在 10 小时内使用大约 500 万个对齐的图像-文本对进行训练。在第一阶段之后,小羊驼能够理解图像。但小羊驼的繁殖能力受到严重影响。
  • 为了解决这个问题并提高可用性,我们提出了一种新颖的方法,通过模型本身和 ChatGPT 一起创建高质量的图像-文本对。在此基础上,我们创建了一个小(总共 3500 对)但高质量的数据集。
  • 第二个微调阶段是在对话模板中对该数据集进行训练,以显著提高其生成可靠性和整体可用性。令我们惊讶的是,这个阶段的计算效率很高,使用单个 A100 只需大约 7 分钟。
  • MiniGPT-4 产生了许多新兴的视觉语言功能,类似于 GPT-4 中演示的功能。

入门

安装

准备代码和环境

Git 克隆我们的存储库,创建一个 Python 环境,并通过以下命令激活它

git clone https://github.com/Vision-CAIR/MiniGPT-4.git
cd MiniGPT-4
conda env create -f environment.yml
conda activate minigpt4

2. 准备预先训练的小羊驼砝码

当前版本的 MiniGPT-4 是在 Vicuna-13B 的 V0 Versoin 上构建的。请参考我们的说明here来准备小羊驼砝码。最终权重将位于具有以下结构的单个文件夹中:

vicuna_weights
├── config.json
├── generation_config.json
├── pytorch_model.bin.index.json
├── pytorch_model-00001-of-00003.bin
...   

然后,在第 16 行的模型配置文件here中设置小羊驼重量的路径。

准备预训练的 MiniGPT-4 检查点

要使用我们的预训练模型,请下载预训练检查点here。然后,在第 11 行的评估配置文件评估 _configs/minigpt4_EVAL.YAML中设置预训练检查点的路径。

本地启动演示

通过运行以下命令,在你的本地计算机上尝试我们的演示demo.py

python demo.py --cfg-path eval_configs/minigpt4_eval.yaml

在这里,我们将 Vicuna 默认加载为 8 位,以节省一些 GPU 内存使用。此外,默认的波束搜索宽度为 1. 在此设置下,演示大约需要 23G GPU 内存。如果你有更强大的 GPU 和更大的 GPU 内存,则可以通过在配置文件MINIPT4_EVAL.YAML中将“低 _ 资源”设置为“假”并使用更大的波束搜索宽度来运行 16 位模型。

训练

MiniGPT-4 的训练包含两个对准阶段。

1. 第一次预培训阶段

在第一个预训练阶段,使用来自 LAION 和 CC 数据集的图像-文本对来训练模型,以对准视觉和语言模型。要下载和准备数据集,请查看我们的第一阶段数据集准备说明。在第一阶段之后,视觉特征被映射并且可以被语言模型理解。要启动第一阶段训练,请运行以下命令。在我们的实验中,我们使用 4 个 A100. 你可以在配置文件列车 _ 配置/MiniGPT4_ 阶段 1_pretrain.yaml中更改保存路径

torchrun --nproc-per-node NUM_GPU train.py --cfg-path train_configs/minigpt4_stage1_pretrain.yaml

2、第二次微调阶段

在第二阶段,我们使用自己创建的小型高质量图文对数据集,并将其转换为对话格式,以进一步对齐 MiniGPT-4. 要下载和准备我们的第二阶段数据集,请查看我们的第二阶段数据集准备说明。要启动第二阶段对齐,请首先在中列车 _ 配置/MiniGPT4_ 阶段 1_pretrain.yaml指定阶段 1 中训练的检查点文件的路径。你还可以在此处指定输出路径。然后,运行以下命令。在我们的实验中,我们使用 1 个 A100。

torchrun --nproc-per-node NUM_GPU train.py --cfg-path train_configs/minigpt4_stage2_finetune.yaml

在第二阶段对准之后,MiniGPT-4 能够连贯地和用户友好地谈论图像。

鸣谢

  • MiniGPT-4 的BLIP2模型结构遵循 BLIP-2. 不要忘记检查这个伟大的开源工作,如果你以前不知道它!
  • Lavis这个仓库是建立在 LAVIS 之上的!
  • 只有 13B 参数的小羊驼Vicuna神奇的语言能力令人惊叹。而且它是开源的!

如果你在研究或应用中使用 MiniGPT-4,请引用此 Bibtex:

@misc{zhu2022minigpt4,
      title={MiniGPT-4: Enhancing Vision-language Understanding with Advanced Large Language Models}, 
      author={Deyao Zhu and Jun Chen and Xiaoqian Shen and xiang Li and Mohamed Elhoseiny},
      year={2023},
}

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

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

相关文章

kotlin协程flow retryWhen当功能函数加载失败后重试(3)

kotlin协程flow retryWhen当功能函数加载失败后重试&#xff08;3&#xff09; import kotlinx.coroutines.delay import kotlinx.coroutines.flow.* import kotlinx.coroutines.runBlocking import java.lang.NullPointerExceptionfun main(args: Array<String>) {runBl…

电脑卡顿反应慢怎么处理?电脑提速,4个方法!

案例&#xff1a;电脑卡顿反应慢怎么处理&#xff1f; 【快帮帮我&#xff01;我的电脑现在越用越卡了&#xff0c;有时候光是打开一个文件都要卡好几分钟&#xff0c;我真的太难了&#xff0c;有什么可以加速电脑反应速度的好方法吗&#xff1f;万分感谢&#xff01;】 随着…

产品知识沉淀

梁宁-产品思维30讲 看一个人或看一个产品&#xff0c;可以由表及里的五层来做观察和判断&#xff1a;感知层、角色层、资源层、能力圈和存在感 存在感之于人就好像生存之于动物一样&#xff0c;是触发情绪和推动行动的开关。 动物的状态和情绪&#xff0c;都是关乎它的生存需…

数据结构---八大排序

专栏&#xff1a;算法 个人主页&#xff1a;HaiFan. 本章内容为大家带来排序的相关内容&#xff0c;希望大家能多多支持。 八大排序 前言插入排序直接插入排序希尔排序(缩小增量排序) 选择排序选择排序堆排序 交换排序冒泡排序快速排序hoare版挖坑版前后指针法 归并排序 前言 …

Python中的@cache有什么妙用?

Python中的cache有什么妙用&#xff1f; 本文同步投给#创作纪念日#活动&#xff0c;2019年4月8日我在C站发了第一篇博文&#xff0c;至今200多篇了&#xff0c;感兴趣可以访问我的主页&#xff1a;小斌哥ge。 看到官方发的私信&#xff0c;是鼓励博主写一些感悟&#xff0c;由于…

【MySQL】数据库基础知识

1、数据库简介 1.1 什么是数据库 数据库其实就是"基于数据结构"实现出来的一类软件&#xff0c;这类软件可以用来对数据进行管理&#xff0c;管理也就是对数据进行增删查改等一些操作 为什么说数据库是基于数据结构实现出来的"一类软件"呢&#xff1f; 答&…

本地化部署大语言模型 ChatGLM

本地化部署大语言模型 ChatGLM 本地化部署大语言模型 ChatGLM前期筹备GitHub 基础包语言模型文件基础配置显存查看方法 Anaconda 模块Anaconda 环境创建根目录操作基础依赖加载transformers 和 protobuf 库加载Pytorch 源修改依赖库补充补充依赖 pypi 配置cchardet 依赖错误解决…

开放式耳机好用吗,盘点几款口碑不错的开放式耳机

​开放式耳机作为一种全新的耳机形态&#xff0c;已经成为了当前市场上非常火爆的一款产品。由于无需入耳佩戴&#xff0c;可以很好的避免了耳膜受到损伤&#xff0c;而且也能够让我们在佩戴眼镜时也能够正常使用。加上开放式耳机的音质和舒适度都要优于其他类型的耳机&#xf…

全球上线!ABB中国涡轮增压器分拆 – 数据清理阶段完成

ABB是数字行业的技术前沿者&#xff0c;拥有四项主营业务&#xff1a;电气化&#xff0c;工业自动化&#xff0c;运动控制以及机器人和离散自动化。ABB总部位于瑞士苏黎世&#xff0c;业务遍及100多个国家&#xff0c;拥有约105&#xff0c;000名员工。2021年&#xff0c;该公司…

dockerDesktop依赖wsl,及docker可视化推荐Portainer

也是今天无意中发现的Portainer 之前采用的1panel和宝塔做运维可视化 现在换成dockerPortainer 宝塔和1panel和portranier对比 宝塔广告太多&#xff0c;而且不适合深入了解运维技术 1panel个人感觉无广告颜值很高&#xff0c;但是还是有局限&#xff0c;不适合深入了解运维…

MAC 用 brew安装 mysql并且设置开机自启动

目录 一.安装 mysql 1.安装 mysql 2.启动 mysql 3.关闭 mysql 4.初次安装需要修改 root 密码 5.验证密码 二.设置开机启动 1.找到plist 文件 2.将启动文件 plist 复制到 LaunchAgents目录 3.验证 一.安装 mysql 1.安装 mysql 1.安装默认版可以直接执行安装命令 brew…

上岸美团,我的面经!

作者&#xff1a;阿秀 校招八股文学习网站&#xff1a;https://interviewguide.cn 这是阿秀的第「257」篇原创 小伙伴们大家好&#xff0c;我是阿秀。 欢迎今年参加秋招的小伙伴加入阿秀的学习圈&#xff0c;目前已经超过 2200 小伙伴加入&#xff01;去年认真准备和走下来的基…

GreenPlum (一) 初识

在开始了解GreenPlum之前&#xff0c;应该对这种产品的诞生有基本的了解&#xff0c;搭建一个基本的知识框架。对以下历史有基本了解之后应对下文术语进行基本阅读。 ​ 阅读目标: 阅读完成后需要对相关术语以及greenplum有基础理解。 文案基本互联网相关blog进行整体汇总&…

苹果跌倒检测新专利获得,结合苹果Find My可准确定位

苹果首款“跌倒检测”功能专利可追溯到 2018 年公示的 20190103007&#xff0c;后续又获得了至少 5 项相关专利。根据美国商标和专利局&#xff08;USPTO&#xff09;上周四公示的专利&#xff0c;苹果公司再次获得了一项“跌倒检测”功能专利。 苹果在报告中表示&#xff0c…

亚马逊云科技让你在云端发现企业穿越周期稳健发展的力量

2023年3月29日「哈佛商业评论-未来管理沙龙」活动盛大启幕&#xff0c;此次沙龙活动以穿越周期的力量为主题方向&#xff0c;以解码跨国企业持续增长源动力为主旨&#xff0c;希望为企业高层管理者们带来更多思考和启迪。 作为特邀嘉宾&#xff0c;亚马逊全球副总裁、亚马逊云…

内存的分区

目录 内存分区介绍 区域功能 内存分区运行前后的区别 运行之前&#xff08;代码区数据区未初始化数据区&#xff09; 运行之后&#xff08;代码区数据区未初始化数据区栈区堆区&#xff09; 缓冲区 缓冲区有什么用&#xff1f; 缓冲区的三种类型 缓冲区的刷新 内存分布图 栈与堆…

AI绘画——ControlNet扩展安装教程

目录 1.ControlNet安装 2.预处理模型安装 预处理模型&#xff08;annotator&#xff09;下载链接&#xff1a; 预处理模型安装地址&#xff1a; 3.ControlNet模型下载 Controlnet模型下载地址&#xff1a; Controlnet模型安装目录&#xff1a; 注&#xff1a;&…

KDZRS-40A三通道变压器直流电阻测试仪

一、产品概述 变压器绕组的直流电阻测试是变压器在交接、大修和改变分接开关后的试验项目。在通常情况下&#xff0c;用传统的方法&#xff08;电桥法和压降法&#xff09;测量变压器绕组以及大功率电感设备&#xff08;发电机&#xff09;的直流电阻是一项费时费工的工作。为了…

VMware从零配置安装CentOS 7

不跳步图文详细安装教程 一、VMware的下载二、VMware的安装三、CentOS7的下载第一步&#xff1a;根据自己电脑操作系统的位数点击选择&#xff08;大多数都是64位操作系统&#xff09;第二步&#xff1a;任意挑选一个镜像源进入下载界面第三步&#xff1a;下载对应版本的CentOS…

比较运算符、关键字子查询MySQL数据库 (头歌实践教学平台)

文章目的初衷是希望学习笔记分享给更多的伙伴&#xff0c;并无盈利目的&#xff0c;尊重版权&#xff0c;如有侵犯&#xff0c;请官方工作人员联系博主谢谢。 目录 第1关&#xff1a;带比较运算符的子查询 任务描述 相关知识 子查询 带比较运算符的子查询 编程要求 第2关…