当前位置: 首页 > news >正文

《深入浅出多模态》(八)多模态经典模型: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等改进模型。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • qt-16可扩展对话框--隐藏和展现
  • 【硬件模块】震动传感器模块
  • Python做统计图之美
  • 注意!美国跨境选品风向变动,低价产品反成抢手货!
  • vos3000怎样对接voip落地语音网关呢?卡机和O口网关的配置技巧有哪些?
  • 牛客JS题(四十五)数组去重
  • Element-05.组件-Form表单
  • JavaSE-详细介绍
  • Python 环境搭建指南 超详细
  • SpringBoot自动配置
  • vscode 远程免密登录
  • springCloudAlibaba整合log4j2
  • react中使用nextjs框架,前端调后端接口跨域解决方式
  • 从0开始搭建vue + flask 旅游景点数据分析系统(十一):登录、注册页面、未登录拦截、注销逻辑
  • 信息学奥赛一本通1259:【例9.3】求最长不下降序列
  • 【Amaple教程】5. 插件
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • 30秒的PHP代码片段(1)数组 - Array
  • docker python 配置
  • IndexedDB
  • Java精华积累:初学者都应该搞懂的问题
  • jquery cookie
  • MQ框架的比较
  • Quartz初级教程
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • V4L2视频输入框架概述
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 浅谈Golang中select的用法
  • 如何解决微信端直接跳WAP端
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • -- 数据结构 顺序表 --Java
  • 项目管理碎碎念系列之一:干系人管理
  • 怎么将电脑中的声音录制成WAV格式
  • 阿里云服务器如何修改远程端口?
  • 容器镜像
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #职场发展#其他
  • (02)vite环境变量配置
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (7) cmake 编译C++程序(二)
  • (python)数据结构---字典
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • *上位机的定义
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .NET单元测试使用AutoFixture按需填充的方法总结