UNLEASHING COGNITIVE SYNERGY IN LLMS: A TASK-SOLVING AGENT THROUGH MULTI-PERSONA SELF-COLLABORATION

SPP solo performance prompting 释放认知协同:通过多角色自我协助的任务解决AGENT

摘要

认知协同促进人类智能,不同认知过程的协作和信息整合的结果是优于单独的认知过程。本文提出SPP个人表现提示,通过和多个性格进行多轮自我协作,将单个LLM转化为一个认知协同者(有多个思想的agent,将它们的个人优势和知识结合来提高问题解决和整体性能)。通过基于任务输入的 动态识别和模拟不同角色,SPP释放了LLM的认知协同能力。分配多个细粒度角色比单个或固定数量的角色可以更好的解决问题,在3个数据集(琐事创意写作、Codenames协作、逻辑网络谜题)有效激发LLM内部的知识获取能力,减少幻觉,增强推理能力。

具体代码见 https://github.com/MikeWangWZHL/Solo-Performance-Prompting.git.

引言

人类可以在不同的认知过程和个人之间利用协作和信息整合的力量(被称为认知协同作用,而LLM虽然有丰富知识和特点,但面对知识密集型和推理密集型任务仍存在内部知识获取的幻觉和事实错误等挑战

认知协同者(cognitive synergist)指的是一种智能体,它与多个大脑协同工作,将它们独特的能力和专长结合在一起,以提高解决问题的能力和在复杂任务中的整体效能。本文开发了一个基于单个LLM的认知协同者,该协同者可以“分裂”成多个角色,并参与多个角色的自我协作,以处理知识密集型和推理密集型任务。潜在的直觉源于假装游戏和角色扮演(Pellegrini, 2009)在儿童认知发展中的重要性。根据皮亚杰的发展理论,参与假装游戏和扮演不同的角色可以培养儿童的基本技能,如解决问题、批判性思维、同理心和合作。

给LLM分配任务角色可以显示特定行为,但1. 角色由任务固定需要人监督 2. 协作需要多个LLM,成本过大。

因此我们提出了Solo Performance prompts (SPP),它提示单个LLM识别、模拟并与多个角色协作以解决具有挑战性的任务。图1提供了SPP的高级概述,在这里,角色可以代表领域专家(如电影爱好者),也可以代表目标观众(如10岁的儿童)。通过对不同角色的动态识别,我们使单个LLM无需额外的检索系统就能准确地获取不同的领域知识。通过促进多回合的自我协作,我们可以从多个角度进行自我修改和自我反馈,而不需要额外的代理。
在这里插入图片描述

图2 是具体例子,整合不同领域的信息,SPP通过识别特殊角色参与者(杰迷、哈利波特),提供了必要信息。一个领导者AI助手将参与多轮对话,反复撰写故事草稿,征求反馈完成任务。

在这里插入图片描述

SPP

  1. 角色识别:识别具有特殊角色(包括领导者)的多个参与者
  2. 开场白:每个参与者提供一个开场白,提供信息和如何根据专业知识完成任务的信息
  3. 多角色交互协同:AI助手提出初始解决方案,征求其他参与者反馈,并迭代修改答案。如图2

给定一个输入序列x和模型M,few-shot提示为p,输出为y,中间过程为z
在这里插入图片描述
在这里插入图片描述

SPP的提示包含一个高级指令和2个展示预期任务解决过程的案例

角色识别(z_p):给定一个输入任务,SPP首先生成一个具有不同角色的参与者列表,这些参与者可以潜在地帮助解决任务。角色可以是领域专家,也可以是反馈重要的目标受众。例如,在图2中,模型确定了一个周杰伦粉丝角色,以帮助检索“周杰伦第二张专辑中的最后一首歌”的知识。对于一些涉及特殊观众的任务,例如,“向一个10岁的孩子解释量子计算”,包括一个10岁的孩子作为参与者,可以从观众的角度提供有价值的反馈。我们让语言模型动态地识别角色,而不是手动地定义他们。只给出两个演示示例,我们观察到一个最先进的大型语言模型,例如GPT-4 (Open开始AI, 2023),可以为不同的任务识别准确和有意义的角色。我们将这部分中间过程表示为zp。

开始评论(z_b^i):“AI助手(你)”被视为领导角色,启动合作并产生初始解决方案。在生成最初的答案之前,每个角色都给出了如何从他们自己的角度完成任务的开始评论。例如图2中的例子,周杰伦的粉丝给出了一个开始的评语,指出周杰伦第二张专辑的最后一首歌是“安静”。我们发现,这有效地提高了AI Assistant生成的初始解决方案的质量。我们使用i = 0表示“AI助理”角色,而i > 1表示其他动态识别的角色。这样开始的批注可以表示为{z1 b, z2 b,…, zm b},其中m是不包括“AI Assistant”在内的角色数量。

多角色迭代协作(z_s,z_f):基于初始评论,AI 助手角色生成一个初始解决方案,命名为 z s 0 z_s^0 zs0,然后它咨询每一个其他参与者的反馈 z f i {z^i_f} zfi。例如,在图2中,周杰伦粉丝角色检查歌曲“安静”(“沉默”)是否很好地包含在故事中。参与者也被鼓励批评当前的一代,并提出修改建议。这个过程可以重复多次,直到每个参与者都对当前的解决方案感到满意。我们表示多回合对话的中间代为 { z s 0 , z f 1 , … , z f m } j = 1 … n \{z^0_s, z^1_f,…, z^m_f\}_{j=1…n} { zs0,zf1zfm}j=1n n是在得到最终答案之前的迭代次数。通过“Finish collaboration!”将协作标记为完成!然后最终的解就生成了。

迭代过程也继承了CoT提示的优点,提高了推理能力。相对于CoT的主要优势是,由于动态分配的角色,在每个步骤中,我们可以从不同的角度收到反馈。与以往提示方法的综合比较见表1。
在这里插入图片描述

系统提示:提示的第一部分包含一个高层次的指示 : “ 当面对一项任务时,首先要确定哪些参与者将对解决该任务做出贡献。然后,启动多回合协作过程,直到达成最终解决方案。与会者将在必要时提出批判性的意见和详细的建议。”

few-shot示例: 使用2个手工制作的演示示例来展示预期的任务解决行为。第一个例子描述了Game of24的任务,其中我们只包含两个角色:一个AI助手和一个数学专家。这个任务的目的是提供一个推理密集型任务的例子,在这个任务中,AI Assistant需要提出多个建议,而其他参与者需要提供关于当前解决方案哪里出错以及如何改进的细粒度反馈。第二个例子描述了一个有多种需求的诗歌写作任务,包括词汇约束、语义约束和受众意识。该任务旨在提供一个知识密集型任务的示例,其中需要不同的角色协作解决任务。这个例子还展示了一个重要的例子,为观众分配一个特定的角色,例如,一个10岁的孩子。

任务前缀: 提示的最后一部分提醒模型“确定参与者,并协作一步一步解决以下任务”,接着是任务特定格式的说明和输入。

实验

数据集:琐事创意写作(需要模型内部获取和整合来自不同领域的不同信息)、Codenames协作任务(协作需要在广泛的相关知识范围内进行创造性推理,并挑战该模型的心智理论技能)、逻辑网格谜题(多步骤推理)

**SPP-Profile:**详细的专家描述可以增强能力,因此在角色识别阶段生成配置文件

推理:GPT-4-32K的API进行,温度1.0,topp1.0,系统设置 W/O 你是一个帮助人们找到信息的AI助手

创意写作——知识密集型任务

要求模型围绕一个主题写一个连贯的故事,同时合并N个问题的答案。我们考虑了两种评估设置,N = 5和N = 10,在这两种情况下,较大的N涉及更多的琐事问题,因此需要模型来引出更多样化的领域知识。我们为每个N构建了100个实例的基准测试,涵盖了从TriviaQA 数据集提取的1000个琐事问题。该主题列表是通过提示GPT-4提供100个被评为PG或PG-13级的流行文化名词自动生成的。图3展示了创意问答中的一个例子。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

结果: 表2显示了四种方法在创意问答任务中的结果。我们有以下主要观察:(1) 思维链(CoT)并不优于标准提示。这表明CoT可能不能有效地激发LLM的知识能力**。如图4所示,我们发现虽然CoT生成了合理的解决任务的计划,但最终生成的CoT仍然存在事实错误和幻觉。(2) SPP和SPP- profile明显优于标准和CoT。与N = 5组相比,N = 10组的改善更为显著(10% vs 7%)。这表明,当任务需要整合来自大量不同领域的知识时,通过识别不同的角色来引出不同的专业知识,Solo Performance prompt可以特别有帮助。

Codenames协作——知识+推理任务

任务描述: 要求模型在考虑与另一个代理的协作时,对广泛的知识进行推理。我们的目的是利用这个任务来研究SPP在需要知识、推理和心理理论能力的协作任务中的有效性。任务涉及两个玩家角色:一个间谍大师和一个猜测者。间谍头目被给予一组目标词汇和一些其他的干扰词。猜测者不知道哪些词是目标词。间谍大师的目标是想出一个简单的提示,与目标词密切相关,同时与干扰词联系更远。猜测者的目标是根据间谍大师给出的提示,从整个单词集中找到目标单词子集。找到一个好的提示或猜测目标词子集都需要有很强的选择、组合和推理与某个词相关的各种知识的能力。例如,“导演,爆米花”可以与“电影”这个词联系在一起,因为电影是由导演创作的,人们在电影院看电影时经常吃爆米花。

我们使用相同的LLM (GPT-4 )依次扮演间谍大师和猜测者。也就是说,每个游戏实例都包含一个作为Spymaster的推理,然后另一个作为Guesser的推理,Guesser的输入取决于Spymaster的输出。基于来自BigBench中的Codenames任务的数据,我们构建了一个包含50个实例的数据集。图5显示了Codenames Collaborative任务的一个示例。
在这里插入图片描述
在这里插入图片描述

结果:类似于创意琐事写作任务,我们发现与标准提示相比,CoT并没有带来积极的收获。相比之下,SPP带来了显著的改进(~5%),这表明在需要知识、推理、心智理论的协作任务中,提出的SPP的有效性。图6提供了一个定性的示例,说明了SPP生成详细的、可解释的中间对话,与CoT相比,它有助于实现更高的性能。

在这里插入图片描述

逻辑网格谜题——推理密集型任务

任务描述: 该数据集包含200个实例。每个实例描述了一个逻辑谜题,通常涉及2 - 5个房子,每个房子里住着一个具有特定特征的人,例如:拥有一瓶郁金香或成为一名钢琴家。给出一些不完全的线索,比如“长笛手住在第二所房子里”,目标是回答最后一个问题,这个问题询问具有特定特征的人的房子号。为了得到最终的答案,模型需要进行多步推理,并在每一步中选择最相关的线索来使用。具有挑战性的例子可能包括同时考虑多个线索来推断下一个有用的信息。图7显示了Logic Grid Puzzle任务的输入和输出示例。
在这里插入图片描述
在这里插入图片描述

**结果:**与之前的两个任务相比,正如预期的那样,我们发现CoT比标准提示带来了显著的改进,验证了之前工作的观察,即CoT在推理密集型任务中引发了更好的推理能力。此外,我们发现SPP在此任务上的表现也优于CoT,表明在纯推理任务上具有竞争推理能力。这一结果表明,角色数量的增加不会降低模型的推理能力

分析

  1. SPP有效地提高了llm的内部知识获取和推理能力。 这表明了使用基于llm的认知协同专家作为SPP 的一般任务解决默认范式的潜力
  2. LLM可以有效地识别有用的角色,而无需额外的微调。 我们为图8中的每个任务使用词云来可视化SPP自动识别的人物角色,在图8中,字体越大表示频率越高。被识别的角色与特定的任务密切相关;例如,在Logic Grid Puzzle中,即使“Logic Puzzle”在输入中没有被提及,LLM也会频繁地将“Logic Puzzle Expert”角色分配给参与者。这表明当前的llm天生能够为不同的任务识别有用的专家角色。我们还发现,在知识密集型任务(如琐事创意写作)中,SPP识别出了更多样化和更具体的角色,而在推理密集型任务(如逻辑网格谜题)中,角色则更加同质化。此外,事实上,SPP- profile在三个任务中的两个任务中的表现并不优于SPP,这表明没有详细描述的人物角色的细粒度名称可能已经足以引出特定的领域知识。

在这里插入图片描述

  1. 动态角色 VS 固定角色。 为了进一步研究为每个任务实例动态识别人物角色(协同动态认知过程)的重要性,而不是固定一个一般的人物角色(协同固定认知过程),引入了SPP的一种弱化变体,即SPP-固定角色。对于SPP- fixed - persona,我们修改了SPP的提示,迫使角色被固定为“AI助手”和“专家”,同时保持演示示例中的所有信息不变。SPP-Fixed-Persona的完整提示符见图13。图9显示了SPP和SPP固定角色之间的比较。我们有以下主要观点:(1)在所有任务中,SPP始终优于SPP-固定角色,这表明动态的、细粒度的角色比固定的、一般的角色更有效。图10显示了来自《琐事创意写作》的定性例子,其中精细的人物角色(如“电影专家”和“体育爱好者”)正确地找到了答案,而固定的人物角色“专家”则失败了。(2) spp -固定角色有一个独特的问题,我们称之为早期终止(没有给答案,说空话),在专家角色给出开始评论后,LLM停止生成。 模型的行为就像是在等待用户的输入,而不是自己模拟响应。图16给出了一个早期终止问题的例子。这个问题在某些任务上尤其严重,例如Codenames Collaborative,会导致意外的低性能。如果删除“你是帮助人们查找信息的人工智能助手”的系统信息,可以在很大程度上缓解这一问题,但不可能完全消除。表8显示了每个任务和方法的早期终止实例的数量。相比之下,我们没有观察到SPP, SPP- profile,标准或CoT提示的早期终止。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44546100/article/details/134988689