去年年底,OpenAI 向公众推出了 ChatGPT,一经发布,这项技术立即将 AI 驱动的聊天机器人推向了主流话语的中心,众多研究者并就其如何改变商业、教育等展开了一轮又一轮辩论。
随后,科技巨头们纷纷跟进投入科研团队,他们所谓的「生成式 AI」技术(可以制作对话文本、图形等的技术)也已准备就绪。
众所周知,ChatGPT 是在 GPT-3.5 系列模型的基础上微调而来的,我们看到很多研究也在紧随其后紧追慢赶,但是,与 ChatGPT 相比,他们的新研究效果到底有多好?近日,亚马逊发布的一篇论文《Multimodal Chain-of-Thought Reasoning in Language Models》中,他们提出了包含视觉特征的 Multimodal-CoT,该架构在参数量小于 10 亿的情况下,在 ScienceQA 基准测试中,比 GPT-3.5 高出 16 个百分点 (75.17%→91.68%),甚至超过了许多人类。
这里简单介绍一下 ScienceQA 基准测试,它是首个标注详细解释的多模态科学问答数据集 ,由 UCLA 和艾伦人工智能研究院(AI2)提出,主要用于测试模型的多模态推理能力,有着非常丰富的领域多样性,涵盖了自然科学、语言科学和社会科学领域,对模型的逻辑推理能力提出了很高的要求。
论文地址:https://arxiv.org/abs/2302.00923
项目地址:https://github.com/amazon-science/mm-cot
下面我们来看看亚马逊的语言模型是如何超越 GPT-3.5 的。
包含视觉特征的 Multimodal-CoT
大型语言模型 (LLM) 在复杂推理任务上表现出色,离不开思维链 (CoT) 提示的助攻。然而,现有的 CoT 研究只关注语言模态。为了在多模态中触发 CoT 推理,一种可能的解决方案是通过融合视觉和语言特征来微调小型语言模型以执行 CoT 推理。
然而,根据已有观察,小模型往往比大模型更能频繁地胡编乱造,模型的这种行为通常被称为「幻觉(hallucination)」。此前谷歌的一项研究也表明( 论文 Chain-of-Thought Prompting Elicits Reasoning in Large Language Models ),基于 CoT 的提示只有在模型具有至少 1000 亿参数时才有用!
也就是说,CoT 提示不会对小型模型的性能产生积极影响,并且只有在与 ∼100B 参数的模型一起使用时才会产生性能提升。
然而,本文研究在小于 10 亿参数的情况下就产生了性能提升,是如何做到的呢?简单来讲,本文提出了包含视觉特征的 Multimodal-CoT,通过这一范式(Multimodal-CoT)来寻找多模态中的 CoT 推理。
Multimodal-CoT 将视觉特征结合在一个单独的训练框架中,以减少语言模型有产生幻觉推理模式倾向的影响。总体而言,该框架将推理过程分为两部分:基本原理生成(寻找原因)和答案推理(找出答案)。
Multimodal CoT 两阶段过程:使用文本(问题 + 上下文)和视觉特征来产生逻辑依据。
数据集
本文主要关注 ScienceQA 数据集,该数据集将图像和文本作为上下文的一部分,此外,该数据集还包含对答案的解释,以便可以对模型进行微调以生成 CoT 基本原理。此外,本文利用 DETR 模型生成视觉特征。
较小的 LM 在生成 CoT / 基本原理时容易产生幻觉,作者推测,如果有一个修改过的架构,模型可以利用 LM 生成的文本特征和图像模型生成的视觉特征,那么 更有能力提出理由和回答问题。
架构
总的来说,我们需要一个可以生成文本特征和视觉特征并利用它们生成文本响应的模型。
又已知文本和视觉特征之间存在的某种交互,本质上是某种共同注意力机制,这有助于封装两种模态中存在的信息,这就让借鉴思路成为了可能。为了完成所有这些,作者选择了 T5 模型,它具有编码器 - 解码器架构,并且如上所述,DETR 模型用于生成视觉特征。
T5 模型的编码器负责生成文本特征,但 T5 模型的解码器并没有利用编码器产生的文本特征,而是使用作者提出的共同注意式交互层(co-attention-styled interaction layer)的输出。
拆解来看,假设 H_language 是 T5 编码器的输出。X_vision 是 DETR 的输出。第一步是确保视觉特征和文本特征具有相同的隐藏大小,以便我们可以使用注意力层。
注意:所有代码片段均来自论文的 GitHub:https://github.com/amazon-science/mm-cot/blob/main/model.py
self.image_dense = nn.Linear(self.patch_dim, config.d_model)
W_h 本质上是一个线性层,H_vision 对应最终的视觉特征。W_h 有助于更改视觉特征的大小以匹配文本特征的大小。
下面我们需要添加一个注意力层,以便视觉和文本特征可以相互交互。为此,作者使用单头注意力层,将 H_language 作为查询向量,将 H_vision 作为键和值向量。
self.mha_layer = torch.nn.MultiheadAttention(embed_dim=config.hidden_size,
kdim=config.hidden_size, vdim=config.hidden_size, num_heads=1, batch_first=True) image_att, _ = self.mha_layer(hidden_states, image_embedding, image_embedding)
现在我们有了包含来自文本和视觉特征的信息的嵌入。随后,作者利用门控融合来生成最终的一组特征,这些特征将被发送到解码器。门控融合有两个步骤:
获取一个介于 0 和 1 之间的分数向量,以确定每个注意力特征的重要性。
利用 score 融合 text 和 attention 特征。
W_I 和 W_v 本质上是两个线性层。
self.gate_dense = nn.Linear(2*config.hidden_size, config.hidden_size) self.sigmoid = nn.Sigmoid() hidden_states = encoder_outputs[0] merge = torch.cat([hidden_states, image_att], dim=-1) gate = self.sigmoid(self.gate_dense(merge)) hidden_states = (1 - gate) * hidden_states + gate * image_att
最后,融合的特征被传递给解码器。
decoder_outputs = self.decoder( input_ids=decoder_input_ids, attention_mask=decoder_attention_mask, inputs_embeds=decoder_inputs_embeds, past_key_values=past_key_values, encoder_hidden_states=hidden_states,
这几乎就是作者所遵循的架构!但是,请记住有两个阶段。第一个阶段是产生基本原理 / CoT。第二阶段利用第一阶段产生的 CoT 来产生答案,如上图所示。
结果
作者使用 UnifiedQA 模型的权重作为 T5 模型的初始化点,并在 ScienceQA 数据集上对其进行微调。他们观察到他们的 Multimodal CoT 方法优于所有以前的基准,包括 GPT-3.5。
有趣的地方在于,即使只有 2.23 亿个参数的基本模型也优于 GPT-3.5 和其他 Visual QA 模型!这突出了拥有多模态架构的力量。
作者还展示了他们的两阶段方法优于单阶段方法。
结论
这篇论文带来的最大收获是多模态特征在解决具有视觉和文本特征的问题时是多么强大。
作者展示了利用视觉特征,即使是小型语言模型(LM)也可以产生有意义的思维链 / 推理,而幻觉要少得多,这揭示了视觉模型在发展基于思维链的学习技术中可以发挥的作用。
从实验中,我们看到以几百万个参数为代价添加视觉特征的方式,比将纯文本模型扩展到数十亿个参数能带来更大的价值。
参考内容:
https://pub.towardsai.net/paper-review-multimodal-chain-of-thought-reasoning-a550f8de693c
编辑:黄飞
评论
查看更多