多模态版ChatGPT,拿下视觉语言新SOTA, 代码已开源

news/2024/12/21 22:55:00/

点击上方“AI遇见机器学习”,选择“星标”公众号

重磅干货,第一时间送

文|羿阁 发自 凹非寺
源|量子位

2022年流行“文生图”模型,那2023年流行什么?

机器学习工程师Daniel Bourke的答案是:反过来!

这不,一个最新发布的“图生文”模型在网上爆火,其优秀的效果引发众多网友纷纷转发、点赞。

6356dad55c9daefe86ac234fcdfe60d7.png

不仅是基础的“看图说话”功能,写情诗、讲解剧情、给图片中对象设计对话等等,这个AI都拿捏得稳稳的!

比如,当你在网上刷到诱人的美食时,只需把图片发给它,它就会立马识别出需要的食材做菜步骤

f760b253b74fd2ee4fbd3a0ce92fdba6.png

甚至图片中的一些列文虎克的细节也能“看”得清清楚楚。

当被问到如何才能从图片中倒着的房子里离开,AI的回答是:侧面不是有滑梯嘛!

ca81b6a4d114353fcb5677f8c6cfbe8e.png

这只新AI名为BLIP-2 (Bootstrapping Language-Image Pre-training 2),目前代码已开源。

最重要的是,和以前的研究不同,BLIP-2使用的是一种通用的预训练框架,因此可以任意对接自己的语言模型

有网友已经在畅想把接口换成ChatGPT后的强强组合了。

9064ace18263b4b15c2d88b133b1ea07.png

作者之一Steven Hoi更是放话:BLIP-2未来就是“多模态版ChatGPT”。

bc576cc7fa54f35017028fe9925b1d43.png

那么,BLIP-2神奇的地方还有哪些?一起往下看。

理解能力一流

BLIP-2的玩法可以说非常多样了。

只需提供一张图片,你就可以与它对话,让它看图讲故事、推理、生成个性化文本等各种要求都能满足。

举个例子,BLIP-2不仅能轻松识别图片中的景点是长城,还能介绍出长城的历史:

中国的长城是公元前221年秦始皇为了保护帝都不受北方侵略而建造的。

8928f8a59762b6a5b02338099de57ee1.png

给它一张电影剧照,BLIP-2不光知道出自哪,还知道故事的结局是be:泰坦尼克号沉没,男主淹死。

dde040495aaecb22b403976f594388f5.png

在对人类神态的拿捏上,BLIP-2同样把握得非常准确。

被问到这张图片中的男人是什么表情,他为什么这样时,BLIP-2的回答是:他害怕那只鸡,因为它正朝他飞来。

c818031a9b1f012e826622406c5252f8.png

更神奇的是,在许多开放性问题上,BLIP-2的表现也很出色。

让它根据下面的图片写一句浪漫的话:

8992cfce3e5d7b9dae23985c2694d965.png

它的回答是这样的:爱情就像日落,很难预见它的到来,但当它发生时,它是如此的美丽。

22410250817955c90a64aa979c7277c2.png

这不光理解能力满分,文学造诣也相当强啊!

76c16da5a67de596bbdef9bc2bd48fe1.png

让它给图片中的两只动物生成一段对话,BLIP-2也能轻松拿捏傲娇猫猫x蠢萌狗狗的设定:

猫: 嘿,狗狗,我能骑在你背上吗?
狗: 当然,为什么不呢?
猫: 我已经厌倦了在雪地里行走。

ac272e03223ce1b1c93fede8caab82e7.png

那么,如此强大的理解能力背后,BLIP-2究竟是怎么做到的?

多项视觉语言任务上实现新SOTA

考虑到大规模模型的端到端训练成本越来越高,BLIP-2使用的是一种通用且高效的预训练策略:

从现成的冻结预训练图像编码器和冻结的大型语言模型中引导视觉语言预训练。

这也意味着,每个人都可以选择自己想用的模型接入使用。

而为了弥补了模态之间的差距,研究者提出了一个轻量级的查询Transformer。

该Transformer分两个阶段进行预训练:

第一阶段从冻结图像编码器引导视觉语言表示学习,第二阶段将视觉从冻结的语言模型引导到语言生成学习。

2cdde5ed7c015337ea508918d86ae2bd.png

为了测试BLIP-2的性能,研究人员分别从零样本图像-文本生成、视觉问答、图像-文本检索、图像字幕任务上对其进行了评估。

最终结果显示,BLIP-2在多项视觉语言任务上都实现了SOTA。

ef37bba3b13f7e75416e791ddf713878.png

其中,BLIP-2在zero-shot VQAv2上比Flamingo 80B高8.7%,且训练参数还减少了54倍。

而且显而易见的是,更强的图像编码器或更强的语言模型都会产生更好的性能。

09252e13d88f4668e2e8e17f68cbfd60.png

值得一提的是,研究者在论文最后也提到,BLIP-2还存在一个不足,那就是缺乏上下文学习能力:

每个样本只包含一个图像-文本对,目前还无法学习单个序列中多个图像-文本对之间的相关性。

研究团队

BLIP-2的研究团队来自Salesforce Research。

84a83b85f8020bb70a3251e8b844a33a.png

第一作者为Junnan Li,他也是一年前推出的BLIP的一作。

目前是Salesforce亚洲研究院高级研究科学家。本科毕业于香港大学,博士毕业于新加坡国立大学。

研究领域很广泛,包括自我监督学习、半监督学习、弱监督学习、视觉-语言。

以下是BLIP-2的论文链接和GitHub链接,感兴趣的小伙伴们可以自取~

论文链接:
https://arxiv.org/pdf/2301.12597.pdf

GitHub链接:
https://github.com/salesforce/LAVIS/tree/main/projects/blip2 


http://www.ppmy.cn/news/973785.html

相关文章

从地图获取5A风景区位置

以下是利用Python从高德地图获取5A风景区位置并将坐标转换为WGS84的步骤: 1. 安装requests库和pyproj库。您可以使用pip命令在终端或命令提示符中安装这些库。 2. 导入requests和pyproj库: import requests import pyproj 3. 设置高德地图API密钥和…

插入,选择,堆,快速排序算法思想与复杂度

目录 插入排序 思想 算法步骤 代码 复杂度 选择排序 思想 算法步骤 代码 复杂度 堆排序 思想 算法步骤 代码 复杂度 快速排序 思想 算法步骤 代码 复杂度 稳定性 插入排序 思想 插入排序是一种简单直观的排序算法。它的工作原理是将数组分为已排序和未排序…

使用 Flask 快速构建 基于langchain 和 chatGPT的 PDF摘要总结

简介 这里不对 langchain 和 chatGPT 进行介绍,仅对实现过程进行整理 环境 Python >3.8 Flask2.2.3 Jinja23.1.2 langchain0.0.143 openai0.27.4 实现 总结功能 使用 langchain 和 openai 接口实现总结功能 实现逻辑:通过text_splitter 将pdf 分…

pytorch如何混合进度训练transformer【各种不同方式】

Trainer, no trainer, accelerator 用huggingface 的Trainer Hugging Face 的 Transformers 库为我们提供了大量预训练的 Transformer 模型,以及一个易于使用的训练和微调工具——Trainer。在 Trainer 中,我们可以很容易地启用混…

PAT乙题1007

答案 #include <iostream> #include<cstdio> #include<string> #include<vector> using namespace std; int ans; vector<int> ve; bool check(int x) {for (int i 2; i < x / i; i){if (x % i 0) return false;}return true; } int main(…

【算法基础:数学知识】4.2 约数

文章目录 约数介绍例题列表AcWing 869. 试除法求约数 &#xff08;求一个数的所有约数&#xff09;AcWing 870. 约数个数&#xff08;求一些数相乘之后的结果有几个约数&#xff0c;答案可能很大&#xff09;约数个数定理⭐解法代码 AcWing 871. 约数之和解法公式⭐ AcWing 872…

python[爬虫]爬取百万条新浪新闻 新浪滚动新闻中心(多进程)

最近在做python爬取新闻&#xff0c;所以分别研究了下新浪、网易、中国新闻网的爬取方法。其他几个网页的新闻爬取我的博客里都有&#xff0c;请自行查看~ 首先&#xff0c;因为需获取的数据为百万级别&#xff0c;所以直接选择了新浪的滚动新闻中心 https://news.sina.com.cn/…

python爬虫:爬取新浪新闻数据

1. 爬虫的浏览器伪装原理&#xff1a; 我们可以试试爬取新浪新闻首页,我们发现会返回403 ,因为对方服务器会对爬虫进行屏蔽。此时,我们需要伪装成浏览器才能爬取。 1.实战分析&#xff1a; 浏览器伪装一般通过报头进行&#xff1a; 打开某个网页&#xff0c;按F12—Network…