清华开源图文对话大模型!表情包解读有一手,奇怪的 benchmark 增加了
量子位 | 公众号 QbitAI
什么,最懂表情包的中文开源大模型出现了??!
就在最近,来自清华的一个叫 VisualGLM-6B 的大模型在网上传开了来,起因是网友们发现,它连表情包似乎都能解读!

像这个腊肠犬版蒙娜丽莎,它不仅准确理解了这是腊肠犬与蒙娜丽莎的“合体照”,还点出了这只是一幅虚构作品:

又像是这个正在出租车后熨衣斗的男子,它也一眼看出了“不对劲”的地方:

值得一提的是,在此前 GPT-4 刚发布时,网友们也同样将它用来测了测常识理解能力:

就如同弱智吧问题是大模型语言理解能力的 benchmark 一样,表情包简直就是大模型图片理解能力的 benchmark。
要是它真能理解网友们奇奇怪怪的表情包,那 AI 简直没有什么不能 get 到的信息点了啊!
我们赶紧测试了一波,看看它究竟效果如何。
gif 也能看懂,但解读太过正经
目前,VisualGLM-6B 已经推出了网页端试玩版。
只需要在 Hugging Face 的试玩界面上传图片,再与它进行“对话”,它就能生成理解图片的结果:

先试试初级难度的表情包。
官方给出了几个问题示例,例如“描述一下这个场景”、“这是什么东西”、“这张图片描述了什么”,我们就先尝试一下这几个问题。
输入一只正在听歌的小猫,让 VisualGLM-6B 描述一下表情包中的场景:

还不错,VisualGLM-6B 准确 get 了小猫享受音乐或使用电子设备这个过程!
再输入一个章鱼哥表情包,问它“这是什么东西”:

也没问题。看起来能拿给爸妈用了(手动狗头)。

再试试用吃饭小狗,让 VisualGLM-6B 解读一下这张图片描述了什么:

看起来初级表情包都没什么问题,是时候加大力度了。
上传一个 gif 试试?第一眼似乎没有问题:

但再换一个 gif 试试就会发现,它似乎只理解了第一帧图像,猜测是不是“主角在试图抓住或捕捉它”,但实际上只是在扔钞票:

与之前的一些图片理解 AI 不同,VisualGLM-6B 在解读时会着重介绍表情包角色中的面部表情,例如“它看起来不舒服或者紧张”:

BUT!当我们再上一点难度,给表情包配上文字之后,它就无法理解表情包的含义了:

尤其是这种靠配文传达表情包精髓的,VisualGLM-6B 就会开始展现“瞎解读”的功底:

如果图像拼接太多,它还会出现奇怪的 bug,例如把摸鱼狗头人认成大鲨鱼:

而且,它在描述表情包的时候整体比较正经,不会解读图像以外的“用意”。

例如,有网友测试了一下经典的“熊猫人显卡”表情包:

以及周星驰的经典“我全都要”表情包:

显然 VisualGLM-6B 能大致理解图片的场景,但对于表情包的配文就无法理解了。
总结一下,对于包含经典作品角色的表情包,或是经过文字加工前的“原始”表情包,VisualGLM-6B 能说出这个角色的名字,或是描述出其中的场景:

虽然也可以让它描述情绪,不过 AI 看出来的情绪,可能和最终表情包表达的情绪不太一样:

但一旦表情包加上了文字、或是被 P 进了新场景,VisualGLM-6B 就会因为无法解读图片中文字的意思,而变得“看不懂梗”了。

△有时候还会解读错乱,例如狗看成猪
那么,拥有一部分解读表情包能力的 VisualGLM-6B,究竟是什么来头?
多模态对话 VisualGLM-6B,最低只需 8.7G 显存
事实上,VisualGLM-6B 并非专门为“表情包解读”而开发。
它是由智谱 AI 和清华大学 KEG 实验室打造的开源多模态对话模型,主要用于中文图像理解,解读表情包可以说只是它被开发出来的一个“副业”。
它的正经用法,一般是酱婶的:

提起这个团队,大家更熟悉的可能是 ChatGLM-6B 大模型。
后者此前我们有作介绍:
它是“清华系 ChatGPT”的一员,2022 年 8 月发布,共 62 亿规模参数,支持中英双语对话。
上线 4 天就突破 6k star,目前已经近 25k。

据介绍,VisualGLM-6B 正是在 ChatGLM-6B 的基础上完成:
ChatGLM-6B 负责它的语言模型部分,图像部分则通过训练 BLIP2-Qformer 构建起视觉模型与语言模型的“桥梁”。
因此,VisualGLM-6B 整体模型共 78 亿参数。
具体而言,VisualGLM-6B 的预训练在中英文权重相同的情况下,在 30M 高质量中文图文对和 300M 经过筛选的英文图文对上完成(来自 CogView 数据集)。
这一训练方法可以将视觉信息对齐到 ChatGLM 的语义空间。
微调阶段,VisualGLM-6B 又在长视觉问答数据上训练,以生成符合人类偏好的答案。
与此同时,VisualGLM-6B 由 SwissArmyTransformer (简称“sat” ) 库训练,这是一个支持 Transformer 灵活修改、训练的工具库,支持 Lora、P-tuning 等参数高效微调方法。
最终,本项目既提供了 HuggingFace 接口,也提供了基于 sat 的接口。
要说 VisualGLM-6B 最大的特点,便是结合模型量化技术,可以让大家在消费级的显卡上进行本地部署,INT4 量化级别下最低只需 8.7G 显存。

具体包含三种部署工具:
一是命令行 Demo。执行命令:
python cli_demo.py
然后程序便自动下载 sat 模型,大家就可以在命令行中进行交互式的对话了。
输入指示并回车即可生成回复,输入 clear 可以清空对话历史,输入 stop 终止程序。

二是基于 Gradio 的网页版 Demo。
需要先安装 Gradio:pip install gradio,然后下载并进入本仓库运行 web_demo.py,最后在浏览器中打开系统输出的地址即可使用。

三是 API 部署。需要安装额外的依赖:pip install fastapi uvicorn,然后运行仓库中的 api.py。
更多细节和推理、量化部分的方法就不赘述了,可戳参考链接[1]查看官方介绍。
需要注意的是,如官方所述,VisualGLM-6B 正处于 V1 版本,视觉和语言模型的参数、计算量都较小,因此会出现相当多的已知局限性,像图像描述事实性/模型幻觉问题、图像细节信息捕捉不足,以及一些来自语言模型的局限性等等。
就如下面这张测试,VisualGLM-6B 描述得还挺到位的,能看出是阿根廷和世界杯,但别被蒙了:图上并没有阿圭罗和迪马利亚这两位球星。

因此,官方也称将在后续继续针对以上问题进行一一改进。
不过,拥有图片解读能力的大模型,也并不只有 VisualGLM-6B 一个。
目前来看,表现比较好的“表情包杀手”还是 GPT-4,从网友测试来看,它已经能根据表情包中的文字解读 meme:

开源大模型方面,基于 Vicuna-13B 开发的 MiniGPT-4 也能解读图片,同样只需要一张单卡 RTX3090 就能搞定:

不过在这批大模型中,VisualGLM-6B 强调的则是“中文开源”特点,换而言之,它在中文描述上可能会比其他大模型更准确一些。
你试玩过这些“表情包解读 AI”了吗?感觉谁更能 get 人类思想精华?(手动狗头)VisualGLM-6B 试玩地址:https://huggingface.co/spaces/lykeven/visualglm-6b
参考链接:[1]https://mp.weixin.qq.com/s/SzS6Gx8ZjtBXXQ7cs8-zLQ[2]https://twitter.com/thukeg/status/1659079789599248386
卡奥斯开源社区是为开发者提供便捷高效的开发服务和可持续分享、交流的 IT 前沿阵地,包含技术文章、群组、互动问答、在线学习、大赛活动、开发者平台、OpenAPI 平台、低代码平台、开源项目等服务,社区使命是让每一个知识工人成就不凡。
评论