Language Is Not All You Need: Aligning Perception with Language Models翻译
摘要
对语言,多模态感知,行动和世界建模的大量融合是迈向通用人工只智能的关键一步。在这项工作中,我们介绍了KOSMOS-1,这是一种Multimodal Large Language Model (MLLM),可以感知通用模态,基于上下文进行学习(即few-shot),并遵循指令(即zero-shot)。具体来说,我们在网络规模的多模态语料库中从头开始训练KOSMOS-1,包括任意交替的文本和图像,图像解释对以及文本数据。我们在各种任务上不进行梯度更新和微调,来评估了各种设置,包括zero-shot,few-shot和多模态思维链。实验结果表明,KOSMOS-1在下面几个任务上产生了令人惊讶的表现:(i)语言理解,生成和OCR无关的NLP任务(直接以文档图像作为输入),(ii)视觉语言任务,包括多模态对话,图像释义,视觉问答,(iii)视觉任务,例如带有描述的图像识别(通过文本指令指定类别)。我们还表明,MLLM可以从跨模态前迁移受益,即从语言到多模态,以及从多模态到语言来迁移知识。此外,我们引入了Raven IQ测试的数据集,该数据集诊断了MLLM的非语言推理能力。
1.Introduction: From LLMs to MLLMs
大型语言模型(LLM)已成功地作为各种自然语言任务的通用接口。只要我们能够将输入和输出转换为文本,基于LLM的接口就可以适应该任务。例如,摘要任务的输入是文档,输出是其摘要。因此,我们可以将输入文档提供给语言模型,然后产生生成的摘要。
尽管LLM被成功应用在自然语言处理领域,但它仍致力于使用LLM来处理多模态数据,例如图像和音频。作为智力的基本组成部分,多模态感知是在知识获取和对现实世界的基础方面实现通用人工智能的必要条件。更重要的是,解锁多模态输入大大扩展了语言模型在更高价值领域的应用,例如多模态机器学习,文档智能和机器人技术。
在这项工作中,我们介绍了KOSMOS-1,这是一种 Multimodal Large Language Model (MLLM),可以感知通用模态,基于上下文进行学习(即few-shot),并遵循指令(即zero-shot)。目的是将感知与LLM保持对齐,以便模型能够看和说。具体来说,我们遵循METALM方法从头开始训练KOSMOS-1模型。如图1所示,基于Transformer的语言模型被视为通用目标接口,并且感知模块与语言模型相连。我们在网络规模的多模态语料库上训练该模型,即文本数据,任意交替的图像和文本数据以及图像释义对。此外,我们通过迁移纯语言数据来校准跨模态的指令遵循能力。
如表1所示,KOSMOS-1模型本质上支持语言,感知语言和视觉任务能力。我们还在图2和图3中提供了一些生成示例。除了各种自然语言任务外,KOSMOS-1模型还可以处理各种感知密集型任务,视觉对话,视觉解释,视觉问答,图像释义, 简单的数学方程,OCR和带描述的zero-shot图像分类。我们还按照Raven’s Progressive Matrices 构建了IQ测试基准,该基准评估了MLLM的非语言推理能力。示例表明,多模态感知的支持使新LLM具有应用到新任务的机会。此外,我们表明MLLM与LLM相比获得更好的常识性推理能力,这表明跨模态迁移有助于知识获取。
关键要点如下:
From LLMs to MLLMs。正确处理感知是迈向通用人工智能的必要步骤。感知多模态输入的能力对LLM至关重要。首先,多模态感知使LLM能够获得除文本描述外的常识性知识。其次,将感知与LLM对齐为新任务(例如机器人技术和文档智能)打开了大门。第三,感知能力统一了各种API,因为图形用户界面是与之交互的最自然和通用的方式。例如,MLLM可以直接读取屏幕或从收据中提取数字。我们在网络规模的多模态语料库上训练KOSMOS-1模型,该模型可确保从不同的来源中学习。我们不仅使用大型文本语料库,还使用高质量的图像释义对,以及网络上任意交替的图像和文本文档。
Language models as general-purpose interfaces。遵循METALM中提出的理念,我们将语言模型视为通用任务层。由于开放的输出空间,我们能够将各种预测任务统一为文本。此外,语言模型可以很好地处理自然语言指令和动作序列(例如编程语言)。LLM还用作基本推理器,这是对复杂任务的感知模块的补充。因此,将世界,动作和多模态感知与通用接口(即语言模型)相结合是很自然的。
New capabilities of MLLMs。如表1所示,除了以前的LLM中发现的能力外,MLLM还具有了新的用途和能力。首先,我们可以使用自然语言指令和演示阳历来进行zero-shot和few-shot多模态学习。其次,我们通过评估Raven IQ测试来观察到非语言推理的有希望的信号,该测试衡量了人类的流体推理能力。第三,MLLM自然支持通用模态的多轮交互能力,例如多模态对话。
2.KOSMOS-1: A Multimodal Large Language Model
如图1所示,KOSMOS-1是一个多模态模型,可以感知通用模态,遵循指令,基于上下文进行学习并生成输出。给定先前的上下文,该模型学会以自回归方式生成文本。具体而言,KOSMOS-1的主干网络是基于Transformer的因果语言模型。除文本外,其他模态作为嵌入被带入到语言模型中。Transformer解码器充当以多模态作为输入的通用目标接口。我们在多模态语料库上训练KOSMOS-1,该语料库包括单模态数据,跨模态对数据和交替多模态数据。一旦训练了模型,我们就可以在语言任务和多模态任务上直接评估zero-shot和few-shot设置下的模型。
2.1 Input Representation
Transformer解码器以统一的方式感知通用模态。对于输入格式,我们将输入平铺为包含特殊字符的序列。具体来说,我们使用
<
s
>
<s>
<s>和
<
/
s
>
</s>
</s>表示序列的开始和结束。特殊字符
<
i
m
a
g
e
>
<image>
<image>和
<
/
i
m
a
g
e
>
</image>
</image>表示编码图像嵌入的开始和结尾。例如,“
<
s
>
d
o
c
u
m
e
n
t
<
/
s
>
<s>~document~</s>
<s> document </s>”是文本输入,“
<
s
>
p
a
r
a
g
r
a
p
h
<
s
>
<
i
m
a
g
e
>
i
m
a
g
e
E
m
b
e
d
d
i
n
g
<
/
i
m
a
g
e
>
p
a
r
a
g
r
a
p
h
<
/
s
>
<s>~paragraph~<s><image>image~Embedding~</image>~paragraph~</s>
<s> paragraph <s><image>image Embedding </image> paragraph </s>”是一个交替的图像 - 文本输入。附录中的表21显示了一些输入格式的示例。
嵌入模块用于将文本字符和其他输入模态编码为向量。然后将嵌入带入到解码器中。对于输入字符,我们使用查找表将它们映射到嵌入中。对于连续信号(例如,图像和音频)的方式,也可以将输入表示为离散code,然后将其视为“外部语言”。在这项工作中,遵循[HSD+22],我们采用视觉编码器作为输入图像的嵌入模块。另外,一个Resampler被用于作为注意力池化机制,来减小图像嵌入的数目。
2.2 Multimodal Large Language Models (MLLMs)
在获得输入序列的嵌入后,我们将其带入基于Transformer的解码器。从左到右的因果模型以自回归方式处理该序列,该序列通过以过去时刻上的序列为条件来产生下一时刻的字符。因果mask用于对未来的信息屏蔽。Transformer上的softmax分类器用于生成在词表上的字符。
MLLM作为通用目标接口,可以用自然语言和多模态输入进行交互。只要我们可以将输入表示为向量,该框架就可以灵活地处理各种数据类型。MLLM结合了两个最好的技术。首先,语言模型自然继承了上下文学习和指令遵循的能力。其次,通过对多模态语料库进行训练,来使感知与语言模型保持对齐。
该实现基于TorchScale库,该库是为大型模型训练而设计的。与标准Transformer结构相比,我们包括了以下修改:
MAGNETO。我们将的Transformer一个变体MAGNETO用作主要结构。MAGNETO具有更好的训练稳定性和跨模态的出色表现。它为每个子层(即多头自注意力和前向网络)引入了一个额外的LayerNorm。该方法具有一种理论上得出的初始化方法,可以从根本上改善优化,这使我们能够稳定的情况下有效地扩展模型。
XPOS。我们采用XPOS相对位置编码来进行更好的长篇上下文建模。该方法可以更好地泛华到不同的长度,即在可以以较短序列进行训练,同时以较长序列进行推理。此外,XPO可以优化注意力的分辨率,以便更精确地捕获位置信息。XPOS方法在插值和外推设置中也是有效的。
2.3 Training Objective
KOSMOS-1的训练是在网络规模的多模态语料库上进行的,包括单模态数据(例如,文本语料库),跨模态对数据(例如,图像释义对)和交替的多模态数据(例如,任意交替图像和文字的文档)。具体而言,我们使用单模态数据进行表示学习。例如,使用文本数据预训练指令遵循,上下文学习和各种语言任务进行语言建模。此外,跨模态对和交替的数据学会使对通用模态的感知与语言模型保持对齐。交替的数据也自然适合多模态语言建模任务。我们在第3.1节中介绍了训练数据收集的更多详细信息。
这些模型使用下一个token预测任务进行训练,即,根据上下文学习生成下一个字符。训练目标是最大化训练样例中token的对数似然。请注意,只有在训练损失中考虑离散字符,例如文本字符。多模态语言建模是训练模型的可扩展方式。更重要的是,各种能力的出现使训练任务有利于下游应用。
3.Model Training
3.1 Multimodal Training Data
这些模型在网络规模的多模态语料库上训练。训练数据集由文本语料库,图像释义对以及图像和文本的交替数据组成。
Text Corpora。我们用The Pile和Common Crawl (CC) 训练模型。The Pile是用于训练大规模语言模型的大型英语文本数据集,该数据集是由各种数据源产生的。我们没有对GitHub,Arxiv,Stack Exchange和PubMed Central的数据进行拆分。我们还包括Common Crawl 快照(2020-50和2021-04)数据集,CC-Stories和RealNews数据集。整个数据集都被对文档进行了精确去重和模糊去重,并过滤以排除下游任务数据。有关训练文本语料库的详细说明,请参阅附录B.1.1。
Image-Caption Pairs。图像释义对由几个数据集构建,包括英语LAION-2B,LAION-400M,COYO-700M和Conceptual Captions。通过提取图像源和相应的alt-text,从Common Crawl网络数据的网页中收集英语LAION-2B,LAION-400M和COYO-700M。Conceptual Captions也来自互联网网页。更多详细信息可以在附录B.1.2中找到。
Interleaved Image-Text Data。我们从Common Crawl快照中收集了交题的多模态数据,该数据是网页公开可用的档案。我们使用一个过滤程序从快照中的原始2B网页中选择约71M的网页。然后,我们从每个选定的网页的HTML提取文本和图像。对于每个文档,我们将图像数量限制在五个以内,以减少噪声和冗余。我们还随机丢弃只有一张图像的文档的一半来增加多样性。有关数据收集过程的更多详细信息在附录B.1.3中提供。通过使用此语料库,我们使KOSMOS-1能够处理交替的文本和图像,并提高其few-shot能力。
3.2 Training Setup
MLLM组件具有24层,其中有2048个隐藏维度,FFN中间大小为8192和32个注意力头,得到约1.3B的参数。我们使用Magneto的初始化来优化稳定性。为了更快的收敛,图像表示是从具有1024个特征维度的CLIP ViT-L/14模型中获得的。在训练期间,图像预处理成224×224分辨率。训练期间,除了最后一层,我们冻结了其余CLIP模型的参数。KOSMOS-1的参数总数约为1.6B。有关超参数的更多详细信息可以在附录A中找到。
我们使用的batch size为120万个token(来自文本语料库中的50万个token,来自图像释义对的50万个token,以及来自交替数据的20万个token),并以30万个步长训练KOSMOS-1,相当于约3600亿token。我们采用
β
=
(
0.9
,
0.98
)
β=(0.9,0.98)
β=(0.9,0.98)的AdamW优化器。我们将重量衰减设置为
0.01
0.01
0.01,然后将dropout率设置为
0.1
0.1
0.1。对于前375个热启动步骤,学习率从0提高到
2
e
−
4
2e-4
2e−4,并在其余的训练步骤中线性衰减至
0
0
0。我们使用SentencePiece来对文本进行tokenize。 我们以“full-sentence”格式预处理数据,该格式将每个输入序列用完整句子进行组合,这些句子是从一个或多个文档中连续采样的。
3.3 Language-Only Instruction Tuning
为了使KOSMOS-1与人类指示更好地保持对劲,我们执行纯语言指令微调。具体来说,我们以f (instructions, inputs, and outputs) 格式使用指令数据来继续训练模型。指令数据是纯语言的,它与训练语料库混合在一起。微调过程是作为语言建模进行的。请注意,损失中未考虑指令和输入。第4.9.1节表明,指令遵循能力的改进可以迁移到多模态。
我们将Unnatural Instructions和FLANv2结合在一起,作为我们的指令数据集。Unnatural Instructions是通过使用大型语言模型为各种自然语言处理任务生成指令而创建的数据集。它的核心数据集中有68,478个instruction-input-output三元组。FLANv2是一个涵盖不同类型的语言理解任务的数据集的集合,例如阅读理解,常识性推理和封闭式书本问答。我们从FLANv2中随机选择54K指令样例以增加我们的指令数据集。附录A.2中描述了训练超参数设置的详细信息。
qq_23966231: 大佬用什么翻译软件, 符号都处理的这么好
lyconghk: 请教个问题,这种针对math expression的decoder,词表里面的token有什么?另外论文中说用特殊符号num1, num2, num3等等去替换问题中里面的数字,如果同一个数字例如5,出现两次,但这两个5其实是针对不同东西的,例如5元和5支笔,这样需要怎么处理?
Renaissance_2237: 感谢翻译!
uuup111: 但是这篇文章的代码中好像有问题,导致了标签泄漏,,改正这个错误之后,效果变成了最差的https://kenschutte.com/gzip-knn-paper/
筑梦师King: 我真服了哈哈哈哈哈哈哈毕设要求翻译英文文献,好多相关的论文都被翻译过了