Kosmos-2: 在多模态大语言模型中引入基准和指代能力

2024-03-06 05:52

本文主要是介绍Kosmos-2: 在多模态大语言模型中引入基准和指代能力,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Kosmos-2: 在多模态大语言模型中引入基准和指代能力
FesianXu 20240304 at Baidu Search Team

前言

之前笔者在博文中介绍过kosmos-1模型 [1],该模型脱胎于MetaLM采用『因果语言模型作为通用任务接口』的思想,采用了多种形式的多模态数据进行训练得到。而在本文将要介绍的kosmos-2中,作者则尝试引入了基准(grounding)和指代(referring)能力,使得多模态大语言模型的人机交互形式更加友好、灵活和多样。如有谬误请见谅并联系指出,本文遵守CC 4.0 BY-SA版权协议,转载请联系作者并注明出处,谢谢。

∇ \nabla 联系方式:

e-mail: FesianXu@gmail.com

github: https://github.com/FesianXu

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

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

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


在我们正式介绍kosmos-2之前,我们首先了解下什么是指代(referring)功能和基准(grounding)功能,如Fig 1所示,这是百度app中的以图搜图功能,用户拍摄一张图片,此时用户可以对图中的多种物体进行画框,随后用户可以选择对被框框中的物体进行识别、提问或者发起搜索等。这个功能使得用户在以图搜图的场景中,可以更加灵活地和场景中的物体进行交互,这便是所谓的指代功能。各位读者有兴趣可以自行在手机百度App上体验这个功能。
fig1_image_ir

Fig 1. 百度搜索的以图搜图功能,支持一定程度的指代功能,通过画框显式筛选用户感兴趣的物体进行提问或者发起搜索。

当然,这种功能的一种最简单的实现思路就是对被框中的物体进行图片裁剪,直接对裁剪后的图片进行处理,显然这种方法将会丢失该框中物体和图片中其他物体的上下文关系。让我们举个例子,如Fig 2 (a)所示,如果对蓝色框中的物体进行提问,如果只是对蓝色框中的雪人进行裁剪后喂到模型中处理,就难以获得图片全局和被框中物体的上下文关联,因此很难分析出『他身上的微光是篝火倒映的结果』这个结论。在这个过程中,从原图中框定一些包围盒(Bounding box, bbox),通过提供这个包围盒的左上顶点坐标 ( x 0 , y 0 ) (x_0, y_0) (x0,y0)和右下角坐标 ( x 1 , y 1 ) (x_1, y_1) (x1,y1)即可。如Fig 2 (b)所示,这个过程称之为指代 (Referring),而所谓的基准(Grounding)1,则指的是模型的输出中,会对不同实体同时输出其在图中的包围盒的坐标。Grounding也可以翻译成『接地』,这让我们联想到了电子工程中的『地线』,电压的大小都是针对于地线而言的,因此『接地』『基准』可以理解为是为文本概念和视觉概念的对齐,而这个对齐更为显式,因为其要求模型提供了对应实体的包围盒坐标,此时的『地线』就是图片中特定的包围盒了。
fig2_refer_grounding

Fig 2. 基准功能和指代功能的解释和示例,可以使得多模态大语言模型具有全局的视觉理解和更灵活的人机交互能力。

如Fig 3所示,本文要介绍的kosmos-2 [2] 正是一种通过构建特定的多模态数据,引入了指代和基准能力的多模态大语言模型。作者在LAION-2B和COYO-700M数据集的基础上构建了基准图文对数据集(GRounded Image-Text pairs, GRIT),这种数据集是在<图片, 图片文本描述>成对数据的基础上,拆解和重组图片的文本描述,使得产生了不同粒度的文本片段(如名词片段、指代表述等),并通过基准物体识别模型(如GLIP [3])产出不同粒度文本片段的包围盒,通过这种方法形成了约9100万图片,1.15亿文本片段,1.37亿包围盒的GRIT数据集。将GRIT数据和Kosmos-1采用的多模态数据融合在一起训练得到了kosmos-2模型。
fig3_kosmos_2

Fig 3. Kosmos-2的示意图,其主要特点是引入了指代和基准能力。

因此kosmos-2的主要升级点其实是GRIT数据集的构建,我们着重关注下数据的构建细节。如Fig 4所示,GRIT数据的构建主要包括两大步骤:

  1. 创建名词片段-包围盒成对样本:给定一个图片-文本描述样本,对文本描述样本进行名词片段提取,同时采用物体识别模型对图片进行处理得到所有包围盒,对提取好的名词片段和包围盒进行组建,得到名词片段-包围盒成对样本。注意到作者舍弃了抽象的名词片段,如"love", “time”, "freedom"等,这些抽象的概念容易带了噪声。
  2. 产出指代表述-包围盒成对样本:只是名词片段无法对一些复杂、组合概念进行描述,因此可以考虑对名词进行一些组合,构建出所谓的指代表述(referring expression)文本,本文通过SpaCy对文本进行依存关系树(dependency tree)解析,然后依次递归每个名词片段的子节点,然后将递归的子节点的词和该名词进行拼接得到扩展。举个具体的例子如下所示。
a dog in a field of flowers的依存关系树,由SpaCy 3.6.1生成。dog              ___|____            |        in         |        |           |      field        |    ____|______     |   |           of  |   |           |    a   a        flowers1. 以dog为中心进行扩展: a dog in a field of flowers
2. 以field为中心进行扩展: a field of flowers
3. 以flowers为中心进行扩展:flowers

为了减少冗余,作者只保留了那些不被其他指代表述或者名词片段包含的部分,以刚才的扩展为例子,作者保留了"a dog in a field of flowers",而舍弃了"a field of flowers"和"a field of flowers"。然后将"a dog"的包围盒赋值给了最终保留下的"a dog in a field of flowers"。整个过程如Fig 4所示。
fig4_grit_construction

Fig 4. GRIT数据集构建流程,主要由两大步骤构成:名词片段-包围盒成对数据提取、指代表述-包围盒成对数据组建。

在模型方面,kosmos-2沿用了kosmos-1的模型结构和训练范式,但是可以提供视觉回答(以输出图片中包围盒坐标的形式提供),也可以提供视觉输入和包围盒输入。此处的包围盒输入和输出都是左上角坐标和右下角坐标的形式,为了将训练目标统一到自回归生成,有必要将连续的坐标离散化到离散的token形式。一种可行的方法是将一个长宽分别为 W W W H H H的图片均匀划分到 P × P P \times P P×P的分块(patch)中,每一个分块大小为 ( W / P ) × ( H / P ) (W / P) \times (H / P) (W/P)×(H/P)像素。对于每个分块而言给它赋予一个唯一的token id,采用每个分块的中心像素的坐标代表整个分块的左边。最终在整个词表中将会新增 P × P P \times P P×P个新的包围盒『词』,至此包围盒的输入输出和文本输入输出便是打平了。

此时一个包围盒的输入或输出如<box><loc1><loc2></box>loc1loc2表示左上角和右下角分块的token id,而<box></box>则是特殊标记,表示了包围盒的开始和结束。如果一个文本片段包含了多个包围盒,则通过<delim>这个特殊标记进行连接,最终形式如<box><loci_1><loci_2><delim>...<locj_1><locj_2></box>

然后以类似于书写markdown文档超链接的形式,给文本片段添加包围盒,如<p> text span </p><box><loc1><loc2></box>,其中的<p></p>是特殊标记,表示了需要提供基准的文本片段。最终一个完整的输入如下所示,其中的<s></s>表示整个序列的开始和结束,而<image></image>则表示了提供的视觉向量的开始和结束,<grounding> 也是一个特殊标记,用于告诉模型将文本输出进行视觉基准,这是因为在训练时候同时包含有纯文本数据、图文对数据和图文交织数据,需要<grounding> 这个特殊标记告诉模型需要进行文本输出基准了。

<s> <image> Image Embedding </image> <grounding> <p> It </p> <box> <loc44> <loc863> </box> 
seats next to <p> a campfire </p> <box> <loc4> <loc1007> </box> </s>

在kosmos-1的纯文本数据、图文交织数据、图文对数据的基础上,作者引入了GRIT基准图文数据,损失计算只对离散的token进行,如文本token和包围盒位置token,而略过特殊标记。在实验中,作者将 P = 32 P=32 P=32,因此一共新增有 32 × 32 = 1024 32 \times 32=1024 32×32=1024个包围盒位置token,一个训练batch size包含了419k个token,其中185k个token来自于文本数据集,215k来自于原始图文对数据和基准图文数据,19k个来自于图文交织数据。

作者在实验部分验证了模型的基准和指代能力,同时给出了不少测试结果,笔者没看到有需要特别注意的,就不在这里贴出来了,有兴趣的读者自行去翻阅原文即可。笔者看来,从MetaLM到kosmos-1,再到kosmos-2,其实模型结构和训练范式并没有变化,优化的点主要还是各种多模态数据的构建上,这其实也启示我们在大模型年代,如何构建更好更合适的数据可能比魔改模型结构更有收益,数据采集和清洗是一种艺术,也许我们应该给予数据更多的关注和研究。

Reference

[1]. https://blog.csdn.net/LoseInVain/article/details/136428429, 《Kosmos-1: 通用接口架构下的多模态大语言模型》

[2]. Peng, Zhiliang, et al. “Kosmos-2: Grounding Multimodal Large Language Models to the World.” arXiv preprint arXiv:2306.14824 (2023). aka Kosmos-2.

[3]. Li, Liunian Harold, et al. “Grounded language-image pre-training.” Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2022. aka GLIP.


  1. 在深度学习领域,“grounded” 通常指的是将模型的输出或表示与真实世界中的某些实体或概念相关联或对齐。这种关联可以为模型提供更丰富、更具解释性的信息,并有助于提高其性能。 当谈到“video grounded”时,这通常意味着视频数据中的某些内容与模型的输出或中间表示之间存在某种形式的对齐或关联。例如,在视频描述生成任务中,模型可能会生成描述视频内容的文本。如果这些描述确实与视频中的实际事件、物体或动作相对应,那么可以说模型在这方面是"grounded"的。简而言之,“grounded” 在这里意味着模型不仅仅是生成一些看似合理但与真实内容无关的输出,而是能够捕捉并与真实世界中的实体或事件建立联系。 ↩︎

这篇关于Kosmos-2: 在多模态大语言模型中引入基准和指代能力的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/779018

相关文章

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}

秋招最新大模型算法面试,熬夜都要肝完它

💥大家在面试大模型LLM这个板块的时候,不知道面试完会不会复盘、总结,做笔记的习惯,这份大模型算法岗面试八股笔记也帮助不少人拿到过offer ✨对于面试大模型算法工程师会有一定的帮助,都附有完整答案,熬夜也要看完,祝大家一臂之力 这份《大模型算法工程师面试题》已经上传CSDN,还有完整版的大模型 AI 学习资料,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

AI Toolkit + H100 GPU,一小时内微调最新热门文生图模型 FLUX

上个月,FLUX 席卷了互联网,这并非没有原因。他们声称优于 DALLE 3、Ideogram 和 Stable Diffusion 3 等模型,而这一点已被证明是有依据的。随着越来越多的流行图像生成工具(如 Stable Diffusion Web UI Forge 和 ComyUI)开始支持这些模型,FLUX 在 Stable Diffusion 领域的扩展将会持续下去。 自 FLU

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者