OlaGPT是一个模拟人类思维的问题解决框架,可以增强大型语言模型的能力。OlaGPT借鉴了认知架构(cognitive architecture)理论,把认知框架的核心能力建模为注意力(attention)、记忆(memory)、学习(learning)、推理(reasoning)、行动选择(action selction)。研究人员根据具体实现的需要对该框架进行了微调,并提出了一个适合语言模型解决复杂问题的流程,具体包括六个模块:意图增强模块(注意力)、记忆模块(记忆)、主动学习模块(学习)、推理模块(推理)、控制器模块(行动选择)和投票模块。意图增强(Intention Enhance)注意力是人类认知的一个重要组成部分,识别出相关的信息并过滤掉不相关的数据。同样地,研究人员为语言模型设计了相应的注意力模块,即意图增强,旨在提取最相关的信息,并在用户输入和模型的语言模式之间建立更强的关联,可以被看作是一个从用户表达习惯到模型表达习惯的优化转换器。首先通过特定的提示词提前获得LLMs的问题类型,然后重构提问的方式。比如在问题的开头加上一句「Now give you the XX(问题类型),question and choices:」;为了便于分析,提示中还需要加入「The answer must end with JSON format: Answer: one of options[A,B,C,D,E].」记忆(Memory)记忆模块在存储各种知识库信息方面起着至关重要的作用,已经有研究证明了当下语言模型在理解最新事实数据方面的局限性,而记忆模块着重于巩固模型尚未内化的知识,并将其作为长期记忆储存在外部库中。研究人员使用langchain提供的记忆功能进行短期记忆,长期记忆则由基于Faiss的矢量数据库实现。在查询过程中,其检索功能可以从库中提取相关知识,涵盖了四种类型的记忆库:事实、工具、笔记和思维(thinking),其中事实是现实世界的信息,如常识等;工具包括搜索引擎、计算器和维基百科,可以协助语言模型完成一些无需为条的工作;笔记主要记录一些疑难案例和解决问题的步骤;思考库主要存储由专家编写的人类解决问题的思考模板,专家可以是人类,也可以是模型。学习(Learning)学习的能力对于人类不断提升自我表现来说至关重要,从本质上讲,所有形式的学习都依赖于经验,语言模型可以从之前的错误中学习,从而实现快速提高推理能力。首先,研究人员找出语言模型无法解决的问题;然后在笔记库中记录专家提供的见解和解释;最后选择相关的笔记来促进语言模型的学习,从而可以更有效地处理类似问题。推理(Reasoning)推理模块的目的是创建基于人类推理过程的多个智能体,从而激发语言模型的潜在思维能力,进而解决推理问题。该模块结合了多种思维模板,参考特定的思维类型,如横向思维、顺序思维、批判性思维和整合性思维,以促进推理任务。控制器(Controller)控制器模块主要用来处理相关的行动选择,具体包括模型的内部规划任务(如选择某些模块来执行)以及从事实、工具、笔记和思维库中选择。首先检索和匹配相关的库,检索到的内容随后被整合到一个模板智能体中,要求语言模型以异步的方式在一个模板下提供回复,就像人类在推理之初可能难以识别所有的相关信息一样,同样很难期望语言模型一开始就做到这一点。因此,动态检索是根据用户的问题和中间的推理进度来实现的,使用Faiss方法为上述四个库创建嵌入索引,其中各个库的检索策略略有不同。投票(voting)由于不同的思维模板可能更适合不同类型的问题,研究人员设计了投票模块来提升多个思维模板之间的集成校准能力,并多种投票策略来生成最佳答案以提高性能。具体的投票方法包括:1. 语言模型投票:引导语言模型在多个给定的选项中选择最一致的答案,并提供一个理由。2. regex投票:用正则表达式精确匹配抽取答案以获取投票结果。