System 2 Attention:可以提高不同LLM问题的推理能力

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
大数据开发治理平台 DataWorks,不限时长
简介: 推理正在成为大型语言模型(llm)关注的下一个主要领域。尽管llm拥有先进的能力,但大多数llm经常被简单的错误绊倒,显示出他们在推理方面的局限性。这些模型可能会被上下文中的不相关细节所误导,或者受到输入提示中的偏差的影响。而后一种倾向被称为谄媚,也就是说模型会更偏向与输入一致,而不管准确性如何。人们已经做出了各种努力来解决这些缺点,包括增加监督训练数据或应用强化学习方法。

在最近的一项研究中,Meta AI认为问题的根源在于这些模型中使用的transformer 架构的基本设计,特别是注意力机制。这项研究的灵感来自丹尼尔·卡尼曼和阿莫斯·特沃斯基对行为心理学的研究,这些研究在《Thinking Fast and Slow》一书中得到了精彩的阐述。

  1. 系统1(System 1): 这是一种快速、直觉性、自动的思考方式。它是我们在处理日常事务时采用的那种直觉反应,几乎是无意识的。系统1负责快速做出决策,识别模式,感知情绪等。然而,它有时候可能会导致错误,因为它更容易受到情感和直觉的影响。
  2. 系统2(System 2): 这是一种更为缓慢、深思熟虑、理性的思考方式。当我们面临更复杂、挑战性的问题时,系统2被激活。这种思考方式需要更多的认知努力,包括逻辑分析、推理和意识层面的思考。系统2更能够进行深度思考,但也更耗费时间和精力。

问题

LLM通过广泛的前期训练,在推理和知识积累方面表现出色。它们被设计成高度关注当前语境来预测下一个单词。例如,如果一个特定的实体出现在文本中,模型会预测它的重复出现。基于“transformer”的模型,擅长在语境中识别相似的单词和概念。虽然这提高了他们预测的准确性,但也使他们容易受到分析环境中误导性相关性的影响。

S2A

Meta AI 的这种方法被称为系统2注意力(S2A),包括提示LLM创建一个上下文,剥离掉可能扭曲推理的不相关信息。这个概念的灵感来自人类的认知过程,其中“System 2”代表有意识的、努力的心理活动,特别是在容易出错的“System 1”推理不够充分的情况下。S2A旨在通过指导LLM的推理能力来克服transformer 注意力机制固有的缺陷来复制这一点。

在一个典型的场景中,LLM提供了一个上下文(x),并负责生成高质量的输出(y)。S2A通过两步法修改了这个过程。首先,S2A通过删除可能对输出产生负面影响的元素,将给定的上下文(x)重新表述为精炼的版本(x’)。用x ' ~ S2A(x)表示。然后,LLM使用修改后的上下文(x ')生成最终响应(y),而不是用y ~ LLM(x ')表示的原始上下文。

S2A包含了一系列实现这第一步的技术。Meta AI的具体方法利用了已经熟练掌握推理和生成任务的指令调整LLM。他们使用这些功能通过提示来指示LLM执行S2A任务。在实践中,这涉及到创建一个零样本提示,引导LLM将System 2 Attention应用于给定的上下文,表示为S2A(x) = LLM(PS2A(x)),其中PS2A是生成提示的函数。

Meta AI选择LLaMA-2-70B-chat作为他们的主要评估模型。他们在两种不同的情况下评估其性能:

基线设置:在这种方法中,数据集的输入提示直接提供给模型,然后模型以零样本的方式生成响应。这种方法很简单,但有一个缺点。模型的输出容易受到输入提示中出现的任何偏见、意见或无关细节的影响。

默示(Oracle)提示:给模型一个清理过的提示,去掉任何多余的观点或不相关的句子。然后,模型以零样本的方式响应这个改进的提示。如果它能够从输入中完美地过滤掉无关信息,那么则可以衡量模型的理想性能水平。

结果

评估S2A在三种不同场景下的有效性,这些场景突出了LLM的推理能力。

事实问题回答:用了来自SycophancyEval1的TriviaQA版本,专为直接基于事实的查询而设计,但在提示中包含了额外的意见。他们用提示进行实验,提示或建议正确答案或错误答案,或反驳正确答案。众所周知,这些附加因素会影响标准模型的响应。研究结果表明,在这种受意见影响的场景中,S2A显著提高了准确性,与无偏见或“oracle”提示的性能密切匹配。

长篇论点生成:使用了SycophancyEval的论点提示,其中包括所提供论点上下文中的观点。这些提示带有评论,表达了对论点的喜欢、不喜欢、作者身份或非作者身份。标准模型往往会根据这些情绪来歪曲他们的反应。但是S2A在保持生成的参数的客观性方面有了显著的改进,甚至超过了oracle提示符的客观性水平。

数学单词问题解决:在GSM-IC任务上测试S2A,该任务涉及来自GSM8K的数学单词问题,但添加了不相关的句子。这些分散注意力的句子会显著降低llm的准确性。Meta AI使用两种类型的干扰进行实验:随机的和主题相关的。该设置旨在评估S2A如何有效地过滤掉无关信息,并专注于问题的基本方面,以提供准确的解决方案。

总结

S2A是LLM推理方法发展的一个重要里程碑。该方法与人类推理非常相似,避免了干扰。我们应该期待S2A在最近几个月成为推理研究的重要基线。

论文地址:System 2 Attention (is something you might need too)

https://avoid.overfit.cn/post/4d6dae0510b44b779668dc4ab51108e9

作者:Jesus Rodriguez

目录
相关文章
|
4月前
|
机器学习/深度学习 人工智能 Cloud Native
大语言模型推理提速,TensorRT-LLM 高性能推理实践
大型语言模型(Large language models,LLM)是基于大量数据进行预训练的超大型深度学习模型,本文主要讲述TensorRT-LLM利用量化、In-Flight Batching、Attention、Graph Rewriting提升 LLM 模型推理效率。
100321 2
|
5月前
|
自然语言处理 测试技术 异构计算
使用Accelerate库在多GPU上进行LLM推理
大型语言模型(llm)已经彻底改变了自然语言处理领域。随着这些模型在规模和复杂性上的增长,推理的计算需求也显著增加。为了应对这一挑战利用多个gpu变得至关重要。
792 0
|
6月前
|
缓存 算法 Shell
魔搭牵手vLLM,提供更快更高效LLM推理服务
今年六月,来自加州大学伯克利分校、斯坦福大学、加州大学圣迭戈分校的研究人员基于操作系统中经典的虚拟内存和分页技术,提出了一个新的注意力算法PagedAttention,并打造了一个LLM服务系统vLLM。
|
2月前
|
自然语言处理 算法
强化上下文修剪提升LLM推理能力
强化上下文修剪提升LLM推理能力
15 1
|
3月前
|
存储 机器学习/深度学习 测试技术
mnn-llm: 大语言模型端侧CPU推理优化
mnn-llm: 大语言模型端侧CPU推理优化
398 1
|
4月前
|
运维 自然语言处理 算法
使用NVIDIA TensorRT-LLM支持CodeFuse-CodeLlama-34B上的int4量化和推理优化实践
CodeFuse是由蚂蚁集团开发的代码语言大模型,旨在支持整个软件开发生命周期,涵盖设计、需求、编码、测试、部署、运维等关键阶段。为了在下游任务上获得更好的精度,CodeFuse 提出了多任务微调框架(MFTCoder),能够解决数据不平衡和不同收敛速度的问题。通过对比多个预训练基座模型的精度表现,我们发现利用 MFTCoder 微调后的模型显著优于原始基座模型。其中,尤为值得关注的是采用了 MFTCoder 框架,并利用多任务数据集进行微调的 CodeFuse-CodeLlama-34B模型,在HumanEval 评估数据集中取得了当时的最好结果。
109 0
使用NVIDIA TensorRT-LLM支持CodeFuse-CodeLlama-34B上的int4量化和推理优化实践
|
4月前
|
人工智能 弹性计算 并行计算
【Hello AI】推理引擎DeepGPU-LLM-提供免费的高性能、低延迟推理服务
DeepGPU-LLM是阿里云研发的基于GPU云服务器的大语言模型(Large Language Model,LLM)推理引擎,在处理大语言模型任务中,该推理引擎可以为您提供高性能的大模型推理服务。
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
NeurIPS’23 Paper Digest | 如何把 LLM 的推理能力应用于事件序列预测?
我们完成了首个把 LLM 推理能力引入事件序列领域的工作。代码、数据均已经开源,并将集成进开源库 EasyTPP。
NeurIPS’23 Paper Digest | 如何把 LLM 的推理能力应用于事件序列预测?
|
5月前
|
缓存 PyTorch 编译器
使用PyTorch II的新特性加快LLM推理速度
Pytorch团队提出了一种纯粹通过PyTorch新特性在的自下而上的优化LLM方法,包括:
187 1
|
2月前
|
人工智能 缓存 API
谷歌发布MediaPipe LLM Inference API,28亿参数模型本地跑
【2月更文挑战第24天】谷歌发布MediaPipe LLM Inference API,28亿参数模型本地跑
84 3
谷歌发布MediaPipe LLM Inference API,28亿参数模型本地跑