《深入浅出多模态》(八)多模态经典模型:MiniGPT4

在这里插入图片描述

🎉AI学习星球推荐: GoAI的学习社区 知识星球是一个致力于提供《机器学习 | 深度学习 | CV | NLP | 大模型 | 多模态 | AIGC 》各个最新AI方向综述、论文等成体系的学习资料,配有全面而有深度的专栏内容,包括不限于 前沿论文解读、资料共享、行业最新动态以、实践教程、求职相关(简历撰写技巧、面经资料与心得)多方面综合学习平台,强烈推荐AI小白及AI爱好者学习,性价比非常高!加入星球➡️点击链接

专栏介绍: 本作者推出全新系列《深入浅出多模态》专栏,具体章节如导图所示(导图后续更新),将分别从各个多模态模型的概念、经典模型、创新点、论文综述、发展方向、数据集等各种角度展开详细介绍,欢迎大家关注。
💙作者主页: GoAI |💚 公众号: GoAI的学习小屋 | 💛交流群: 704932595 |💜个人简介 : 掘金签约作者、百度飞桨PPDE、领航团团长、开源特训营导师、CSDN、阿里云社区人工智能领域博客专家、新星计划计算机视觉方向导师等,专注大数据与AI 知识分享。

💻文章目录

《深入浅出多模态》(一):多模态模型论文最全总结
《深入浅出多模态》(二):多模态任务应用与背景
《深入浅出多模态》(三):多模态任务前言知识
《深入浅出多模态》之多模态经典模型:CLIP
《深入浅出多模态》之多模态经典模型:ALBEF
《深入浅出多模态》之多模态经典模型:BLIP
《深入浅出多模态》之多模态经典模型:BLIP2
《深入浅出多模态》之多模态经典模型:MiniGPT4


👨‍💻导读: 本文为《深入浅出多模态》系列多模态经典模型mini gpt4,首先从整体介绍多模态模型发展,对其模型进行详述,从具体论文、数据集、代码、模型结构、结果等角度分析,本专栏适合从事多模态小白及爱好者学习,欢迎大家关注,如有侵权请联系删除!

多模态模型总结

在这里插入图片描述

✨ MiniGPT-4:多模态大模型的轻量化实践

miniGPT4

论文: :MiniGPT-4: Enhancing Vision-Language Understanding with Advanced Large Language Models

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

miniGPT-v2

论文: :MiniGPT-v2: large language model as a unified interface for vision-language multi-task learning

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

论文相关

目标:使用线性投影层弥合视觉编码器和 LLM 之间的差距。

论文动机:论文认为 GPT4V 的多模态生成能力主要是使用了更先进的 LLM,并针对当前模型生成不连贯的现象,精选一个高质量、对齐良好的数据集,这对增强模型的生成可靠性和整体可用性至关重要。

技术亮点

MiniGPT-4旨在将来自预训练视觉编码器的视觉信息与高级大型语言模型(LLM)对齐。它采用了两阶段训练方法:首先在大规模对齐的图像-文本对集合上进行预训练以获取视觉语言知识;然后在高质量图像文本数据集上进行微调以提高生成可靠性和可用性。

论文提出了一种两阶段训练方法:

1.初始阶段在 大量对齐的图像-文本对 集合上对模型进行 预训练,以获取视觉语言知识。
2.第二阶段用一个 较小但高质量的图像文本 数据集和一个设计好的对话模板对预训练的模型进行 微调,以提高模型的生成可靠性和可用性。。

核心技术

  1. 视觉编码器:使用与BLIP-2相同的ViT骨干及其预训练的Q-Former作为视觉编码器。
  2. 语言解码器:基于LLaMA构建的Vicuna作为语言解码器。
  3. 对齐机制:通过线性投影层弥合视觉编码器和LLM之间的差距。

预训练主要步骤:

MiniGPT整体结构沿用 BLIP-2 框架,使用 BLIP-2 预训练的 VIT 和 Q-Former 模块,并希望通过大量对齐的图像文本对中获取视觉语言知识,即对 LLM 注入线性投影层转换后的视觉软提示,促使其生成相应的真实文本。

  1. 预训练阶段:freeze VIT、Q-Former 和 Vicuna,仅训练线性投影层。使用 Conceptual Caption、SBU 和 LAION 的组合数据集(共约 500w 图文对)来训练 MiniGPT-4。(但该阶段暴露出预训练后的模型存在重复生成、不连贯等问题。)

  2. 图文对齐 SFT 阶段:该阶段认为 LVLM 模型也需要像 LLM 那样增加指令数据微调,使模型生成更为流畅自然的回复。

整体结构:

在这里插入图片描述

第一个预训练阶段

在初始预训练阶段,该模型旨在从大量对齐的图像-文本对中获取视觉语言知识。将注入投影层的输出视为 LLM 的软提示,提示其生成相应的实际真实文本。在整个预训练过程中,预训练的视觉编码器和 LLM 都保持冻结,只有线性投影层被预训练。

在这里插入图片描述

创建高质量数据集

论文精心策划了一个高质量的图像文本数据集,专门为对齐目的量身定制。该数据集随后用于在第二阶段比对过程中微调 MiniGPT-4。

💚 第一阶段样本构造阶段,构造提示( 为线性投影层产出的视觉特征)

初始对齐的图像文本生成 在初始阶段,使用从第一个预训练阶段导出的模型来生成给定图像的综合描述。为了使模型能够产生更详细的图像描述,论文仿照 Vicuna 语言模型的对话格式,使用以下模板中预定义的提示:

###Human: Describe this image in detail.Give as many details as possible.Say everything you see.###Assistant:

注:( 表示由线性投影层产生的视觉特征。)

数据后处理

生成的图像描述仍然有很多噪音且包含错误,如单词或句子的重复,以及不连贯的陈述。为了缓解这些问题,使用 ChatGPT 通过使用以下提示来完善描述:

修正给定段落中的错误。删除任何重复的句子、无意义的字符、非英语句子等等。删除不必要的重复。重写任何不完整的句子。直接返回结果,无需解释。如果输入的段落已经正确,则直接返回该段落,无需解释。
Fix the error in the given paragraph. Remove any repeating sentences, meaningless characters, not English sentences, and so on. Remove unnecessary repetition. Rewrite any incomplete sentences. Return directly the results without explanation. Return directly the input paragraph if it is already correct without explanation.

在完成后处理阶段后,手动验证每个图像描述的正确性,以确保其高质量。具体来说,检查每个生成的图像描述是否遵循我们想要的格式,并通过消除 ChatGPT 无法检测到的多余单词或句子来手动细化生成的描述。最后,5000 个图像-文本对中只有大约 3500 个满足论文的要求,这些数据用于第二阶段对齐过程。

通过这一阶段的训练,minigpt4已经能够做一些图片问答、推理等任务,但作者观察到模型有时会有答非所问、"鬼打墙"等现象。因此需要第二阶段的微调。

第二阶段微调

💚第二阶段用精心策划的高质量图像-文本对来微调预训练模型。 从上述样本中的 Conceptual Caption 数据集中随机选取 5000 张图片,使用上述提示和第一阶段预训练好的 MiniGPT-4 生成图片对应详细的描述,随后使用 ChatGPT 对描述中存在的明显噪声和错误进行修改,并将润色后的描述进行人工 review,最终仅有 3500 条图文描述对被使用。

• 最终这 3500 条图文对被用来做 SFT 微调,SFT 阶段提示格式如下 ( 不会被计算 loss):

    ◦ ###Human:  <Img> <ImageFeature> </Img> <Instruction> ###Assistant:◦ <Instruction> : “Describe this image in detail” or “Could you describe the contents of this image for me”

在此提示中, 表示从预定义的指令集中随机采样的指令,其中包含各种形式的指令,如“详细描述此图像”或“您能为我描述此图像的内容吗”。需要注意的是,不会计算此特定文本图像提示的回归损失 。

效果

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

在这里插入图片描述

在这里插入图片描述

学习参考:

MiniGPT-4 知识点汇总

保姆级minigpt4部署教程:

MiniGPT介绍:https://ezcode.blog.csdn.net/article/details/131671271

总结:

本文对MiniGPT-4的论文、模型结构、训练过程进行总结。MiniGPT-4 旨在将来自预训练视觉编码器的视觉信息与高级大型语言模型(LLM)对齐。总体采用和 BLIP-2 相同的架构,使用BLIP-2相同的视觉编码器,即 ViT 骨干 及其预训练的 Q-Former,只不过 LLM 换成 Vicuna(基于 LLaMA)。只对线性层进行训练。而且使用 指令微调 的方法。尽管 MiniGPT-4 论文中没有汇报相关效果,但效果在后来引用论文中的汇报,比 BLIP-2 强上一截,后续文章将继续介绍 MiniGPT-v2、MiniGPTv5等改进模型。

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

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

相关文章

【Qt】输入类控件QComboBox

目录 输入类控件QComboBox 例子&#xff1a;使用下拉框模拟点餐 例子&#xff1a;从文件中加载下拉框的选项 输入类控件QComboBox QComboBox表示下拉框 核心属性 属性说明 currentText 当前选中的⽂本 currentIndex 当前选中的条⽬下标. 从 0 开始计算. 如果当前没有条…

Deepin【2】:Deepin系统盘扩容

Deepin【2】&#xff1a;Deepin系统盘扩容 1、进入live系统1.1、live系统入步骤 2、连接网络3、新增系统仓库4、安装gparted应用5、使用gparted进行扩容操作5.1、观察当前分区5.2、压缩data分区5.3、Rootb分区合并空闲空间5.4、Rootb分区压缩空间5.5、Roota合并空闲空间5.6、核…

高速服务区公共厕所为什么要升级做智慧公厕?@卓振思众

高速服务区智慧公厕的建设&#xff0c;将为公共卫生设施带来了全新的变革&#xff0c;可实现以下功能和效益&#xff1a; 一、服务区智慧公厕功能精准厕位引导&#xff1a;高速服务区人流量大&#xff0c;尤其是在节假日等高峰时期&#xff0c;厕所常常人满为患。智慧公厕系统可…

【论文阅读】A Closer Look at Parameter-Efficient Tuning in Diffusion Models

Abstract 大规模扩散模型功能强大&#xff0c;但微调定制这些模型&#xff0c;内存和时间效率都很低。 本文通过向大规模扩散模型中插入小的学习器(称为adapters)&#xff0c;实现有效的参数微调。 特别地&#xff0c;将适配器的设计空间分解为输入位置、输出位置、函数形式的…

基于Ubuntu22.04 安装SSH服务

安全外壳协议&#xff08;Secure Shell&#xff0c;简称 SSH&#xff09;是一种在不安全网络上用于安全远程登录和其他安全网络服务的协议。 SSH 由 IETF 的网络小组&#xff08;Network Working Group&#xff09;所制定&#xff0c;SSH 为建立在应用层基础上的安全协议。SSH…

Excel“取消工作表保护”忘记密码并恢复原始密码

文章目录 1.前言2.破解步骤3. 最终效果4.参考文献 1.前言 有时候别人发来的Excel中有些表格不能编辑&#xff0c;提示如下&#xff0c;但是又不知道原始密码 2.破解步骤 1、打开您需要破解保护密码的Excel文件&#xff1b; 2、依次点击菜单栏上的视图—宏----录制宏&#xf…

音频格式转换方法有哪些?学会这3个方法让音频转换从未如此简单

在音乐的世界里&#xff0c;我们常常遇到各种格式的音频文件&#xff0c;它们就像是五线谱上的音符&#xff0c;需要不同的乐器来演绎。 热爱音乐的我&#xff0c;经常需要将这些音频文件转换成适合我设备播放的格式。在线音频格式转换工具&#xff0c;就像是我的音乐小助手&a…

【传输层协议】UDP协议 {端口号的范围划分;UDP数据报格式;UDP协议的特点;UDP的缓冲区;基于UDP的应用层协议}

一、再谈端口号 1.1 端口号标识网络进程 如何通过端口号找到主机上的网络进程&#xff1f; 在socket编程中bind绑定是最为重要的一步&#xff1a;他将套接字与指定的本地 IP 地址和端口号关联起来&#xff0c;这意味着指定的套接字可以接收来自指定 IP 地址和端口号的数据包…

收银系统源码助力零售门店数字化升级

一、国内零售业数字化转型迈入深水区 近年来&#xff0c;我国零售业数字化进程显著加速&#xff0c;从线上电商到新零售模式&#xff0c;再到利用大数据、人工智能等技术优化供应链、提升体验&#xff0c;每一步都见证了行业的深刻变革。随着零售行业进入存量市场竞争&#xf…

微服务设计原则——高性能:存储设计

文章目录 1.读写分离2.分库分表3.动静分离4.冷热分离5.重写轻读6.数据异构参考文献 任何一个系统&#xff0c;从单机到分布式&#xff0c;从前端到后台&#xff0c;功能和逻辑各不相同&#xff0c;但干的只有两件事&#xff1a;读和写。而每个系统的业务特性可能都不一样&#…

LangChain框架深度解析:对Chains组件的全方位探索与实战案例

文章目录 前言一、Chains二、LLMChain⭐1.LLMChain介绍2.LLMChain案例 三、SimpleSequentialChain⭐1.SimpleSequentialChain介绍2.SimpleSequentialChain案例 四、SequentialChain⭐1.SequentialChain介绍2.SequentialChain案例 五、RouterChain⭐1.RouterChain介绍2.RouterCh…

leetcode:2520. 统计能整除数字的位数(python3解法)

难度&#xff1a;简单 给你一个整数 num &#xff0c;返回 num 中能整除 num 的数位的数目。 如果满足 nums % val 0 &#xff0c;则认为整数 val 可以整除 nums 。 示例 1&#xff1a; 输入&#xff1a;num 7 输出&#xff1a;1 解释&#xff1a;7 被自己整除&#xff0c;因…

大模型概念入门:探索这一AI技术的奥秘

一、引言 ChatGPT、Open AI、大模型、提示词工程、Token、幻觉等人工智能的黑话&#xff0c;在2023年这个普通却又神奇的年份里&#xff0c;反复的冲刷着大家的认知。让一部分人彻底躺平的同时&#xff0c;让另外一部分人开始焦虑起来&#xff0c;生怕在这个人工智能的奇迹之年…

JRE和JDK概念区分

1.JRE Java Runtime Environment&#xff1a;java运行环境。JVMJava类库。开发好的java程序&#xff0c;直接运行&#xff0c;可只安装JRE。 2.JDK Java Development Kit&#xff1a;java软件开发工具包。JREJava开发工具。编译、运行java代码。 3.总结 JRE就是运行Java字…

跨界融合,《黑神话:悟空》这把火,能否为实景三维再造商机?

8月20号&#xff0c;国产3A游戏《黑神话&#xff1a;悟空》正式上线&#xff0c;全球发售 这几天&#xff0c;国产游戏《黑神话:悟空》终于面世&#xff0c;迅速引爆了全球游戏市场。 《黑神话&#xff1a;悟空》作为一款国产3A游戏&#xff0c;不仅在游戏设计和玩法上实现了…

智慧水务项目(七)vscode 远程连接ubuntu 20.04 服务器,调试pyscada,踩坑多多

一、说明 以前用过pycharm&#xff0c;远程连接还可以&#xff0c;但是vscode用以前还可以&#xff0c;就用它开发python了&#xff0c;想搞个远程&#xff0c;源码直接放服务器上&#xff0c;能远程调试&#xff0c;其实也很方便的&#xff0c;结果第一次还成功了&#xff0c;…

语雀:高效记录与整理编程学习笔记的最佳实践

目录 语雀&#xff1a;高效记录与整理编程学习笔记的最佳实践 一、编程学习笔记的要求与目的 二、记录编程学习笔记的目的 三、如何高效地记录与整理编程学习笔记 四、推荐平台&#xff1a;语雀 1、语雀的优势&#xff1a; 2、如何使用语雀整理编程学习笔记&#xff1a;…

Java二十三种设计模式-状态模式(20/23)

本文深入探讨了状态模式&#xff0c;一种允许对象根据其内部状态变化而改变行为的软件设计模式。文章从定义、组成部分、实现方式、使用场景、优缺点分析、与其他模式的比较&#xff0c;到最佳实践和建议&#xff0c;全面介绍了状态模式的各个方面。通过Java语言的实现示例和实…

Aixos食用指南,超全面详细讲解!

前言&#xff1a;axios是目前最流行的ajax封装库之一&#xff0c;用于很方便地实现ajax请求的发送。特意花费了两个小时为大家准备了一份全面详细的Aixos食用指南&#xff0c;需要的小伙伴点个关注 哦~&#x1f495; &#x1f308;&#x1f308;文章目录 Axios 简介 Axios 特…

基于cubemx的STM32F103ZET6的freertos实现多任务流水灯

1、任务概述 使用freertos多任务系统实现正点原子STM32F103ZET6开发板的流水灯点亮控制。 2、cubemx设置 &#xff08;1&#xff09;SYS设置&#xff0c;注意选择定时器源为TIM1-TIM8的任一个&#xff0c;因为滴答定时器被多任务系统占用不能选择 &#xff08;2&#xff09;时…