揭秘MemoRAG:AI记忆模块如何提升生成质量

文摘   2024-09-11 07:03   北京  
RAG技术已经成为当下提升大语言模型(LLMs)生成质量的重要手段。然而,传统的RAG方法在处理模糊信息需求或非结构化知识时存在显著局限性。近期,一项名为《MEMORAG: MOVING TOWARDS NEXT-GEN RAG VIA MEMORY-INSPIRED KNOWLEDGE DISCOVERY[1]》的研究提出了一种创新的RAG框架——MemoRAG,通过引入长时记忆模块,显著提升了RAG系统在复杂任务中的表现。

MemoRAG的创新架构

上一篇我们介绍了二阶段检索产生的原因,用到了图书馆找书的例子,介绍了重排序的思路,详见:Rerankers标准化重排序过程,一行代码就能拥有。现在我们仍然以图书馆找书为例介绍MemoRAG的思路。想象一下,你在图书馆里寻找一本关于某个特定主题的书。传统的RAG方法就像是你在图书馆里随机翻找书籍,效率低下且容易遗漏重要信息。而MemoRAG则更像是你带着一位记忆力超群的图书管理员,他不仅知道每本书的位置,还能根据你的需求提供精准的推荐。

MemoRAG采用了双系统架构:一个轻量但长程的LLM用于形成数据库的全局记忆,另一个昂贵但表达能力强的LLM则基于检索到的信息生成最终答案。具体来说,当任务被提出时,轻量LLM生成草稿答案,提示检索工具在数据库中定位有用信息;然后,重型LLM基于检索到的信息生成最终答案。从这一点,可以看出重排序是预筛选,而MemoRAG是预生成。
这种架构的核心在于记忆模块的设计。记忆模块需要具备两个关键特性:一是记忆性,能够记住整个数据库的全局信息;二是指导性,能够提供有用的线索以全面检索所需知识。为此,MemoRAG引入了以下优化设计:
  1. 双系统架构:轻量LLM作为记忆模块,重型LLM执行检索增强生成。轻量LLM需要具备成本效益且具备长上下文处理能力。
  2. 记忆模块微调:通过微调记忆模块,使生成的线索能够达到优化的检索质量。

MemoRAG的工作机制

MemoRAG的工作机制可以用以下公式表示:

其中,Y 是最终答案,q 是输入查询,C是从数据库 D 中检索到的上下文,y 是记忆模块生成的阶段性答案或线索。记忆模块 通过处理超长上下文,生成任务特定的线索 y,这些线索帮助检索模型定位最相关的上下文C。

这个公式可以分解为三个部分,每个部分都代表MemoRAG系统中的一个关键步骤。让我们逐一解析:

1.记忆模块生成线索 y:

这一步是由记忆模块完成的。记忆模块接收到用户的查询 q 和数据库 D 后,生成一个阶段性答案或线索 y 。可以把记忆模块想象成一个聪明的助手,它根据你提出的问题和它记住的所有信息,给出一个初步的建议或方向。

2.检索模块定位上下文 C:

接下来,检索模块根据记忆模块生成的线索 在数据库 D 中寻找相关的信息,形成上下文 C。这一步就像是你根据助手的建议,在图书馆里找到几本相关的书籍或文章。

3.生成最终答案 Y:

最后,生成模块接收到用户的查询 q 和检索到的上下文 C 后,生成最终的答案 Y。这一步类似于你根据找到的书籍和文章,整理出一个完整且详细的回答。

MemoRAG的应用场景

MemoRAG通过引入长时记忆模块,显著提升了RAG系统在复杂任务中的表现。其双系统架构和记忆模块的优化设计,使其在处理模糊信息需求和非结构化知识时表现出色。MemoRAG特别适合以下场景:
  • 需要综合大量信息和资源的复杂查询
  • 涉及多领域知识的跨学科问题
  • 需要高准确性和详细解释的专业咨询
比如:在法律领域,处理复杂的法律查询通常需要检索大量的法律条文和案例。例如,用户可能会提出一个涉及多项法律条文的复杂问题:“在某特定情况下,如何解释合同法中的违约责任?”传统的RAG系统可能会因为信息需求模糊而难以提供准确答案。
MemoRAG通过其记忆模块生成阶段性答案,例如:“合同法第XX条规定了违约责任的基本原则,相关案例包括A案和B案。”然后,检索模块根据这些线索定位相关法律条文和案例,最终生成详细的法律解释。这种方法不仅提高了检索的准确性,还显著提升了生成答案的质量。
再比如:在医疗领域,医生可能会提出复杂的诊断问题,例如:“患者表现出X、Y、Z症状,可能的诊断是什么?”传统的RAG系统可能会因为症状描述不明确而难以提供准确的诊断建议。
MemoRAG的记忆模块可以生成阶段性答案,例如:“这些症状可能与以下疾病相关:A病、B病、C病。”然后,检索模块根据这些线索定位相关的医学文献和病例,最终生成详细的诊断建议。这种方法不仅提高了诊断的准确性,还显著提升了生成答案的质量。

实验与评估

为了评估MemoRAG的有效性,研究团队开发了一个名为ULTRADOMAIN的综合基准,包含来自法律、金融、教育、医疗、编程等多个领域的复杂RAG任务。实验结果显示,MemoRAG在处理复杂任务时表现出色,显著优于传统RAG系统。

结论

MemoRAG通过引入长时记忆模块,显著提升了RAG系统在复杂任务中的表现。其双系统架构和记忆模块的优化设计,使其在处理模糊信息需求和非结构化知识时表现出色。未来,随着更多资源和数据的引入,MemoRAG有望在更多领域展现其强大的应用潜力。希望这项研究能够为更多AI应用场景提供新的思路和解决方案。

参考资料

[1]

MEMORAG: MOVING TOWARDS NEXT-GEN RAG VIA MEMORY-INSPIRED KNOWLEDGE DISCOVERY: https://arxiv.org/pdf/2409.05591

后台回复“进群”入群讨论


AI工程化
专注于AI领域(大模型、MLOPS/LLMOPS 、AI应用开发、AI infra)前沿产品技术信息和实践经验分享。
 最新文章