Patchscopes:检查语言模型隐藏表示的统一框架

%_ZIPJUD)USCEC4V)E5(C]M.png

Patchscopes 是一个新框架,旨在通过利用 LLM 固有的语言能力为其内部隐藏表示提供直观、自然的语言解释,从而统一各种以前用于解释 LLM 内部工作原理的方法。

大型语言模型 (LLM) 的显著进步以及与之相关的问题(例如事实性和透明度)凸显了理解其机制的重要性,特别是在它们产生错误的情况下。通过探索机器学习 (ML) 模型表示其所学内容的方式(模型所谓的隐藏表示),我们可以更好地控制模型的行为并更深入地了解这些模型的实际工作原理。随着深度神经网络的复杂性和规模不断增长,这个问题变得更加重要。可解释性研究的最新进展表明,使用 LLM 解释另一个模型中的神经元模式取得了令人鼓舞的结果。

这些发现促使我们设计了一个新颖的框架,使用LLM 研究LLM中的隐藏表示,我们称之为Patchscopes。这个框架背后的关键思想是使用 LLM 为其自身内部的隐藏表示提供自然语言解释。Patchscopes 统一并扩展了现有的各种可解释性技术,并且能够回答以前很难或不可能回答的问题。例如,它提供了有关 LLM 的隐藏表示如何捕捉模型输入中含义细微差别的见解,从而更容易修复某些类型的推理错误。虽然我们最初将 Patchscopes 的应用重点放在自然语言领域和自回归Transformer模型系列上,但它的潜在应用更广泛。例如,我们对它在检测和纠正模型幻觉、探索多模态(图像和文本)表示以及研究模型如何在更复杂场景中建立预测方面的应用感到兴奋。

Patchscopes 示例演示

考虑一下理解 LLM 如何处理文本中实体的共指的任务。Patchscopes 的实现是一种专门用于解决共指解析这一特定问题的专用工具。例如,为了研究模型对代词“它”指代谁的语境理解,可以按如下方式创建 Patchscopes 配置(也如下所示):

设置:向正在研究的模型呈现一个包含相关上下文信息的标准提示(即“源提示”)。以下示例中的完整源提示是“Patchscopes 非常强大。它有助于解释……”。

目标:次要提示(即“目标提示”)旨在提取特定的隐藏信息。在此示例中,一个简单的单词重复提示可以从隐藏的表示中揭示信息。以下示例中的目标提示是“cat->cat;135->135;hello->hello;?”。请注意,这些单词是随机选择的,因此提示乍一看可能像是胡言乱语,但也存在一种模式:它由几个示例组成,其中每个示例都是一个单词、一个箭头和同一个单词的重复。如果我们将此文本输入到经过训练以预测下一个单词的语言模型中,预计它会继续遵循这种模式。也就是说,如果我们用任何随机单词替换“?”并让模型生成下一个单词,它应该重复我们用来替换“?”的内容。

补丁:在源提示上执行推理。将“It”标记中感兴趣的层上的隐藏表示(下面示例中的绿点)注入目标提示(下面示例中的橙点)。或者,可以应用转换(下面示例中的“f”)以将表示与其他层或模型对齐。

揭示:该模型处理增强的输入,其输出提供了有关原始模型如何在特定上下文中理解单词“It”的见解。在下面的示例中,该模型生成“Patchscopes”,解释了模型第 4 层“It”标记上方的隐藏表示。这表明,经过 4 层计算后,该模型已将来自前面单词的信息合并到“It”标记上方的隐藏表示中,并得出结论,它不再指代通用对象,而是指代“Patchscopes”。虽然这个标记表示(绿点)可能看起来像一个难以理解的浮点数向量,但 Patchscopes 可以将其转换为人类可理解的文本,显示它指的是“Patchscopes”。这与之前的研究一致,该研究表明有关主题的信息在其最后一个标记中累积。

Patchscopes-1-概览

我们的框架说明,展示了一个 Patchscope,用于通过使用预定义的目标提示(右)来解码源提示中“It”表示中编码的内容(左)。

Patchscope 实际应用

Patchscopes 在理解和控制 LLM 方面具有广泛的应用。以下是我们探索的一些示例:

下一个标记预测:在计算过程中,模型可能在多早的时候根据给定的上下文得出最终预测?

从中间隐藏表示进行下一个标记预测是一项广泛使用的任务,用于评估研究 Transformer 内部的可解释性方法。上一节中使用的 Patchscope 的应用也出人意料地有效,即使在通常更棘手的早期到中层处理中也是如此。在不同的语言模型中,从第 10 层开始,它的表现均优于Tuned Lens和Logit Lens等先前的方法。

使用来自 LLM 中间隐藏表示的下一个标记预测任务评估各种可解释性方法。这显示了我们将 Patchscopes 与简单的“标记身份”目标提示(即由代表身份函数的 k 个演示组成的目标提示,格式为“tok_1 → tok_1;tok_2 → tok_2;...;tok_k”)的应用与 Tuned Lens 和 Logit Lens 方法进行比较。x 轴是 LLM 中正在检查的隐藏表示层。y 轴显示 precision@1,它测量最高概率预测标记与原始分布中最高概率标记匹配的示例比例。

 

提取事实:在模型计算的早期阶段,它有多早拥有属性信息(例如,一个国家的货币)?在这个实验中,我们考虑从 Hernandez 等人

编写的常识和事实知识任务的文本中提取属性的任务,2024 年。在这里,我们使用一个目标提示,它是正在调查的关系的简单语言化,后跟主题的占位符。例如,要从“州”的表示中提取美国的官方货币,我们使用目标提示“x 的官方货币”。鉴于 Patchscopes 的这个应用程序不使用任何训练示例,值得注意的是,它的表现明显优于其他技术。

跨源层的属性提取准确度(ℓ)。左:工具完成的任务(常识),54 个源提示,12 个类。右:国家货币(事实),83 个源提示,14 个类。

 

解释实体:不仅仅是“是”或“否”

模型在处理输入时如何理解像“亚历山大大帝”这样的多词输入?Patchscopes 超越了简单的“它已经弄清楚了吗”的回答,揭示了模型如何逐渐理解一个实体,即使在最开始的阶段。我们使用以下少数目标提示来解码模型的逐步处理:“叙利亚:中东国家,莱昂纳多·迪卡普里奥:美国演员,三星:韩国跨国大型家电和消费电子公司,x” 。下表显示,当我们浏览两个不同模型Vicuna 13B 和Pythia 12B的层时,更多来自上下文的单词被整合到当前表示中,这反映在生成中。

通过定性示例说明实体解析。富有表现力的生成表明,随着我们遍历各个层,来自上下文的更多标记被集成到当前表示中。“解释”是生成似乎指的内容以及它与源提示的关系。这两个示例都使用上面描述的相同目标提示。

 

团队合作使梦想成真:模型解释模型

Patchscopes 框架让我们可以使用强大的语言模型来解码较小模型的流程。在这里,我们利用Vicuna 13B来解释Vicuna 7B输入处理,方法是将较小模型中实体的隐藏表示修补到较大模型中。我们测量模型生成的文本与来自维基百科的实际参考描述之间的词汇相似性(使用RougeL分数)。Vicuna 7B → 13B(绿线)几乎总是高于 Vicuna 7B → 7B(蓝线),并且曲线下面积较大。这表明,跨模型修补到更大、更具表现力的模型中会提高代际和参考文本之间的词汇相似性,并表明跨模型修补过程显著增强了模型生成与另一个模型的输入表示在上下文上一致的文本的能力。

使用 Vicuna 模型,将生成的描述与维基百科中的描述进行 RougeL(词汇相似性)评分对比。Vicuna 7B 到 Vicuna 13B 的修补表示法可使实体解析的语言表达更具表现力,无论是对于常见实体还是罕见实体。

 

修复错误推理

即使最先进的 LLM 能够单独解决每个推理步骤,它们仍然会遇到多步骤推理问题。Patchscopes 可以通过重新路由中间隐藏表示来帮助解决此问题,从而显著提高准确性。在这个实验中,我们系统地生成多跳事实和常识推理查询,并表明,在掌握输入结构的先验知识的情况下,可以通过将查询一部分的隐藏表示修补到另一部分来修复错误。我们称之为思路链 (CoT) Pathscope,因为它使用相同的提示作为源和目标来强制顺序推理,但将一个位置的隐藏表示修补到另一个位置。我们表明 CoT Patchscope 将准确率从 19.57% 提高到 50%。我们进行这个实验的目的是证明使用 Patchscopes 进行干预和纠正是可行的,但请注意,CoT Pathscope 仅用作说明,而不是通用的纠正方法。

单个示例上对 CoT Patchscope 的说明,重点关注需要更正的响应,提示为“创建 Visual Basic Script 的公司现任 CEO”。

 

结论

Patchscopes 框架是理解语言模型工作原理的一项突破。它有助于回答从简单预测到从隐藏表示中提取知识以及修复 LLM 复杂推理中的错误等一系列问题。这对于提高我们每天使用的强大语言模型的可靠性和透明度具有有趣的意义。想看看 Patchscopes 的实际应用吗?请参阅论文了解更多详细信息。

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论