大型言语模型 (LLM) 经过运用思想链 (CoT) 提示生成中心推理链作为揣度答案的根本原理,在杂乱推理上表现出了令人形象深入的功用。 但是现有的 CoT 研讨首要会集在言语模态上。 咱们提出 Multimodal-CoT(多模态思想链推理模型),它将言语(文本)和视觉(图画)模态结合到一个两阶段结构中,该结构将根本原理生成和答案推理分隔。 经过这种方式,答案推理能够运用根据多模态信息的更好的生成原理。 运用 Multimodal-CoT,作者提出的模型在 对ScienceQA 数据集进行评价,成果显现在少于 10 亿个参数下比之前 LLM(GPT-3.5)高出 16 个百分点(75.17%→91.68% )的准确率。

论文地址:arxiv.org/abs/2302.00… 代码地址:github.com/amazon-scie…

本文研讨在小于 10 亿参数的状况下就发生了功用提升,是如何做到的呢?简略来讲,本文提出了包含视觉特征的 Multimodal-CoT,经过这一范式(Multimodal-CoT)来寻找多模态中的 CoT 推理。

【论文解读】如何使用1B参数的小模型吊打GPT3.5

1 什么是COT

COT全称为Chain-of-Thought,界说是在应对推理使命时,在给出终究答案之前所发生的中心推理过程,载体是一系列的短语句 。简略来说,思想链是一种离散式提示学习,更具体地,大模型下的上下文学习(即不进行练习,将例子添加到当时样本输入的前面,让模型一次输入这些文本进行输出完结使命),比较于之前传统的上下文学习,即经过x1,y1,x2,y2,….x_test作为输入来让大模型补全输出y_test,思想链多了中心的一些闲言碎语絮絮不休,以下面这张图为例子:

【论文解读】如何使用1B参数的小模型吊打GPT3.5

上图展现了在 CoT 诞生之前是怎样运用标准的 prompting 办法来求解推理使命的。首要这是一个少样本学习的办法,需求给出一些问题和答案的样例,然后拼接这正想要求解的问题,最终再拼接一个字符串“A:”之后输入到大言语模型中,让大言语模型进行续写。大言语模型会在所供给的问题和答案的样例中学习如何求解,成果发现很简略出错,也便是上面说到的大言语模型在推理使命上很简略遇到瓶颈

【论文解读】如何使用1B参数的小模型吊打GPT3.5

上图展现了 CoT 的做法,CoT 与 Standard prompting 仅有的差异便是,CoT 在样例中在给出问题的一起,不仅给出了答案,在答案之前还给出了人为写的中心推理过程。在把问题、中心推理过程和答案的若干样例拼接上所想要求解的问题和字符串“A”,再输入到言语模型之后,言语模型会自动地先续写中心推理过程,有了这些推理过程之后,它就会更简略地给出正确答案,也便是能够更好地处理推理这类的问题

2 研讨背景

2.1 运用LLM进行CoT推理

最近,CoT 已被广泛用于激发多步LLM 的推理才能。具体来说,CoT 技能鼓舞 LLM 生成用于处理问题的中心推理链,首要技能有Zero-SHot-CoTFew-Shot-CoTManual-CoTAuto-CoT

【论文解读】如何使用1B参数的小模型吊打GPT3.5

优化推理演示

Few-Shot-CoT的功用比较依赖于演示的质量,运用不同人员编写的演示例子在符号推理使命中发生的准确性浮动比较大。除了手工制作演示之外,最近的研讨还研讨了调整演示挑选过程的办法,比方Auto-CoT。除此之外,还有作者提出了根据杂乱性的言语模型中的强化学习(RL)和多模态思想链推理策略,现已取得有用的证明,比方GPT-3.5。

优化推理链

优化推理链的一个常用的办法是问题分化,有人提出了最小到最大的提示,将杂乱问题分化为子问题,然后依次处理这些子问题。因而,对从前处理的子问题的答案有助于处理一个给定的子问题。

2.2 经过微调模型引出CoT推理

最近的一个爱好是经过微调言语模型来引出CoT推理。在一个带有CoT注释的大规模数据集上对Encoder-Decoder结构的T5模型进行了微调。但是,当运用CoT来揣度答案时,能够观察到功用的急剧下降,即在答案(推理)之前生成推理链,相反,CoT只被用作答案之后的解说。后续有人经过对一个更大的教师模型发生的思想链输出的学生模型来微调知识蒸馏,该办法在算术、知识和符号推理使命方面都表现出了功用的进步。具体论文和代码能够查阅《Large Language Models Are Reasoning Teachers》: 论文链接:arxiv.org/pdf/2212.10…

项目地址:github.com/itsnamgyu/r…

3 多模态CoT的应战

现有研讨表明,CoT推理才能或许以一定规模出现在言语模型中,例如超过1000亿个参数。但是,在1b模型中引出这种推理才能仍然是一个未处理的应战,更不用说在多模态场景中了。本篇论文工作的重点是1b模型,由于它们能够用顾客级gpu(例如,32G内存)进行微调和布置。在本节中,作者进行了一些列试验,研讨了为什么1b模型在CoT推理中失利,并研讨如何规划一个有用的办法来克服应战。

3.1 CoT的效果

首要,作者在ScienceQA基准测试上微调了CoT推理的纯文本基线,采用UnifiedQABase作为文本主体模型。3咱们的使命被建模为一个文本生成问题,其间模型将文本信息作为输入,并生成由根本原理和答案组成的输出序列。如图1所示的一个示例,该模型将问题文本(Q)、上下文文本(C)和多个选项(M)的标记串联起来作为输入。

【论文解读】如何使用1B参数的小模型吊打GPT3.5

为了研讨CoT的影响,咱们将其功用与三种变量进行了比较: (i)直接猜测答案(QCM→A)(无CoT);(ii)推理+猜测答案(QCM→RA);(iii)猜测答案+解说(QCM→AR)。

【论文解读】如何使用1B参数的小模型吊打GPT3.5
令人惊讶的是,咱们观察到,假如模型在答案之前猜测原因或许原理(QCM→RA),准确率下降↓了12.54%(80.40%→67.86%)。成果表明,这些理论原理不一定有助于猜测正确的答案。在其他研讨中也观察到相似的现象,其间合理的原因或许是模型在取得所需的答案之前超过了最大长度限制,或提早停止生成猜测。但是,咱们发现生成的输出(RA)的最大长度总是小于400个字符,这低于言语模型的长度限制(即UnifiedQABase中的512个)。因而,它值得更深入地研讨为什么这些理论原理会影响答案推理效果。

3.2 模型被“错觉”推理误导

为了深入研讨推理如何影响答案猜测,咱们将CoT问题分为两个阶段,推理生成和答案猜测。咱们核算出了推理生成和答案猜测的RougeL分数和准确性。表3显现了根据两阶段结构的成果。尽管两阶段基线模型取得了91.76的RougeL分数,但答案推理精度仅为70.53%。与表2中的QCM→A(80.40%)比较,成果显现,在两阶段结构中生成的根本原理并没有进步答案的准确性。

【论文解读】如何使用1B参数的小模型吊打GPT3.5
然后,咱们随机抽样50个过错案例,发现该模型倾向于发生误导答案揣度的错觉理由。如图2所示,
【论文解读】如何使用1B参数的小模型吊打GPT3.5
模型(左部分)发生错觉,“一个磁铁的南极最靠近另一块磁铁的南极”。咱们发现,这些过错在过错状况中发生的份额为64%

【论文解读】如何使用1B参数的小模型吊打GPT3.5

3.3 多模态有助于完结有用的根本推理

咱们推测,这种错觉推理现象是由于缺少必要的来履行有用的多模态cot的视觉环境。为了注入视觉信息,一种简略的办法是将成对的图画转换为标题然后在两个阶段的输入中附加标题。但是,如表3所示,运用标题只能发生边沿的功用进步(↑0.59%)。然后,咱们经过将视觉特征合并到言语模型中来探索一种高档技能。具体地说,咱们将成对的图画输入DETR模型来提取视觉特征。

然后咱们在输入解码器之前 将视觉特征和言语表明交融。有趣的是,有了视觉特征,理论基础生成的RougeL得分现已进步到96.97%(QCM→R),这相应地有助于更好的回答准确率到达84.91%(QCMR→A)。有了这些有用的理由,错觉现象就得到了缓解,其间62.5%的错觉过错现已被纠正所示,视觉特征确实有利于发生有用的理由,并有助于准确的答案揣度。由于表3中的两阶段办法(QCMR→A)比表2中的一切单阶段办法都有更好的功用,因而咱们在多模态-cot结构中挑选了双阶段办法。

4 多模态COT

总的来说,咱们需求一个能够生成文本特征和视觉特征并运用它们生成文本响应的模型。又已知文本和视觉特征之间存在的某种交互,本质上是某种一起留意力机制,这有助于封装两种模态中存在的信息,这就让借鉴思路成为了或许。为了完结一切这些,作者挑选了 T5 模型,它具有编码器 – 解码器架构,而且如上所述,DETR 模型用于生成视觉特征。

【论文解读】如何使用1B参数的小模型吊打GPT3.5


class T5ForMultimodalGeneration(T5ForConditionalGeneration):
    _keys_to_ignore_on_load_missing = [
        r"encoder.embed_tokens.weight",
        r"decoder.embed_tokens.weight",
        r"lm_head.weight",
    ]
    _keys_to_ignore_on_load_unexpected = [
        r"decoder.block.0.layer.1.EncDecAttention.relative_attention_bias.weight",
    ]
    def __init__(self, config: T5Config, patch_size, padding_idx, save_dir):
        super().__init__(config)
        self.model_dim = config.d_model
        self.padding_idx = padding_idx
        self.out = open(os.path.join(save_dir, 'gate.txt'), 'w')
        self.shared = nn.Embedding(config.vocab_size, config.d_model)
        self.patch_num, self.patch_dim = patch_size
        self.image_dense = nn.Linear(self.patch_dim, config.d_model)
        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)
        self.gate_dense = nn.Linear(2*config.hidden_size, config.hidden_size)
        self.sigmoid = nn.Sigmoid()
        encoder_config = copy.deepcopy(config)
        encoder_config.is_decoder = False
        encoder_config.use_cache = False
        encoder_config.is_encoder_decoder = False
        self.encoder = T5Stack(encoder_config, self.shared)
        decoder_config = copy.deepcopy(config)
        decoder_config.is_decoder = True
        decoder_config.is_encoder_decoder = False
        decoder_config.num_layers = config.num_decoder_layers
        self.decoder = T5Stack(decoder_config, self.shared)
        self.lm_head = nn.Linear(config.d_model, config.vocab_size, bias=False)
        # Initialize weights and apply final processing
        self.post_init()
        # Model parallel
        self.model_parallel = False
        self.device_map = None

4.1 编码器

模型F (X)一起接受言语和视觉输入,并经过以下功用得到文本表明HlanguageH_{language}和图画特征HvisionH_{vision}

【论文解读】如何使用1B参数的小模型吊打GPT3.5
T5 模型的编码器担任生成文本特征,但 T5 模型的解码器并没有运用编码器发生的文本特征,而是运用作者提出的一起留意式交互层(co-attention-styled interaction layer)的输出。

拆解来看,假设HlanguageH_{language}是 T5 编码器的输出。XvisionX_{vision} 是 DETR 的输出。第一步是确保视觉特征和文本特征具有相同的隐藏大小,以便咱们能够运用留意力层。

4.2 交互层

在取得言语和视觉表明后,咱们运用单头留意网络将文本字符与图画像素相关联,其间查询(Q)、键(K)和值(V)为HlanguageH_{language}XvisionX_{vision}XvisionX_{vision} ,其间留意力输出Hvisionattn∈Rn∗dH^{attn}_{vision} \in R^{n*d}被界说为:

【论文解读】如何使用1B参数的小模型吊打GPT3.5

然后,咱们使用门控交融机制如去交融文本和视觉特征

【论文解读】如何使用1B参数的小模型吊打GPT3.5

hidden_states = encoder_outputs[0]
image_embedding = self.image_dense(image_ids)
image_att, _ = self.mha_layer(hidden_states, image_embedding, image_embedding)
merge = torch.cat([hidden_states, image_att], dim=-1)
gate = self.sigmoid(self.gate_dense(merge))
hidden_states = (1 - gate) * hidden_states + gate * 

4.3 解码层

最终,解码器将交融的输出HfuseH_{fuse}输入transformers,猜测方针Y。算法1显现了多模态COT的完整过程。

【论文解读】如何使用1B参数的小模型吊打GPT3.5

5 试验成果

作者运用 UnifiedQA 模型的权重作为 T5 模型的初始化点,并在 ScienceQA 数据集上对其进行微调。他们观察到他们的 Multimodal CoT 办法优于一切曾经的基准,包含 GPT-3.5。有趣的地方在于,即便只有 2.23 亿个参数的根本模型也优于 GPT-3.5 和其他 Visual QA 模型!这突出了拥有多模态架构的力气。

【论文解读】如何使用1B参数的小模型吊打GPT3.5
作者还展现了他们的两阶段办法优于单阶段办法。
【论文解读】如何使用1B参数的小模型吊打GPT3.5

6 试验定论

文本深入研讨了多模态CoT的问题,提出了多模态cot,它将言语和视觉模式整合到一个两阶段的结构中,将根本推理生成和答案猜测分隔,因而答案推理能够运用从多模态信息中更好地生成的根本推理。经过多模态cot,成果表明该办法在ScienceQA基准上的准确率超过GPT-3.5 有16个百分点。

这篇论文带来的最大收成是多模态特征在处理具有视觉和文本特征的问题时是多么强大。

  • 作者展现了运用视觉特征,即便是小型言语模型(LM)也能够发生有意义的思想链 / 推理,而错觉要少得多,这提醒了视觉模型在发展根据思想链的学习技能中能够发挥的效果。
  • 从试验中,咱们看到以几百万个参数为代价添加视觉特征的方式,比将纯文本模型扩展到数十亿个参数能带来更大的价值。

参考资料

  • 超越GPT 3.5的小模型来了!
  • Chain of Thought论文、代码和资源【论文精读】 – 哔哩哔哩
  • 思想链(Chain-of-thoughts)作为提示 – 知乎<
  • Chain of Thought 开山之作论文详解 – 知乎
  • 思想链微调Fine-tune-CoT办法:大型言语模型教小模型一步一步推理 – 智源社区
  • 有了Fine-tune-CoT办法,小模型也能做推理,完美逆袭大模型 – 智源社区
  • 首个标示具体解说的多模态科学问答数据集,深度学习模型推理有了思想链-51CTO.COM
  • 上海交大&亚马逊|言语模型的多模态思想链推理 – 智源社区