用SQL数据库增强LLM的符号记忆框架ChatDB。
C. Hu, J. Fu, C. Du, S. Luo, J. Zhao, and H. Zhao, “ChatDB: Augmenting LLMs with Databases as Their Symbolic Memory,” Jun. 07, 2023, arXiv: arXiv:2306.03901. Accessed: Nov. 07, 2024. [Online]. Available: http://arxiv.org/abs/2306.03901
【摘要】具有记忆功能的大型语言模型 (LLM) 具有计算通用性 (Schuurmans, 2023)。然而,主流LLM并未充分利用记忆功能,其设计受生物大脑影响较大。由于近似性和易出错性,传统的神经记忆机制无法支持LLM模拟复杂推理。在本文中,我们从现代计算机架构中汲取灵感,为LLM增强符号记忆功能,以实现复杂的多跳推理。这种符号记忆框架由一个LLM和一组SQL数据库组成,其中LLM生成SQL指令来操作SQL数据库。我们验证了该记忆框架在需要复杂推理的综合数据集上的有效性。项目网址:https://chatdatabase.github.io/
【关键词】大型语言模型 (LLM), 符号记忆, 数据库, 复杂推理, 多跳推理, 链式记忆 (CoM)
1 引言
- LLMs的局限性:虽然LLMs在理解和生成文本方面取得了巨大进步,但在处理多轮交互时的上下文信息管理方面存在局限性。随着交互的进行,上下文信息会不断积累,容易超出LLMs的输入限制,导致信息丢失和错误累积。
- 现有记忆机制的不足:现有的神经记忆机制,例如记忆标记和神经网络图,虽然可以扩展LLMs的上下文窗口,但在存储、检索和操作历史信息方面存在局限性,尤其是在需要进行复杂推理的任务中。
- 数据库作为符号记忆的优势:数据库可以提供结构化的存储和符号操作能力,例如插入、删除、更新和查询等,从而支持复杂的多跳推理。例如,商店经理可以使用数据库来管理销售记录,并进行精确的数据分析和查询。
2 相关工作
- 带记忆的LLMs:研究人员探索了多种神经记忆机制,以增强LLMs的记忆能力:
- 检索增强:利用检索模型从过去的交互中找到与当前对话最相关的信息,并将其作为提示输入LLMs。例如,Auto-GPT和Generative Agents使用内存模块来存储文本提示,以跟踪历史信息。
- 神经网络图:利用神经网络图来构建和修改图结构,并将其用于生成合理的输出。例如,Gated Graph Sequence Neural Network (GGS-NN)构建和修改图结构,并将其用于生成合理的输出。
- 记忆标记:在输入和输出序列中引入额外的记忆标记,以存储、处理和交换序列片段之间的局部和全局信息。例如,Recurrent Memory Transformer (RMT)引入额外的记忆标记来存储、处理和交换长序列片段之间的信息。
- LLMs的推理:链式思维(CoT)等方法通过将推理过程分解为中间步骤来提高LLMs的推理能力。CoT将中间推理过程呈现给LLMs,从而增强其推理能力。
- LLMs与数据库:一些研究利用LLMs生成代码,包括Python代码和SQL语句,以与数据库进行交互。例如,ChatExcel使用LLMs生成Excel执行命令,而BINDER提出了一个框架,将任务输入映射到可执行的程序中,并使用LLMs来执行各种功能。
- 使用工具的LLMs:Toolformer和Auto-GPT等方法通过使用外部工具(例如搜索引擎和数据库)来增强LLMs的功能。例如,Toolformer通过演示指导语言模型调用外部工具来解决问题,而Auto-GPT允许语言模型使用搜索引擎来完成各种任务。
3 ChatDB
- 任务定义:ChatDB的目标是利用数据库作为符号记忆,根据用户输入执行相应的SQL操作来完成任务。例如,用户可以要求ChatDB记录、修改、查询和删除特定数据。
- 框架概述:ChatDB包含三个主要阶段:
- 输入处理:ChatDB判断是否需要使用记忆来响应用户输入。如果需要,则使用LLMs生成一系列中间记忆操作步骤;否则,直接使用LLMs生成回复。
- 链式记忆:ChatDB执行一系列中间记忆操作步骤,并与数据库进行交互。ChatDB根据前一个SQL语句的结果来决定是否更新内存操作步骤,并执行下一个步骤,直到所有操作完成。
- 响应摘要:ChatDB根据链式记忆步骤的结果生成最终的回复,并将其返回给用户。
- 链式记忆:链式记忆(CoM)方法将用户输入分解为一系列中间记忆操作步骤,并使用SQL语句执行这些操作。CoM方法可以将复杂的问题分解为多个步骤,从而简化问题的复杂性,并提高LLMs的推理能力。
- 与现有方法的比较:与基于提示和矩阵的记忆方法相比,ChatDB具有以下优势:
- 结构化存储:ChatDB使用数据库作为记忆,可以提供结构化的存储,而基于提示和矩阵的记忆方法只能提供半结构化的存储。
- 符号操作:ChatDB使用SQL语句执行操作,是符号操作,而基于提示和矩阵的记忆方法使用向量嵌入和神经网络进行操作,是非符号操作。
- 高可解释性:ChatDB的记忆存储格式明确,操作方式符号化,因此具有较高的可解释性。
- 状态跟踪:ChatDB的记忆可以有效地跟踪LLMs的当前状态,并支持回滚操作。
4 评估
- 实验设置:为了评估ChatDB的性能,构建了一个模拟水果店管理的合成数据集,并收集了50个具有标准答案的问题进行评估。数据集包含四种常见操作:购买、销售、改价和退货。
- 模型配置:使用ChatGPT作为LLM控制器,并使用MySQL数据库作为外部符号记忆。
- 数据处理:ChatDB逐条处理数据记录,并使用SQL语句执行相应的数据库操作。每个步骤的数据库操作都是符号化的,并且没有错误,因此ChatDB可以处理无限数量的历史记录而不会牺牲性能。
- 结果:ChatDB在处理需要多跳推理和精确计算的问题时显著优于ChatGPT。ChatGPT在计算销售交易的总价和找到所有有效的销售交易方面容易出现错误,而ChatDB能够准确地回答所有问题。
5 结论
- ChatDB通过将数据库作为符号记忆,并采用链式记忆方法,有效地增强了LLMs的复杂推理能力和防止错误累积的能力。
- ChatDB在水果店管理数据集上的实验结果表明,其性能显著优于ChatGPT,证明了其优势。
- ChatDB为LLMs在数据管理和分析等领域的应用提供了新的思路和方法。