SCOTT: Self-Consistent Chain-of-Thought Distillation
摘要
大型语言模型(LMs)在一定规模以上展现了通过思维链(CoT)提示生成自由文本理由的新兴能力。虽然CoT可以带来显著的性能提升,但这种收益只在足够大的LMs中观察到。更令人担忧的是,生成的理由是否与LM的预测一致,或者是否忠实地证明了决策,很难保证。在这项工作中,我们提出了SCOTT,一种忠实的知识蒸馏方法,从一个数量级更大的教师模型中学习一个小型、自洽的CoT模型。为了形成更好的监督,我们通过对比解码从一个大型LM(教师)中引出支持黄金答案的理由,这鼓励教师生成的令人信服的令牌只有在考虑答案时才变得更加合理。为了确保忠实的蒸馏,我们使用教师生成的理由来学习一个具有反事实推理目标的学生LM,这样可以防止学生忽视理由而做出不一致的预测。实验证明,尽管产生了可比较的最终任务性能,我们的方法可以生成比基线更忠实的CoT理由。进一步的分析表明,这样的模型在做决策时更尊重理由;因此,我们可以通过改进其理由来提高其性能。
引言
大型语言模型(LMs)通过思维链(CoT)提示引出强大的推理能力(Wei等,2022b),其中要求LMs生成自由文本的理由来解释其多步推理。然而,CoT提示并不保证理由与预测一致,使得理由无法用于证明模型的行为。在本文中,我们提出了一种名为Self-Consistent Chain-Of-Thought DisTillation(SCOTT)的知识蒸馏(KD)方法,用于引出忠实的CoT推理,即小型学生模型从大型教师模型中学习,生成与其预测一致的CoT理由。
现有的研究(Shridhar等,2022;Li等,2022a)主要提出从大型LMs中学习推理,主要是为了计算效率或任务性能。它们提示一个大型的LM(教师)为下游数据集生成理由,然后用这些理由来训练一个小型的LM(学生)。然而,这些研究忽视了可能削弱理由的忠实度的两个问题。首先,LMs容易产生幻觉,意味着它们经常生成与输入不相关的文本(Maynez等,2020;Ji等,2022)因此,教师可能不会生成与答案完全支持的主题相关的理由。在我们的先导性研究中(图1),通过GPT-3生成的100个随机理由中,我们发现其中42%的理由没有提供在任务输入中没有提到的新信息,37%的理由没有对答案进行合理的解释。这种理由与答案之间的不一致将会传给学生。其次,学生可能将理由生成和答案预测视为两个独立的过程。这是由于问题和答案之间的虚假相关性,学生利用这种推理快捷方式(Branco等,2021)。这两个问题加在一起将导致一个不忠实的学生,学会生成空洞的理由,并可能做出与理由不一致的预测。
为了解决这些问题,我们提出了从两个方面分别增强基本的知识蒸馏过程。
为了从教师那里引出更多与主题相关的理由,我们提出利用对比解码的方法,旨在将每个理由与答案联系起来(§ 3.1)。这种技术鼓励教师在解码过程中生成更合理的令token,只有在考虑答案时才更合理,而不是在没有答案的情况下也相对合理。
为了训练一个忠实的学生,我们要求学生进行反事实推理,即当理由导致不同的答案时进行相应的预测(§ 3.2)。我们通过要求教师为抽样的错误答案生成一个理由来获得训练数据。由于现在学生需要根据训练过程中提供的理由给出相同问题的不同答案,因此问题和正确答案之间的推理捷径被消除了。
我们在几个需要知识密集型推理的开放领域问答任务上进行了实验。实验结果表明:(1)对比解码可以导致更一致的教师,生成更支持正确答案的理由。(2)在更一致的理由-答案对上进行训练,学生学会更好地将答案预测与理由生成联系起来。(3)通过反事实推理作为辅助训练目标,学生学会不采取推理捷径,而是更尊重理由。(4)尽管更忠实,我们的模型的性能与基准模型相当。(5)消融研究表明,尽管表现更好,较大的学生模型更容易不一致。我们的方法能够稳健地纠正不一致性,无论学生模型的大小如何。(6)有了更忠实的学生,我们可以通过修正其理由来更好地提高其性能,展示了我们的方法在模型改进方面的实用性。
图2:我们用于忠实推理的知识提炼框架概述。(a)教师:一个大型LM提示通过对比解码在培训集中的问题和黄金答案中生成一致的原理。(b)学生:一个小型LM经过微调以生成原理,然后通过反事实推理进行回答。
图3:对比解码,通过偏好只有在考虑答案时才更可信的标记,获得更有依据的黄金答案。
推理链蒸馏
我们的目标是:1)从一个大型语言模型中得到一致的理由,即那些能够很好地证明正确答案的理由,并将其作为监督信号;2)训练一个自洽的学生模型进行忠实推理,即根据生成的理由给出相应的答案。我们考虑基于语言的推理任务,其中所需的知识不包含在任务输入中。具体而言,我们专注于开放领域的问答(QA),这是之前工作中最常见的设置:给定一个问题q,要求QA系统预测出正确答案a∗。为了可解释性,我们还要求模型提供一个自由文本的理由r,来证明其预测结果。下面我们将描述一个基本的知识蒸馏框架的概述,如图2所示。然后我们讨论其局限性,并在第3节中提出我们的方法。
2.1 生成理由注释
我们不再要求人类为每个问题-答案对{q, a∗}注释理由,而是通过使用上下文学习自动从教师模型中获取理由。这个想法是在提供新实例之前,用一些带注释的示例作为演示来提示一个冻结的语言模型作为教师。每个示例包括从训练集中随机抽样的问题q,正确答案a∗和一个人工注释的理由r,该理由证明了为什么a∗是正确的。提示p的格式如图2所示(左侧的提示部分)。为了获得新问题q的理由,一种基本策略可以是贪婪解码,即在每一步选择最合理的令牌:
2.2 训练学生模型
现在有了带注释的训练数据{q, r, a∗},我们可以训练一个较小的模型作为学生。有许多方法可以实现一个既能进行预测又能生成理由的问答模型。在这项工作中,我们专注于自我理由化的范式,即学生首先生成理由,然后在生成的理由的条件下预测答案。这与其他相关工作不同,其他工作进行后理由化,即在预测答案后生成理由,或者进行多任务学习,将理由生成视为除了答案预测之外的辅助任务。之所以这样选择,是因为后两种范式中的理由生成不会影响决策,因此一开始就无法保证理由的忠实性。给定一个问题q,学生模型被训练输出一个由理由令牌和答案令牌连接而成的序列,如图2所示(右侧的输出部分)。一个直接的实现方法是使用标准语言模型损失对教师使用的生成的银标训练数据进行微调的文本到文本语言模型训练:
我们称之为事实推理损失。
3 蒸馏一个自洽的学生
在前面的部分中,描述了基本的知识蒸馏过程,但存在两个重要问题。首先,神经语言模型已知存在幻觉问题,即它们经常生成与输入不相关的文本(Maynez等,2020;Ji等,2022)。这将导致生成的理由不支持给定的答案。理由与答案之间的不一致将传递给学生模型,使学生误以为答案预测与理由生成无关。其次,学生模型可能会通过采取推理捷径(Branco等,2021)学习预测答案,而不考虑生成的理由(即使答案预测是基于理由条件的)。这是因为各种隐式推理任务数据集中存在问题和答案之间的虚假相关性(Gururangan等,2018;Zellers等,2019;Blodgett等,2020)。上述两个问题将导致一个不可信的学生,其生成的理由不能始终合理地证明其答案。为了缓解这个问题,我们提出了以下两种相应的技术。
3.1 始终如一的老师对比解码
为了鼓励教师生成更多支持答案的本体理由,我们提出的方法扩展了一种称为对比解码的先前技术,用于生成开放式文本(Li等,2022b)。其核心思想是在解码过程中搜索那些在考虑答案时更可信的理由标记,而不是那些即使没有答案也相当可信的理由标记。
为了实现这一思想,我们首先通过向同一教师提供一个扰动答案a′来模拟幻觉行为,然后在给定答案的情况下获取任何标记ti的可信度增长。我们研究了两种扰动答案的方式:将a′设置为空字符串或者设置为除a∗之外的错误答案。第一种方式(空字符串)对那些在没有考虑黄金答案a∗时通常可信的标记进行惩罚,因为幻觉语言模型不会考虑黄金答案。第二种方式(错误答案)进一步鼓励教师生成更具区分性的理由,以区分黄金答案和错误答案。图3展示了贪婪解码和对比解码对于一个示例问题的生成结果。
为了在语言流畅性和与答案a∗的关联性之间取得平衡,我们将可信度增长通过聚合的方式融入到公式1中,作为我们最终的对比解码策略:
3.2 一个忠实的学生:反事实推理
为了鼓励学生在生成的理由中进行忠实的推理,我们训练学生进行反事实推理(Roese,1997),即当理由导致不同的答案时,相应地回答。这有助于消除问题和黄金答案之间的推理捷径(图4),因为现在要求学生对相同的问题给出不同的答案。为了实现这个想法,我们首先用一个错误答案a′(使用与3.1节相同的采样策略)替换方程4中提供给教师的黄金答案,就好像a′是正确的。因此,我们得到了一个导致错误答案a′的反事实理由r′。然后,我们训练模型在将r′直接作为教师强制输入解码器时生成a′(语言建模损失仅应用于答案令牌ti ∈ a′):
为了避免让学生对任务产生困惑,我们在输入序列到编码器和输出序列到解码器的开头添加关键词[Factual](或[Counterfactual])来指示学生训练目标方程2(或方程5)(请参见图4中的示例输入和输出)。总体训练损失是方程2和方程5的总和。
图 4:反事实推理,教导学生忠实地进行推理,即根据理由做出不同的回答。
实验
我们的实验旨在回答以下研究问题:(1)我们的对比解码策略是否能够产生更一致的教师模型?(2)更一致的教师模型和反事实推理目标是否能够导致更忠实推理的学生模型?(3)通过修改学生生成的理由,我们是否能够更好地控制自洽学生模型的预测?
4.1 数据集
我们在几个知识密集型的基于语言的推理任务上进行实验:
(1)CSQA(Talmor等,2018)是一个包含五个选项的问答数据集,测试关于日常概念的常识。
(2)StrategyQA(Geva等,2021)是一个二元(是/否)问答数据集,问题中所需的推理步骤是隐含的。
(3)CREAK(Onoe等,2021)是一个事实核查(真/假)数据集,测试关于实体知识的常识推理。
(4)QASC(Khot等,2020)是一个包含八个选项的问答数据集,需要进行知识事实的检索以及使用常识来组成这些事实。
由于这些数据集的测试标签不公开,我们将官方的开发集作为我们的测试集,同时将官方的训练集随机划分为新的训练集和开发集。
4.2 评估指标
(1)为了评估教师生成的理由与提供的黄金答案之间的一致性,我们使用LAS指标(Hase等,2020),其核心思想是衡量理由对于模拟器预测黄金答案a∗的帮助程度,计算方式为在提供理由作为输入和不提供理由作为输入时任务性能的差异,即Acc(qr → a∗) - Acc(q → a∗)。
(2)为了评估学生生成的理由的忠实性,我们同样使用LAS指标来衡量理由对于模拟器预测学生的预测a′的帮助程度,即Acc(qr → a′) - Acc(q → a′)。我们分别使用经过微调的T5-large模型(Raffel等,2020)实现每个模拟器。
(3)为了评估学生在下游数据集上保持任务性能的好坏,我们使用准确率作为指标。
4.3 实现细节
我们使用GPT-neox(Black等,2022)作为教师模型,它具有20亿个参数,因为模型检查点是公开可用的,这使得我们可以离线托管它,并按照对比解码所需的标记概率进行访问。然后,我们通过在方程4中使用空字符串或错误答案作为扰动答案a′,分别实现了两种教师变体。然后,我们使用获得的理由微调两个T5-3b语言模型作为学生模型。对于这两种变体,我们使用实际训练损失方程2和反事实训练损失方程5来训练学生模型。
4.4 基线方法
思维链(CoT)
由于我们从GPT-neox(具有20亿个参数)(Black等,2022)中引出理由来训练学生模型,我们首先使用CoT提示(Wei等,2022b)要求相同的模型(GPT-neox)进行解释,然后进行预测。
从人类学习
为了展示我们自动生成理由注释的自动方式的优势,我们将这个基线实现为在人类注释的理由上进行微调的T5-3b语言模型,人类注释的理由获取成本高昂且可能存在噪音。
从贪婪解码学习
我们将这个基线实现为在使用与我们的主要方法相同的语言模型进行贪婪解码得到的理由上进行微调的T5-3b语言模型。我们还实现了另一个变体,在微调学生模型时添加了反事实推理损失,其中错误答案的理由是通过贪婪解码获得的。
我们还通过使用只基于实际推理的对比解码得到的空/错误答案理由,训练学生模型来实现了我们方法的两个基线方法。
我们使用固定的随机种子运行所有实验,并报告平均结果,每个实验运行5次。
4.5 主要结果
对比解码是否能够导致更一致的教师模型?
图5展示了不同教师生成的理由与黄金答案之间的一致性,以LAS指标进行度量。在四个数据集上,与人工注释和贪婪解码相比,使用空字符串或错误答案进行对比解码可以产生更一致的理由。这证明了我们对比解码策略在鼓励教师生成更与主题相关的理由方面的有效性。此外,与使用空字符串相比,使用错误答案进行对比解码效果更好。这表明通过与错误答案进行对比,教师可以生成更能导致黄金答案的可区分的理由,从而获得更高的一致性。贪婪解码相对于人工注释产生的理由更不一致,验证了我们的观点,即语言模型容易生成与黄金答案不相关的文本。
我们还对StrategyQA数据集生成的100个理由进行了人工评估。
评估者根据三个维度对理由进行评判:1)语法正确性(理由是否语法正确?)2)新信息(理由是否提供了问题中未表达的新信息?)3)支持答案(理由是否证明了答案的正确性?)。表1证实,我们的两种对比解码策略产生的理由比贪婪解码更具信息量且更与主题相关,尽管语法正确性稍差。我们在附录的表2中列举了示例,展示了对比解码产生的理由与黄金答案相比,比贪婪解码更一致。
更一致的教师是否能够训练出更忠实的学生模型?
图6(每个子图的上部分)展示了在实验数据集上使用LAS指标度量的学生模型的忠实性。首先,与知识蒸馏方法相比,思维链(CoT)方法在四个数据集上通常得到更低的LAS分数,表明生成的理由不能忠实地反映思维链中的决策过程。其次,我们观察到,使用对比解码产生的空字符串或错误答案的理由训练的学生模型通常比基线方法获得更高的LAS分数。结合对教师模型一致性的观察(图5),这验证了更一致的教师能够训练出更忠实的学生模型,并且教师模型在训练数据中产生的不一致性会被学生模型继承。
反事实推理损失能进一步提高忠实性吗?
图6显示,使用反事实推理训练损失进行额外微调的学生模型比仅使用事实推理训练进行微调的学生模型表现出更高的忠实性。这验证了反事实推理可以进一步提高学生模型的忠实性,因为它可能仍将理由生成和答案预测视为两个独立的过程。
一个忠实的学生模型是否仍能保持其性能?
图6(每个子图的下部分)显示了学生模型的准确性。首先,与知识蒸馏方法相比,思维链方法的准确性较低,显示了教师模型(理由)和标记数据集(答案)相结合的好处。其次,所有的知识蒸馏方法都获得了类似的性能。结合对忠实性的观察,这表明我们的方法可以提高模型的忠实性而不损害其性能。需要注意的是,从人工注释学习的学生模型相比其他学生模型稍微获得了更好的结果。这是因为人工理由与答案的一致性较低(如图5所示)。因此,学生模型学会更独立地生成理由和预测答案,从而利用虚假相关性并获得更好的性能。我们进一步的分析(§ 4.7)显示,这种性能提升是可疑的,因为改变理由大多数情况下不会显著改变学生模型的预测结果。
4.6 对学生模型大小的剔除
我们对学生模型大小进行了剔除实验,以了解其忠实性和性能的影响。从图7中,我们观察到较大的学生模型获得了更高的性能,但忠实性较低。这证实了为推理所需的知识存储需要足够的容量(Wei等人,2022a),但较大的模型在回答问题时也更独立于理由。尽管如此,我们的模型比基准模型更忠实,并且在不同模型大小下的性能相当。
4.7 控制学生模型行为
忠实的理由的一个重要作用是,我们可以通过改变其理由来更好地控制学生模型的行为。如果模型能够与其理由一致地进行预测,我们可以通过扰动或改进其理由来削弱或提高其性能。为了验证这一点,我们对学生模型生成的理由进行了两种类型的编辑,即扰动和改进,具体如下所述。然后,我们将编辑后的理由直接馈送给学生模型的解码器(作为教师强制),并观察学生模型是否会相应地行动,即由于较差(或较好)的理由而预测更差(或更准确)。
理由扰动
对于扰动理由,我们随机替换学生模型生成的理由中的50%令牌,然后将扰动后的理由r'馈送回学生模型的解码器。我们最终计算性能下降(或敏感性),即Acc(qr → a∗) - Acc(qr' → a∗)。图8(下部)显示了在CSQA和CREAK上的结果。首先,扰动经过人工注释微调的学生模型的理由对其性能几乎没有影响(在CSQA上下降到1.1%),这意味着学生模型在进行预测时很大程度上忽略了理由。其次,从对比解码获得的理由(包括空字符串或错误答案)进行学习,使学生模型对理由扰动更加敏感,相比贪婪解码更敏感。这再次验证了训练忠实学生的必要性,即需要一个一致的教师。最后,我们的反事实训练损失进一步提高了学生模型的敏感性,表明学生模型对理由更忠实。
理由改进
作为代理改进,我们通过要求教师使用每种对比解码策略为黄金答案进行理由化,自动获得了理想的理由r∗。对于通过人工注释进行训练的学生模型,我们直接使用注释的理由作为理想的理由。然后,我们计算性能增益,即Acc(qr∗ → a∗) - Acc(qr → a∗)。图8(上部)显示了在CSQA和CREAK上的结果。首先,我们观察到理想的人工注释理由并没有像机器生成的理由那样带来很大的性能增益。这证明即使经过人工注释训练,学生模型仍然容易对其理由不忠实。其次,我们观察到对比解码(包括空字符串或错误答案)导致学生模型的性能增益更大。通过添加反事实训练,性能增益进一步增加。这证明了我们的方法带来的优势,即我们可以通过改进学生模型的理由来更成功地调试推理模型。
5 相关工作
自由文本理由
已经提出了各种数据集,旨在在每个任务实例旁边收集人工注释的理由(Camburu等人,2018; Rajani等人,2019; Aggarwal等人,2021),旨在训练下游模型以用自然语言解释其预测。然而,人工注释是昂贵的,并且所得到的理由质量被报道为较差(Aggarwal等人,2021; Sun等人,2022)。我们的工作利用提示的语言模型自动获取理由,支持正确和错误答案,只使用少量注释示例作为演示。支持错误答案的理由进一步使学生能够进行反事实推理,这是现有人工注释不具备的。
提示式自我理由化模型
最近的研究提出了在进行预测之前,提示大型语言模型生成自由文本理由的方法(Nye等人,2021; Wei等人,2022b)。然而,这种技术依赖于非常大的语言模型(超过1000亿个参数)才能有效工作(Wei等人,2022b,a),这需要大量的计算资源或昂贵的API调用(Shridhar等人,2022)。与此同时,这种模型生成的理由已被证明与上下文相矛盾(Ye和Durrett,2022),并且无法忠实地表示潜在的推理过程(Wang等人,2022)。相比之下,我们的学生模型通过较小的语言模型训练,更忠实地生成其理由。
知识蒸馏
存在一些工作探索从大型语言模型中提取理由知识,将其蒸馏到作为学生的小型语言模型中。Chan等人提出了学习仅从带有理由的教师模型中预测答案的学生模型。Eisenstein等人提出了训练学生模型提取包含答案的句子的方法,但这种方法不适用于需要背景知识的推理任务。
施耐德等人提议训练学生模型提出并回答分解主要问题所需的子问题,该方法专门用于解决数学问题(Cobbe等人,2021),并配有一个方程式生成器,以指导学生的学习,而我们没有这样的约束条件。Li等人提出了在生成答案和理由的联合任务上训练学生模型的方法,这仅作为正则化项,不会影响学生模型在推理过程中的预测。更重要的是,Shridhar等人和Li等人都没有考虑理由的忠实性,而这对于检查学生模型的行为至关重要。
6 结论
本工作提出了一种忠实的知识蒸馏框架,用于从大型教师模型中学习一个小型、自洽的CoT模型。为了确保学生模型的推理过程忠实,我们提出了(1)对比解码用于获取一致的教师模型和(2)反事实推理用于教授忠实的学生模型。实验证明,与基线相比,这两种技术共同导致了一个更忠实的学生模型,同时保持了较高的性能准确性。我们进一步的分析表明,改变理由对学生模型的行为影响更大,因此通过改进理由可以更成功地调试模型。
局限性
与标准的知识蒸馏过程相比,我们的方法在准备训练数据和训练学生模型时需要额外的计算。首先,我们的对比解码需要在教师模型中进行额外的前向传播,比贪婪解码多一次,以获得每个生成的令牌的扰动可信度(方程式4)。其次,我们的知识蒸馏过程引入了额外的训练数据,用于用反事实推理目标(方程式5)训练学生模型。除了计算成本之外,这项工作侧重于提高理由的忠实性,而不是性能,这与之前利用理由仅提高性能的方法是互补的。
伦理声明
我们的知识蒸馏过程利用大型语言模型获得理由注释,这可能暴露出这些模型中编码的社会偏见(Lucy和Bamman,2021)。这种偏见可能会进一步传递给学生模型。然而,我们的方法提高了理由的忠实性,使得学生模型的预测是可靠的。如果没有忠实的理由,用户将不清楚模型是否基于某种意外的偏见进行预测。