多步推理
正如我们上面所讨论的,语言模型回答复杂问题的一种方式就是简单地记住答案。例如,如果问“达拉斯所在州的首府是哪里?”,一个“机械”的模型可以直接学会输出“奥斯汀”,而无需知道德克萨斯州,达拉斯和奥斯汀之间的关系。也许,例如,它可能在训练过程中看到了完全相同的问题及其答案。
但我们的研究揭示了Claude内部深处更复杂的事情。当我们向Claude提出一个需要多步推理的问题时,我们可以识别出Claude 思维过程中位于中间步骤的概念。在达拉斯的例子中,我们观察到Claude 首先激活了表示“达拉斯在德克萨斯州”的特征,然后将它与一个单独的概念联系起来,表示“德克萨斯州的首府是奥斯汀”。换句话说,该模型结合了独立的事实来得出答案,而不是死记硬背地重复记忆中的答案。
为了完成这句话的答案,Claude进行了多个推理步骤,首先提取达拉斯所在的州,然后确定其首府
我们的方法允许我们人为地改变中间步骤,并观察其如何影响Claude的答案。例如,在上面的例子中,我们可以进行干预,将“德克萨斯州”的概念替换为“加利福尼亚州”的概念;当我们这样做时,模型的输出会从“奥斯汀”变为“萨克拉门托”。这表明模型正在使用中间步骤来确定答案。
幻觉
为什么语言模型有时会产生幻觉——也就是说,编造信息?从根本上讲,语言模型训练会激励幻觉:模型总是应该对下一个单词进行猜测。从这个角度来看,主要的挑战是如何让模型不产生幻觉。像 Claude 这样的模型拥有相对成功(尽管不完美)的抗幻觉训练;如果它们不知道答案,它们通常会拒绝回答问题,而不是进行推测。我们想了解其中的原理。
事实证明,在Claude模型中,拒绝回答是默认行为:我们发现一个默认“开启”的回路,这会导致模型声称其信息不足,无法回答任何给定的问题。然而,当模型被问及它熟知的事物时——比如篮球运动员迈克尔·乔丹——一个代表“已知实体”的竞争特征会激活并抑制这个默认回路(相关发现另见这篇最近的论文)。这使得Claude模型能够在知道答案的情况下回答问题。相反,当被问及一个未知实体(“迈克尔·巴特金”)时,它会拒绝回答。
左图:Claude回答关于已知实体(篮球运动员迈克尔·乔丹)的问题,其中“已知答案”的概念抑制了其默认拒绝。右图:Claude拒绝回答关于未知人物(迈克尔·巴特金)的问题
通过干预模型并激活“已知答案”的功能(或抑制“未知名称”或“无法回答”功能),我们可以使模型产生幻觉(相当一致!),认为迈克尔·巴特金是下棋的。
有时,没有我们的干预,“已知答案”回路的这种“失灵”也会自然发生,从而导致幻觉。在我们的论文中,我们表明,当Claude认出一个名字,但对此人一无所知时,就会出现这种失灵的情况。在这种情况下,“已知实体”特征可能仍然会被激活,然后抑制默认的“不知道”功能——在这种情况下是错误的。一旦模型决定需要回答这个问题,它就会开始虚构:生成一个看似合理但不幸的是不真实的答案。
越狱
越狱正在催生出一些策略,旨在绕过安全护栏,让模型产生AI开发者不希望其产生的输出——这些输出有时是有害的。我们研究了一种越狱方法,它诱骗模型产生关于制造炸弹的输出。越狱技术有很多种,但在这个例子中,具体方法是让模型破译一段隐藏的代码,将句子“Babies Outlive Mustard Block”(B-O-M-B)中每个单词的首字母拼在一起,然后根据这些信息采取行动。这足以让模型产生足够的迷惑性,使其被诱骗产生原本不会产生的输出。
Claude被骗说出“炸弹”后开始给出制造炸弹的说明
为什么这会给模型带来如此大的困惑?为什么它能继续写出这个句子,生成制造炸弹的指令?
我们发现这个,部分是由于语法连贯性与安全机制之间的矛盾造成的。一旦 Claude 开始说一个句子,许多特征就会“施压”它,要求它保持语法和语义的连贯性,并将句子延续到结尾。即使它意识到自己确实应该拒绝,情况也是如此。
在我们的案例研究中,当模型无意中拼出“BOMB”并开始提供说明后,我们观察到其后续输出受到了促进语法正确和自我一致性的特征的影响。这些特征通常非常有用,但在这种情况下却成了模型的致命弱点。
该模型只有在完成一个语法连贯的句子后(从而满足了促使其走向连贯的特征的压力),才会转向拒绝。它利用新的句子作为机会,做出之前未能做出的拒绝——“但是,我无法提供详细的说明……”
越狱的完整过程:Claude被这样的提示以诱骗它谈论炸弹,并开始这样做,但到达语法有效的句子结尾后并拒绝