开箱黑盒LLM!谷歌大一统框架Patchscopes实战教程来了
新智元报道
新智元报道
【新智元导读】大模型最为人诟病的问题就是不透明、不可解释。谷歌的最新框架Patchscopes可以提供关于模型内部隐藏表征的自然语言解释,本文介绍了一些实战应用样例。
虽然大型语言模型(LLM)在各种常见的自然语言处理任务中展现出了优异的性能,但随之而来的幻觉,也揭示了模型在真实性和透明度上仍然存在问题。
在模型生成错误回复内容时,如果能够「深入理解其背后运行机制」,或许可以解决模型的幻觉问题。
然而,随着深度神经网络的复杂性和规模的增长,模型的「可解释研究」也越来越有挑战性,通过探索机器学习(ML)模型对所学内容(模型的所谓隐藏表示)进行表征的方式,即隐藏表征(hidden representation),研究人员可以在一定程度上控制模型的行为,并对模型的实际运行方式进行更深入的科学理解。
从过去的研究结果来看,一个相对有前景的方向是「使用LLMs来解释其他模型的神经元模式」(neuron patterns)。
今年1月,Google Research和特拉维夫大学的研究人员共同提出了一个统一的框架Patchscopes来研究LLMs中的隐藏表征,主要思路就是使用LLMs来提供有关模型本身内部隐藏表征的自然语言解释。
论文链接:https://arxiv.org/pdf/2401.06102.pdf
Patchscopes统一并扩展了现有的可解释性技术,能够让模型回答出之前无法解决的问题,比如模型可以说出关于「LLM的隐藏表征如何捕捉模型输入中含义的细微差别」的见解和想法,从而帮助开发人员更容易地修复某些特定类型的推理错误。
在论文刚发布的时候,研究人员还只是将Patchscopes的应用场景集中在自然语言处理领域和自回归Transformer模型家族中,但实际上该方法的潜在应用范围更广。
最近,研究人员又发布了一篇博客,详细介绍了该方法在检测和纠正模型幻觉、探索多模态(图像和文本)表征以及研究模型如何在更复杂的场景中构建预测方面的应用样例。
Patchscopes使用方法
Patchscopes使用方法
以NLP中常见的「实体共同指代解析」(co-references to entities)任务为例,首先需要在Patchscopes中实现一个专门用于解决共指问题的工具。
比如说,为了研究模型对代词「it」所指代的人物上下文是如何理解的,需要创建出一套Patchscopes配置。
Patchscopes框架图解,通过使用预定义的目标提示符(右)解码源提示符(左)中「It」表征中编码的内容。
1. 设置 Setup
给定一个目标模型后,需要输入一段包含相关上下文信息的标准提示(即源提示,source prompt),如“Patchscopes is robust. It helps interpret…"(Patchscopes是稳健的,有助于解释…)
2. 目标 Target
二级提示(secondary prompt 即 target prompt)的目的是提取特定的隐藏信息,在这个例子里,一个简单的单词重复提示就可以揭示出隐藏表征中的信息。
例子中的目标提示词是「cat->cat; 135->135; hello->hello; ?」,但需要注意的是,提示中的单词是随机选择的,所以可能看起来和输入文本不相关,但也需要遵循特定的编写模式:包含多个例子,其中每个样例包括一个单词、一个箭头以及对该单词的重复。
如果将文本输入到一个训练后的语言模型中来预测下一个单词,模型的预期输出为能够继续遵循该模式。
换句话说,如果模型把「?」中的内容与其他随机单词进行替换,让模型生成下一个单词,以此来考察模型应该重复哪些单词?
3. 块 Patch
在源提示符上执行推理(inference),其中「It」token中感兴趣层的隐藏表征(图中的绿色点)被注入到目标提示(图中的橙色点)上,可以应用transformation(示例中的f函数)将表征与其他层或模型对齐。
4. 揭示 Reveal
对于增强后的输入(augmented input),模型会在输出中包含原始模型是如何在特定上下文中在内部对单词「It」进行扩展的想法。
给出的例子中,模型生成了「Patchscopes」,解释了在「It」token之上的模型第四层的隐藏表征,结果表明,经过4层计算后,模型已经将来自先前单词的信息合并到「It」token上方的隐藏表征中,并得出结论,其不再指代通用对象,而是指代「Patchscopes」。
虽然token表征(绿色点)可能看起来像一个没有任何含义解的浮点数向量,但Patchscopes框架可以将其转换为人类可理解的文本,表明指代的是「Patchscopes」,与先前的工作一致,即关于一个主题的信息会在其最后一个token中累积。
Patchscopes实战
Patchscopes实战
Patchscopes在理解和控制LLMs方面有广泛的应用。
1. 下一个token预测(next token prediction)
在计算过程中,根据给定的上下文,模型可以「多早地」得出最终预测?
从中间隐藏表示进行的token预测是一个常见的、可用于评估查看Transformer内部的可解释性方法。
即使是在更复杂的早期或中期处理层,Patchscope的效果也非常好:在不同的语言模型中,从第10层开始,其性能都优于之前的方法,如Tuned Lens和Logit Lens。
使用来自LLM的中间隐藏表征的下一个token预测任务来评估各种可解释性方法,展现了使用一个简单的「Token Identity」目标提示符(即,由k个表示类似于标识的函数的演示组成的目标提示符,格式为「tok_1 → tok_1 ; tok_2 → tok_2 ; ... ; tok_k」)与Tuned Lens和Logit Lens方法相比。x轴是在LLM中检查的隐藏表征层;y轴显示precision@1,测量最高概率预测token匹配原始分布中最高概率token示例的比例。
2. 提取事实(pulling out facts)
在模型的计算中,可以多早获取属性信息(例如,某个国家的货币)。
在这个实验中,研究人员主要考虑从文本中提取属性的任务,文本来源为Hernandez等人(2024年)编写的常识和事实知识任务。
论文链接:https://openreview.net/pdf?id=w7LU2s14kE
使用的目标提示主要针对简单的动词化关系,其次是一个占位符的主题。例如,要从「States」的表征中提取美国的官方货币,使用目标提示符「The official currency of x」,考虑到Patchscopes应用程序不使用任何训练示例,并且明显优于其他技术。
跨源层的属性提取准确性(Attribute extraction accuracy across source layers,简写为REQ)。左:工具完成的任务(常识),54个源提示,12个类。右:国家货币(事实),83个来源提示,14个类别。
3. 解释实体:不只用yes或no
模型在处理输入时如何理解像「亚历山大大帝」(Alexander the Great)这样的多词输入?
Patchscopes超越了简单的「它已经解决了这个问题」(has it figured this out yet)的答案,揭示了模型如何从开始阶段,逐渐理解一个实体。
使用以下few-shot的目标提示来解码模型的逐步处理:「叙利亚:中东国家,列奥纳多迪卡普里奥:美国演员,三星:韩国跨国大型家电和消费电子公司,x」(Syria: Country in the Middle East, Leonardo DiCaprio: American actor, Samsung: South Korean multinational major appliance and consumer electronics corporation, x)。
当遍历两个不同模型(Vicuna-13 B和Pythia-12 B)的层时,更多来自上下文的单词被整合到当前表征并反映在生成中。
通过定性实例说明实体解析:表达性的生成表明,当通过层时,更多来自上下文的tokens被集成到当前表征中。「解释」(Explanation)指的是生成与源提示词的关系。两个示例都使用了上述相同的目标提示符。
4. 团队合作:用模型解释模型
Patchscopes框架可以使用强大的语言模型来解码较小的过程:研究人员利用Vicuna-13 B来解释Vicuna-7 B的输入处理,将隐藏的实体表征从较小的模型修补到较大的模型中,然后测量模型生成的文本和来自维基百科的实际参考描述之间的词汇相似性(使用RougeL得分)。
Vicuna-7 B → 13 B(绿色线)几乎总是高于Vicuna-7 B → 7 B(蓝线),曲线下面积更大,结果表明,跨模型修补到一个更大的和更有表现力的模型,在改进的生成和参考文本之间的词汇相似性的结果,并表明跨模型修补的过程显着增强了模型的能力,生成文本的上下文对齐的输入表示从另一个模型。
使用Vicuna模型,生成的描述与维基百科的描述的RougeL(词汇相似性)得分,从Vicuna-7 B到Vicuna-13 B的patched表征导致对popular和rare实体解析以更具表达力的语言化。
5. 修复错误推理
虽然最先进的LLMs可以独立地解决每个推理步骤,但仍然很难实现多步推理。
Patchscopes可以通过重新路由中间隐藏表征来帮助解决这个问题,从而显着提高准确性:在实验中,系统地生成多跳的事实和常识推理查询,并表明,与输入结构的先验知识,错误可以通过修补隐藏表征从查询的一部分到另一个固定。
思维链(CoT)Pathcscope使用相同的源提示和目标提示来执行顺序推理,但将一个位置的隐藏表征修补到另一个位置。
CoT Patchscope将准确率从19.57%提高到50%,本实验的目的是证明使用Patchscopes进行干预和纠正是可行的,但要注意CoT Pathscope是一种说明,而不是一种通用的纠正方法。
微信扫码关注该文公众号作者