认识 ChatDB:一种将符号内存以数据库形式添加到 LLMs 中的框架

大型语言模型(LLMs),例如GPT-4和PaLM 2,已经成为当代人工智能系统的重要组成部分,彻底改变了它们对自然语言处理的理解并改变了各个行业。尽管在理解和产生上下文适当的回复方面取得了巨大进展,但LLMs仍然存在某些缺点。与语言模型的多轮交互使得许多令牌容易超过LLMs的输入令牌限制是其中的关键问题之一。例如,GPT-4的限制是32,000个令牌。LLMs必须在遭遇中保持上下文信息并根据收集的信息生成回复。

然而,简单地将所有上下文信息串联并塞入LLMs中很容易超过LLMs的处理能力并积累误差,导致模型失去对话的轨迹并产生不太准确的响应。一些神经记忆机制已经被探索来克服LLMs的有限令牌输入问题。这些记忆组件用作从以前的交互中检索相关信息的存储和检索系统。然而,将LLMs与传统的神经记忆相结合通常会导致存储、检索和操作内存中的历史信息出现困难,特别是对于需要复杂多跳推理的任务。

主要原因有两个,一是它们不以结构化的方式保留历史数据,二是它们不以符号方式操作历史数据,因为它们都依赖于向量相似性计算,这可能会产生错误并导致错误积累。清华大学、北京人工智能学院和浙江大学的研究人员建议使用数据库作为LLMs的创新符号记忆来解决上述问题。ChatDB是整个框架的名称。下图1描述了组成ChatDB的两个部分:LLM控制器和其记忆。记忆的读写操作由LLM控制器控制,它可以是任何广泛使用的LLM。

LLMs的记忆可以是符号的、非符号的或两者的混合,负责跟踪过去并根据需要传播数据,以帮助LLM对人类输入做出反应。 ChatDB强调利用数据库作为符号记忆,通过执行比喻语言(即SQL命令)来有序地存储历史数据。LLM创建了这些SQL语句。在需要精确记录、更新、查询、删除和分析历史数据的情况下,可以使用数据库作为符号记忆。例如,商店经理必须跟踪每天的销售额。因此,使用矩阵或纯文本作为记忆是不合适的。然而,将数据库作为外部符号记忆是非常合适的。数据库使用SQL命令执行精确的操作,如数据插入、删除、更新和选择。因此,使用数据库作为外部符号记忆可以保证管理和操作历史数据的正确性和效率,大大提高LLMs在需要非常准确和冗长的数据捕获和处理的情况下的性能。在ChatDB框架中,他们建议使用链式存储策略更加巧妙地利用外部符号记忆,进一步提高LLMs的推理能力。

图1 显示了ChatDB的总体过程。记忆的读写操作由LLM控制器管理。为了响应用户输入,记忆保留过去的数据并呈现相关历史数据。在ChatDB中,我们强调将数据库添加到LLMs中作为它们的符号记忆。

使用链式存储技术将用户输入转换为中间内存操作阶段序列,从而产生所需的输出。使用链式存储技术将复杂问题分解为多个内存操作阶段,大大降低了解决问题的难度。ChatDB中的每个中间步骤都涉及一个或多个SQL语句。LLMs领域从它们的ChatDB中大大受益。首先,他们建议将数据库添加到LLMs中作为它们的外部符号记忆。这将允许有序存档历史数据,并使用SQL语句进行符号和复杂数据操作。 

其次,他们可以使用链式内存技术,将用户输入转换为多步中间内存操作,从而有效地操纵内存。这提高了ChatDB的效率,使其能够更精确、更稳定地管理复杂的多表数据库事务。最后,他们的研究表明,将符号内存添加到LLMs中可以增强多跳推理技能,减少误差积累,使ChatDB在合成数据集上的表现优于ChatGPT。