Kosmos-1: 通用接口架构下的多模态大语言模型

Kosmos-1: 通用接口架构下的多模态大语言模型
FesianXu 20230513 at Baidu Search Team

前言

在大规模语言模型(Large Language Model, LLM)看似要带来新一番人工智能变革浪潮之际,越来越多尝试以LLM作为通用接口去融入各种任务的工作,之前我们在[2]中曾经对其进行过简单介绍,比如尝试用LLM去控制浏览器、搜索引擎甚至是机械臂等。本文介绍的工作kosmos-1是LLM与多模态信号结合的一种尝试,对笔者有所启发,在此给大家进行推荐。如有谬误请见谅并联系指出,本文遵守CC 4.0 BY-SA版权协议,转载请联系作者并注明出处,谢谢

∇ \nabla 联系方式:

e-mail: FesianXu@gmail.com

github: https://github.com/FesianXu

github page: https://fesianxu.github.io/

知乎专栏: 计算机视觉/计算机图形理论与应用

微信公众号:机器学习杂货铺3号店


笔者曾在博文 [3] 中对MetaLM [4] 进行过介绍,而本文待要介绍的Kosmos [1,5]系列工作则是在MetaLM的设计思路下进行的进一步优化,具体来说就是继承了MetaLM中采用因果语言模型作为通用任务接口,采用各种子任务编码器1对各类型输入数据进行编码的范式。在Kosmos系列中,范式保持了一致,模型也无特别变化,主要升级点在数据方面,Kosmos 1.0在MetaLM纯文本数据和图文对数据的基础上,引入了图文交织数据(image-text interleave data),使之具有了更强的in-context learning能力;而Kosmos 2.0则在Kosmos 1.0的基础上引入了图文基准数据(image-text grounding data),使之具有了图文基准(grounding)、图文指代(referring)的能力,我们下文就依次进行讨论。

图文交织数据,指的是多张相关的图片穿插在文本中,笔者在博文 [6] 中曾经讨论过Flamingo模型对于交织数据的使用,感兴趣的读者可移步阅读。为何在Kosmos 1.0中要引入图文交织数据呢?故事回到了该论文的标题,“Language is not all you need: Aligning perception with language models.”,想必大家都关注到了加粗的那两个词,“对齐感知”,而这是当前LLM中很火的一个话题。图文交织数据比起图文对数据,前者的上下文信息更为充足,能从多个角度对穿插在文中的图片进行多角度解释,也即是“对齐感知”的程度更加彻底,反观后者,图文对数据多是对互联网中图片的alt-text文本等进行处理后收集得到的,亦或是在搜索引擎中对用户的行为分析后收集得到,具有很大的噪声,光用图文对数据训练的模型,对齐能力因此也会受到极大的限制。图文交织数据有如此大的好处,那么我们要如何采集这类型数据呢?如Fig 1 (a)所示,一种可行的方法是采集用户在聊天软件中的对话,由于当前主流聊天软件已经支持非常丰富的多模态输入(如图片、语音、视频、文本等),因此通过合适的筛选可以获取非常丰富的图文交织数据。当然,从聊天软件中采集需要对聊天纪录进行爬取,对于个人或者研究机构来说,都可能面临资源和法律风险,因此适合于某些聊天软件/社区大厂的使用(比如腾讯的QQ和微信)。对于一般的研究者和机构来说,采集网页中的图文交织数据更有性价比,如Fig 1 (b)所示,通过爬取公开的网页,对DOM进行解析后可以清理出图文交织数据。显然,来自于聊天和网页的图文交织数据分布差异很大,目前公开论文工作看到的都是后者,而笔者暂时没发现以前者方式收集的,猜测是多在大厂内部使用而未公开,因此笔者暂无法对这两者的优劣特点进行分析。从笔者的猜测来看,基于聊天的图文交织数据会更加的口语化,因此用于训练chat bot等基于多轮对话的应用模型来说,是一个更好的选择,而基于网页的内容则可能更加权威,适合做一些世界模型的探索。

在这里插入图片描述

Fig 1. 来自于聊天的图文交织数据和来自于网页的图文交织数据示例。

在kosmos 1.0中,作者在原始20亿级别的网页快照中筛选了7100万网页(英文网页)2,然后从挑选出的网页中提取出文字和图片,对于每个网页会将提取图片的数量限制在5张以内以减少噪声和冗余,同时随机舍弃掉了一半只含有一张图片的网页,最终将这些提取出来的文字和图片构建成图文交织数据。最终kosmos 1.0将这些图文交织数据和纯文本数据、图片文本对数据一起用于训练,如Fig 2所示,从公开数据看都是采用的英文语料进行训练的。
在这里插入图片描述

Fig 2. Flamingo 1.0所采用的的数据类型。

在经过这些数据进行预训练后,作者将kosmos 1.0在很多语言任务、跨模态迁移、IQ测试、感知——语言任务、视觉任务等上进行了zero-shot/few-shot测试,这些指标大多都达到了SOTA水平,具体的实验结果笔者就不在博客里面陈列了,笔者注意到的是在试验部分展现得到几个点。第一,作者将kosmos 1在OCR-free 语言理解任务中进行了测试,所谓的OCR-free指的是不另外对图片中的文本信息进行OCR提取后处理,而是直接将原始图片输入到模型中端到端计算。作者在 Rendered SST-2和HatefulMemes中进行了测试,如Fig 3所示,可以看到Flamingo 1.0在OCR-free文本理解任务上有一定的优势,这意味着Flamingo 1.0的视觉模型能一定程度上感知到图片中OCR语义。笔者之前在训练CLIP的时候已经发现了CLIP模型具有一定的OCR-free能力,从Flamingo 1.0的实验结果来看将视觉模型和语言模型结合后,同样能继承这种能力,这是否意味着以后文本输入甚至也可以作为视觉输入的一种进行统一化呢?毕竟人类对于文本还是图片的感知都由眼睛作为感受器接受信息,本质上都是视觉信息,这值得我们思考。
在这里插入图片描述

Fig 3. OCR-free文本理解任务。

作者在将kosmos 1.0用在评估多模态任务时候,采用了多模态思维链(Multimodal Chain of Thought, MCoT)技术,如Fig 4所示,通过对图文输入进行CoT提示后,能提高一些问答的准确性。笔者理解其本质是通过对图片的视觉信息进行CoT提示后,能获取很多额外和图片相关信息,这些信息可能并不完全是对图片的直接视觉信息描述,而是会包含一些和图片的底蕴、历史背景、社会背景等相关的信息 [7],笔者称之为延伸语义。如Fig 4的例子所示,通过CoT提示词让模型介绍图片细节,可以知道这幅图片是来自于电影WALL-E中,这个信息可能来自于大量的图文预训练数据中,而从大量的文本预训练数据中,模型又可以知道WALL-E这部电影由皮克斯动画工作室出品,从而最终能得到正确答案。因此在多模态思维链技术中,笔者认为是结合了图文、文本预训练数据的综合优势的,而这优势对于模型性能而言可能并不是线性提升的,而是指数级提升的。如Fig 5所示,采用了多模态思维链技术后,在Render SST-2任务上有5.8%的可观提升。

在这里插入图片描述

Fig 4. 标准prompt技术和多模态思维链prompt技术对比。

在这里插入图片描述

Fig 5. 采用了多模态思维链技术后,在Render SST-2任务上有5.8%的贡献。

当然,多模态大语言模型首先是一个语言模型,因此评估MLLM的纯语言任务能力也是一个值得探索的事情,这能让我们观察LLM在引入多模态能力的过程中是否会灾难性遗忘掉其语言建模的能力。如Fig 6所示,作者对比了kosmos-1和LLM结果的对比,可以发现大多数任务上的结果和LLM持平(平均值偏低些),而有些任务上甚至还有优势,这说明引入多模态信息不会影响LLM对于文本能力的建模。

在这里插入图片描述

Fig 6. kosmos-1模型与LLM模型在纯语言任务上的对比。

同时,作者尝试引入了纯文本的指令微调,如Fig 7所示,即便只是采用了纯文本的指令微调,在大部分数据集上都能带来客观的性能收益,这似乎证实了指令微调数据的重要作用,能有效提高模型指令跟随(Instruction-following)的能力,在后续的一些工作,如InstructBLIP [8], LLaVa[9]中尝试引入多模态的指令微调数据,而这又是后话了。

在这里插入图片描述

Fig 7. 从实验中能看到指令微调在Flickr30k、VQAv2、VizWiz等数据集下的收益。

如Fig 8所示,其实kosmos-1在论文中是作为一种通用模型接口框架下的多模态大模型进行叙述的,如之前在MetaLM [3]中的解释,通过一个因果语言模型去承接来自不同模态的输入,因此理论上kosmos-1的输入除了文本和图片外,还可以是视频、音频等,然而本作中并没有进一步试验。同时,笔者似乎也没在原文中看到有关于对交织图文数据有效性的消融试验,但是笔者还是愿意相信该数据带来的收益,特别是in-context任务上的收益,未来如何更好的收集图文交织数据也是值得关注的点。
在这里插入图片描述

Fig 8. Kosmos-1是一个通用接口框架下的多模态大模型。

Reference

[1]. Huang, Shaohan, Li Dong, Wenhui Wang, Yaru Hao, Saksham Singhal, Shuming Ma, Tengchao Lv et al. “Language is not all you need: Aligning perception with language models.” arXiv preprint arXiv:2302.14045 (2023). short for Kosmos 1

[2]. https://blog.csdn.net/LoseInVain/article/details/130500648,增强型语言模型——走向通用智能的道路?!?

[3]. https://blog.csdn.net/LoseInVain/article/details/136161262, 《【论文极速读】MetaLM:一种融合因果语言模型和非因果语言模型的方法》

[4]. Hao, Yaru, Haoyu Song, Li Dong, Shaohan Huang, Zewen Chi, Wenhui Wang, Shuming Ma, and Furu Wei. “Language models are general-purpose interfaces.” arXiv preprint arXiv:2206.06336 (2022). aka MetaLM

[5]. Peng, Z., Wang, W., Dong, L., Hao, Y., Huang, S., Ma, S., & Wei, F. (2023). Kosmos-2: Grounding Multimodal Large Language Models to the World. arXiv preprint arXiv:2306.14824. aka Kosmos 2

[6]. https://blog.csdn.net/LoseInVain/article/details/136072993, 《【论文极速读】Flamingo:一种交织图文的视觉语言大模型方法》

[7]. https://fesianxu.github.io/2023/03/04/story-of-multimodal-models-20230304/, 《视频与图片检索中的多模态语义匹配模型:原理、启示、应用与展望》

[8]. Liu, Haotian, Chunyuan Li, Yuheng Li, and Yong Jae Lee. “Improved baselines with visual instruction tuning.” arXiv preprint arXiv:2310.03744 (2023). aka InstructBLIP

[9]. Liu, Haotian, Chunyuan Li, Qingyang Wu, and Yong Jae Lee. “Visual instruction tuning.” Advances in neural information processing systems 36 (2024). aka llava


  1. 此处的子任务编码器,由于在MetaLM中主要是采用基于MLM训练的Transformer模型进行文本和图片编码,因此也被称之为非因果语言模型。 ↩︎

  2. 筛选规则包括过滤掉所有非英文网页,将无图片的网页去除,将网页中所有分辨率小于 64 × 64 64 \times 64 64×64的图片去除,将所有单色图片去除等,同时也会将无意义的网页去除,比如垃圾邮件等。 ↩︎

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

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

相关文章

【vue】ant-design弹出框无法关闭和runtimecore提示isFucntion is not function的问题修复

【vue】ant-design弹出框无法关闭和runtimecore提示isFucntion is not function的问题修复,初步分析是vue发布3.4版本以后引起的兼容性问题。 问题截图: 1.isFucntion is not function,是由于vue升级后众多插件版本不匹配造成的问题 2.弹框…

计算机中msvcp140.dll,丢失怎么修复与解决

一、msvcp140.dll20个软件环境 msvcp140.dll文件是许多软件运行环境的组成部分,通常与Microsoft Visual C Redistributable关联。以下是可能使用该文件的软件环境: 微软办公软件:如Microsoft Office套件,包括Word、Excel、Power…

Python给图片加水印

受到“手动给证件加文字太麻烦”的感触,想用Python来实现给图片加水印,这不方便多了。 这里使用PIL模块: from PIL import Image from PIL import ImageFont from PIL import ImageDrawimg_t Image.open(cat.jpg) img_size_t img_t.size…

OJ:循环队列

622. 设计循环队列 - 力扣(LeetCode) 思路 思路:首先循环队列的意思是:空间固定,就是提前开辟好,满了就不能插入了,但是删除数据后仍有空间,删除循环队列里面的数据后,保…

Apache ECharts数据可视化技术

介绍 官方地址:Apache ECharts 快速入门案例echarts.init //初始化方法 <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>ECharts</title><!-- 引入刚刚下载的 ECharts 文件 --><script src"echart…

基于JavaWEB SpringBoot婚纱影楼摄影预约网站设计和实现

基于JavaWEB SSM SpringBoot婚纱影楼摄影预约网站设计和实现 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言…

《The Art of InnoDB》第二部分|第5章:深入结构-内存结构-缓冲区Buffer Pool

5.1 缓冲区Buffer Pool 目录 5.1 缓冲区Buffer Pool 5.1.1 Buffer Pool 结构 5.1.2 LRU List 5.1.3 Page Hash 5.1.4 Flush List 5.1.5 Change Buffer 5.1.6 小结 5.1.1 Buffer Pool 结构 Buffer Pool(缓冲池)在InnoDB存储引擎中是一个包罗万象的概念。它主要用于缓…

Java Swing游戏开发学习8

内容来自RyiSnow视频讲解 上一节提到的bug&#xff0c;不知道有没有人发现&#xff1f; 在播放音乐和音效的时候使用的是同一个clip对象&#xff0c;播放背景音乐在前&#xff0c;后续播放音效&#xff0c;clip对象就被覆盖了&#xff0c;因此导致调用停止播放背景音乐的时候&a…

计算机组成原理之机器:总线

计算机组成原理之机器 笔记来源&#xff1a;哈尔滨工业大学计算机组成原理&#xff08;哈工大刘宏伟&#xff09; Chapter2&#xff1a;总线 2.1 总线的基本概念 1.为什么需要总线&#xff1f;有几百个部件需要连接进行信息传输 2.什么是总线&#xff1f;总线是连接各个部件…

七、链表问题(上)

160、相交链表&#xff08;简单&#xff09; 题目描述 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; 题目数据 保证 整个…

如何选择阿里云服务器配置?(CPU/内存/带宽/磁盘)

阿里云服务器配置怎么选择&#xff1f;CPU内存、公网带宽和系统盘怎么选择&#xff1f;个人开发者或中小企业选择轻量应用服务器、ECS经济型e实例&#xff0c;企业用户选择ECS通用算力型u1云服务器、ECS计算型c7、通用型g7云服务器&#xff0c;阿里云服务器网aliyunfuwuqi.com整…

对象得定义与使用(动力节点老杜)

对象思想 1.什么是面向过程&#xff0c;什么是面向对象&#xff1f; 换而言之&#xff0c;面向对象思想实际就是将整体分成一个个独立的单元&#xff0c;每个单元都有自己得任务和属性&#xff0c;所有单元结合在一起完成一个整体。如果某个单元出现了问题还可以及时处理&…

比肩Gen-2,全新开源文生视频模型

著名开源平台Stability.ai在官网宣布&#xff0c;推出全新文生视频的扩散模型Stable Video Diffusion&#xff0c;已开源了该项目并公布了论文。 据悉&#xff0c;用户通过文本或图像就能生成高精准&#xff0c;14帧和25帧的短视频。目前&#xff0c;Stable Video Diffusion处…

回溯算法02-组合总合III(Java)

2.组合总合III 题目描述 找出所有相加之和为 n 的 k 个数的组合&#xff0c;且满足下列条件&#xff1a; 只使用数字1到9每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次&#xff0c;组合可以以任何顺序返回。 示例 1: 输入: k 3,…

[Linux]如何理解kernel、shell、bash

文章目录 概念总览kernelshell&bash 概念总览 内核(kernel) &#xff0c;外壳(shell) &#xff0c;bash kernel kernel是指操作系统中的核心部分&#xff0c;用户一般是不能直接使用kernel的。它主要负责管理硬件资源和提供系统服务&#xff0c;如内存管理、进程管理、文件…

Pytest测试技巧之Fixture:模块化管理测试数据!

在 Pytest 测试中&#xff0c;有效管理测试数据是提高测试质量和可维护性的关键。本文将深入探讨 Pytest 中的 Fixture&#xff0c;特别是如何利用 Fixture 实现测试数据的模块化管理&#xff0c;以提高测试用例的清晰度和可复用性。 什么是Fixture&#xff1f; 在 Pytest 中…

【考研数学】武忠祥各阶段用书搭配+学习包

25考研数学全流程规划&#xff01;别等到二战了才知道这样学 本人属于基础很差相当于是零基础的考研党&#xff0c;经过一年备考成功上岸 中间花费了很多时间在考研数学备考信息检索上&#xff0c;写下这篇希望能帮助基础不好的学弟学妹们多节约一些时间复习&#xff01; 25…

【PowerMockito:编写单元测试过程中原方法没有注入的属性在跑单元测试时出现空指针】

出错场景 下面这一步报空指针&#xff0c;但是因为没有注入&#xff0c;在测试类中无法使用Mock 解决 在执行方法前&#xff0c;加入以下代码 MemberModifier.field(ResourceServiceImpl.class,"zero").set(resourceService,"0");

好用的linux截屏工具-snipaste安装使用

window直接微软商店或者官网&#xff0c;下载 linux先官网下载linux版本的snipaste 是一个名为Snipaste-2.8.9-Beta-x86_64.AppImage的文件 要在 Ubuntu 上将 Snipaste AppImage 设置为开机自启动并在后台持续运行&#xff0c;进行操作&#xff1a; 1.创建一个启动脚本&#…

python Plotly可视化

文章目录 Plotly常用函数PolarPlotlymake_subplotsadd_tracego.Scatterpolarglupdate_tracesupdate_layout综合示例 完整版 Python在数据可视化方面有着丰富的库和函数&#xff0c;其中一些常用的库包括 Matplotlib、Seaborn、Plotly、Bokeh等。 Plotly是一个交互式绘图库&…