来源 | 新智元  微信号:AI-era

先是ChatGPT的发布给世界带来了一点小小的NLP震撼,随后发布的GPT-4更是破圈计算机视觉,展现了非凡的多模态能力。

不光能读懂人类的梗,给个手绘草图甚至可以直接写出网站的代码,彻底颠覆了对语言模型、视觉模型能力边界的认知。

GPT-4:图里的这个「Lighting充电线」,看起来就是个又大又过气的VGA接口,插在这个又小又现代的智能手机上,反差强烈。

不过像GPT-4这么好的模型,CloseAI选择闭源,让广大AI从业者实在是又爱又恨。

最近,来自沙特阿拉伯阿卜杜拉国王科技大学的研究团队开源了GPT-4的平民版MiniGPT-4,从效果上看已经基本具备GPT-4所展现出的多个功能,包括手写网页示意图生成代码、解读图像中的梗等。

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

项目链接:https://minigpt-4.github.io/

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

想要本地部署,一行代码即可搞定!

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

默认加载选项为8bit Vicuna模型以节省GPU内存,beam search的宽度为1,大约需要23G显存。

为了实现有效的MiniGPT-4,研究人员提出了一个两阶段的训练方法,先在大量对齐的图像-文本对上对模型进行预训练以获得视觉语言知识,然后用一个较小但高质量的图像-文本数据集和一个设计好的对话模板对预训练的模型进行微调,以提高模型生成的可靠性和可用性。

文中的研究结果表明,MiniGPT-4具有许多与 GPT-4类似的能力,如通过手写草稿生成详细的图像描述和创建网站;还可以观察到 MiniGPT-4的其他新功能,包括根据给定的图像创作故事和诗歌,为图像中显示的问题提供解决方案,教用户如何根据食物照片烹饪等。

论文作者朱德尧来自泉州,目前是阿卜杜拉国王科技大学(KAUST)的博士生,主要研究方向包括多模态大语言模型、预测模型和强化学习。

论文共同一作Jun Chen目前是阿卜杜拉国王科技大学 Vision-CAIR 研究小组的博士生,主要研究方向为多模态学习、自监督学习和大规模预训练模型。

MiniGPT-4模型架构

研究人员认为,「GPT-4强大的多模态生成能力主要来自于更强的语言模型」。

为了验证这点,研究人员选择固定住语言模型和视觉模型的参数,然后只用投影层将二者对齐:MiniGPT-4的语言解码器使用Vicuna(基于LLaMA构建),视觉感知部分使用与BLIP-2相同的视觉编码器。

1. 预训练阶段

为了从大量对齐的图像-文本对中获取视觉-语言知识,研究人员把注入投影层的输出看作是对语言模型的软提示(soft prompt),促使它生成相应的ground-truth文本;并且预训练的视觉编码器和视觉编码器在预训练阶段始终保持参数不变,只训练线性投影层。

训练数据集包括Conceptual Caption, SBU和LAION,使用4张A100(共80GB显存) GPU以256的batch size训练了20000步,覆盖了大约500万个图像-文本对。

虽然在预训练后,MiniGPT-4已经展现了丰富的知识,并能够对人类的query提供合理的回复。

不过还是可以观察到MiniGPT-4仍然很难生成连贯的语言输出,比如经常会生成重复的词或句子、零散的句子或不相关的内容,这些问题也阻碍了MiniGPT-4与人类进行流畅的视觉对话的能力。

还可以注意到GPT-3也存在类似的问题:即便在大量的语言数据集上进行了预训练,GPT-3还是不能直接生成符合用户意图的语言输出;但通过指令微调和从人类反馈中进行强化学习的过程后,GPT-3就成功蜕变为了GPT-3.5,并能够生成对人类更友好的输出。

所以只对MiniGPT-4进行预训练是不够的。

2. 高质量的视觉-语言对齐数据集

虽然在自然语言处理领域,指令微调数据集和对话相关数据集很容易获得,但对于视觉语言领域来说,并不存在对应的数据集,所以为了让MiniGPT-4在生成文本时更自然、更有用,还需要设计一个高质量的、对齐的图像-文本数据集。

在初始阶段,使用预训练后得到的模型来生成对给定图像的描述,为了使模型能够生成更详细的图像描述,研究人员还设计了一个符合Vicuna语言模型的对话格式的提示符。

###Human: <Img><ImageFeature></Img> Describe this image in detail. Give as many details as possible. Say everything you see. ###Assistant:

其中<ImageFeature>表示线性投影层生成的视觉特征,如果生成的描述不足80个tokens,就添加额外的提示符「#Human:Continue#Assistant:」继续生成。

最后从Conceptual Caption中随机选择了5000幅图像,并生成对应的描述。

数据后处理

目前生成的图像描述仍然包含许多噪音和错误,如重复的单词、不连贯的句子等,研究人员使用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.

修正给定段落中的错误。删除重复的句子、无意义的字符、不是英语的句子等等。删除不必要的重复。重写不完整的句子。直接返回结果,无需解释。如果输入的段落已经正确,则直接返回,无需解释。

最后为了保证数据质量,手动验证每个图像描述的正确性,并得到了3500个图像-文本对。

3. 微调阶段

研究人员使用预定义的模板提示来优化预训练模型。

###Human: <Img><ImageFeature></Img> <Instruction> ###Assistant

其中<Instruction>表示从预定义指令集中随机抽样的指令,包含各种形式的指令,例如「详细描述此图像」或「您能为我描述此图像的内容吗」等。

需要注意的是,微调阶段没有计算特定文本-图像提示的回归损失,所以可以生成更自然、可靠的回复。

MiniGPT-4的微调过程非常高效,batch size为12的话,只需要400个训练步,使用单个A100 GPU训练7分钟即可。

示例

MiniGPT-4表现出了与GPT-4类似的多模态能力。

给一张图片,可以让模型生成非常详细的图像描述。

识别图像中的梗,比如解释「一到周一,人就像图里的小狗一样,一周中最令人恐惧的一天」。

还可以发现图像中不寻常的内容,比如「狼和小羊在同一片草地」。

还可以根据手绘图生成一个网站的代码。

MiniGPT-4还可以识别图像中的问题并提供解决方案,比如「洗衣机冒出了大量泡泡」是因为过载等原因,可以检查洗衣液是不是放多了、清理一下排水管或是看看洗衣机是不是坏了。

创作以图像为主题的诗歌或说唱歌曲。

编写图像背后的故事。

为图像中的产品写广告词。

甚至还可以知道换头表情包里的人是Tesla和Space X的CEO马斯克。

提供一些有深度的图像评论。

检索与图像相关的事实,比如给个《教父》的截图就可以让模型检索到对应的电影信息。

甚至给个食物的照片,可以让模型输出一份菜谱。

更多强大的功能等你解锁!

参考资料:

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

GPT-4开源平替miniGPT-4来了,仅需23G显存单机可run,附论文、项目代码地址相关推荐

  1. ChatGPT开源平替(1)——ChatGLM

    ChatGLM-6B 由清华大学唐杰团队开发的是一个开源的.支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数.结合模型量化技术,用户 ...

  2. ChatGPT的平替来了?一文总结 ChatGPT 的开源平替,你值得拥有

    文章目录 [AIGC精选]总结 ChatGPT 的开源平替,你值得拥有 1.斯坦福发布 Alpaca 7B,性能匹敌 GPT-3.5 2.弥补斯坦福 Alpaca 中文短板,中文大模型 BELLE 开 ...

  3. 服务器dnf虚拟机多开吃显存吗,安卓模拟器多开对显卡有没有什么要求?

    1.模拟器对内存,CPU要求高些. 2.这个基本都是虚拟机多开. 3.然后,显存最好大于512M (8开,建议1G显存). 4.这样算下来,每开一个需要1.5G内存,8开至少12G内存 建议16G. ...

  4. 讯景rx560D战狼版896流处理器,镁光显存开核失败抢救方法

    本方法适用于讯景rx560D战狼版开核失败,出现画面撕裂,黑屏,驱动打不上等问题的急救. 先上图 提醒! 显存是镁光的! 显存是镁光的! 显存是镁光的! 重要的事情说三遍 看好显存品牌再刷,刷黑不负责 ...

  5. ChatGPT开源平替——OpenChatKit(前OpenAI团队打造)

    ❤️觉得内容不错的话,欢迎点赞收藏加关注

  6. 最新ChatGPT开源平替模型骆马(Vicuna) 单个GPU就能跑!UC伯克利领头,130亿参数「小羊驼」权重公布

    转载:单个GPU就能跑!UC伯克利领头,130亿参数「小羊驼」权重公布 [导读]刚刚,UC伯克利.CMU.斯坦福等,联手发布了最新开源模型骆马(Vicuna)的权重. 3月31日,UC伯克利联手CMU ...

  7. 推荐一个Google Analytics的开源平替

    Matomo是领先的Free/Libre开放分析平台. Matomo是一个功能齐全的PHP MySQL软件程序,您可以下载并安装在您自己的Web服务器上.在五分钟的安装过程结束时,您将看到一个Java ...

  8. 用树莓派DIY车钥匙,开锁仅需90秒

    贾浩楠 木易 发自 凹非寺  量子位 报道 | 公众号 QbitAI 一辆售价80-90万的特斯拉Model X,只用2000块就能开走??? 这不是特斯拉在搞什么购车金融方案,而是比利时鲁汶大学的研 ...

  9. 微信多开txt_微信仅需3步操作,就能多开登录?手把手包教包会

    微信作为月活跃破十亿大关的国民社交软件,我们每天都会用到,尤其是在工作的时候,我们经常需要登录一个工作号,一个私人号,很多人都是PC端登工作号,网页端回复私人号,未免太麻烦了, 你知道么?简单3步,教 ...

最新文章

  1. 深入SecureFile—新一代LOB揭秘000
  2. BZOJ 2820 莫比乌斯反演
  3. MySQL数据库以及其Python用法
  4. Java 8 stream forEach filter anyMatch
  5. SpringMVC的上传与下载
  6. facade 门面 php,php设计模式之门面(Facade)模式
  7. 《HTML5与CSS3实战指南》——第2章 HTML5样式的标记2.1 The HTML5 Herald简介
  8. 使用DataX从ORACLE同步数据到MYSQL
  9. java sleep 精度,java – Thread.sleep(x)是否足以在Android中用作时钟?
  10. 专业运维配的vsftpd.conf
  11. Java知识积累——参数个数可变的函数(Varargs)
  12. 手机怎么修改浏览器的html,手机设置默认浏览器
  13. 二阶偏微分方程matlab解答,二阶椭圆偏微分方程实例求解(附matlab代码).docx
  14. 腾讯通rtx中心服务器,腾讯通(RTX)详细使用教程
  15. JanusGraph配置
  16. 李航统计学习方法课件 ---由清华大学深圳研究院袁春教授制作
  17. ngrinder启动项目时报错Error creating bean with name ‘emf‘ defined in org.ngrinder.infra.config.DatabaseConf
  18. 三国杀ol服务器维护时间 11月6日,三国杀ol11月6日更新一览 聚宝盆功能上线
  19. 基于VMware 的 hive安装与启动
  20. 【毕业设计】基于Stm32的便携体测仪(心率 体温) - 单片机 嵌入式 物联网

热门文章

  1. 查看前端Vue版本命令
  2. ISTA 2A、ISTA3B、ISTA 3E标准的分析与解读
  3. NFS与IOS-Android
  4. 淘宝宝贝描述加背景图片
  5. 机器学习案例——鸢尾花数据集分析
  6. oracle复制表包括注释,oracle 快速复制表结构、表数据
  7. 复现KGAT: Knowledge Graph Attention Network for Recommendation(四)
  8. 代理模式(四):代理模式效果与适用场景
  9. C++设计模式之建造者模式(builder)(创建型)
  10. Emacs Lisp 功能扩展集锦