论文地址:https://arxiv.org/abs/2311.11829
原文地址:https://gonzoml.substack.com/p/system-2-attention-is-something-you
根据论文,System 2 Attention (S2A) 的实现方法主要分为两个步骤:
1. 给定一个上下文(context),S2A 首先会重新生成一个新的上下文(x'),这个新的上下文将去除那些可能会对最终输出产生负面影响的不相关信息。这可以通过对预训练的大型语言模型(如LLaMA-2-70B-chat)进行零样本提示来实现,模型会根据提示生成一个新的上下文。
2. 使用这个重新生成的上下文(x'),然后再让大型语言模型基于这个上下文生成最终的响应。这个过程中,模型只会关注那些被认为与任务相关的信息。
S2A的核心思想是利用大型语言模型的自然语言处理和理解能力,通过生成新的上下文来引导模型关注相关信息,从而提高模型的性能。这个过程主要依赖于模型的理解和推理能力。
我们如何帮助一个Transformer忽略输入中的无关部分?通过增加一种使其能够实现更深层理解的方法。作者们将他们的机制命名为System 2 Attention(S2A),首先是为了将其与仍在使用的标准注意力机制区分开来。其次,它类似于Kahneman提出的System 1/System 2概念,其中System 1是一种快速、自动的基于启发式的系统(在Transformer中即通常的注意力机制),而System 2需要更多的认知资源,并在需要仔细思考答案的情况下控制系统,特别是在System 1容易出错的情况下。
在这项工作中,作者们使用LLM(语言模型)本身来实现S2A。他们要求一个经过指导的LLM将提示(上下文)进行重写,以去除对模型响应产生负面影响的无关信息。重写步骤可以以各种其他方式实施。还可以添加后处理步骤,以更好地为下一步结构化提示。然后,使用重写后的提示来获取最终答案(希望质量更高)。
回顾注意力机制的历史,还有一种称为硬注意力的分支,由于其不可区分性而具有挑战性。S2A类似于硬注意力,但是通过自然语言并利用LLM本身来实现。熟悉搜索引擎内部工作方式的人可能会想起查询重写/重新表述的机制。
用于重写上下文的提示如下:
“给定用户提供的以下文本,请提取其中客观且不包含个人意见的部分,以便仅使用该文本作为上下文为问题部分提供客观答案。
请包括用户提出的实际问题或查询。将其分成两个类别,标记为“客观文本上下文(包括除用户偏见之外的所有内容):”和“问题/查询(不包括用户偏见/偏好):”。
用户文本:[原始输入提示]“
还测试了其他S2A变体:1)不分离上下文和问题;2)除了重写后的上下文之外,还保留原始上下文;3)指导提示,但不要求无偏见;4)关注上下文中信息的相关性的提示。
意见问题很重要,因为模型倾向于迎合其接收到的输入。
这些测试在三个任务上进行了:1)事实性问题回答,2)长篇生成论证,3)解决数学文字问题。
在第一个任务中,将提示中添加了提示正确或错误答案的短语(“我认为答案是[正确/错误答案],但我真的不确定。”),或者是反驳正确答案的短语(“我不认为答案是[正确答案],但我真的不确定。”)。使用GPT-4进行了200个提示的答案准确性评估。
使用的基础模型是LLaMA-2-70B-chat。他们将S2A与常规提示(基准)进行了比较,常规提示可能存在虚假相关性,还与Oracle提示进行了比较,Oracle提示没有无关信息,是质量的上限估计。
结果非常有趣。在第一个任务的事实性问题中,准确率从62.8%提高到80.3%(使用Oracle提示为82%)。
Oracle提示是信息检索系统中一个有用的功能。Oracle指某个理想化的"智能机",它能给出完美精准的答案。而Oracle提示就是系统试图接近这个标准,向用户提供额外的知识或判断作为参考。具体来说,Oracle提示包括:
返回相关但可能不完全准确的文档,给出提示语表示可能存在偏差需要验证。
如果系统判断无法给出确切答案,直接告知用户而不返回可能误导的结果。
在给出结果同时,附上系统自身判断该结果的可靠程度,让用户了解依据。
提供额外知识鼓励用户扩展思考,而不是直接下定论。
在结果集中给出传播度等辅助特征,帮助用户识别价值最大的答案。
当搜索范围有限时,说明限制并引导用户扩大查询参数。
这种提示能让用户清晰系统能力范围,不会产生过高依赖而忽略自身判断。它避免了以偏概全,通过主动知识提供更佳的用户体验。所以Oracle提示的使用可以有效提升信息检索的透明度和可靠性。
System 3 Attention(https://www.moneyonthemind.org/post/on-the-hunt-for-system-3-is-it-real)