AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


探索 MemoRAG:下一代检索增强大模型框架的创新与突破
发布日期:2024-09-27 07:07:38 浏览次数: 1748 来源:小兵的AI视界


在当今人工智能飞速发展的时代,各种创新的技术不断涌现,为我们的生活和工作带来了巨大的变革。其中,检索增强大模型框架成为了研究的热点领域。今天,我们将深入探讨北京智源人工智能研究院与中国人民大学高瓴人工智能学院联合推出的 MemoRAG,这一具有创新性的下一代检索增强大模型框架,看看它是如何在复杂的信息环境中实现精准信息获取和高效内容生成的。


一、MemoRAG 的核心技术模式


MemoRAG 提出了一种全新的 RAG(检索增强生成)模式,即基于记忆的线索生成——基于线索指引的信息获取——基于检索片段的内容生成。这种模式打破了传统 RAG 系统只能处理简单问答任务的限制,能够在复杂场景条件下,如模糊查询表述”“高度非结构化知识等情况下,实现精准的信息获取。


在这个过程中,MemoRAG 首先通过基于记忆的线索生成模块,从大量的数据中提取出与用户查询相关的线索。这些线索可以帮助系统更好地理解用户的需求,为后续的信息获取和内容生成提供指导。然后,基于线索指引的信息获取模块会根据线索从数据库中检索出相关的信息片段。最后,基于检索片段的内容生成模块会将这些信息片段进行整合和生成,为用户提供完整的答案。

二、MemoRAG 的架构特点


1. dual-system 架构


MemoRAG 采用了 dual-system 架构,这一架构由两个部分组成。一方面,它使用一个轻量且能高效处理超长文本的大语言模型作为全局记忆模块,对数据库进行全局理解和记忆。这个全局记忆模块能够在单个上下文中处理多达 100 万词的数据,为复杂任务提供强大的支持。另一方面,MemoRAG 利用一个表达能力更强的大语言模型来生成最终答案。


在接收用户查询后,MemoRAG 先基于记忆生成模糊答案和答案线索,然后通过检索器补充答案细节,最终生成完整答案。这种架构的优势在于,它能够充分发挥两个不同模型的优势,提高系统的性能和效率。


2. 高效缓存和上下文复用


MemoRAG 支持分块、索引和编码缓存,显著提升了上下文加载速度,最高可加速 30 倍。同时,它采用一次编码、多次使用的策略,在处理超长上下文时,只需编码一次即可在多次任务中重复使用同一数据,提升任务效率,节省时间与计算资源。


三、MemoRAG 的技术亮点


1. 全局记忆


MemoRAG 的全局记忆模块能够对海量数据集进行全面理解,为复杂任务提供强大支持。它可以在单个上下文中处理多达 100 万词的数据,这使得它能够更好地应对大规模数据的处理需求。同时,全局记忆模块还可以为后续的信息获取和内容生成提供更准确的线索和指导。


2. 可优化且灵活


MemoRAG 只需经过数小时的额外训练,就能适应新的任务挑战,并在短时间内实现性能的最佳化。这使得它能够快速适应不同的应用场景和需求,为用户提供更加个性化的服务。


3. 上下文线索


MemoRAG 可以从全局记忆中生成精准的上下文线索,将原始输入与答案紧密相连,提升问题解答的准确性,挖掘深层次洞见。这些上下文线索可以帮助用户更好地理解答案的来源和背景,提高答案的可信度和实用性。


4. 高效缓存和上下文复用


如前所述,MemoRAG 的高效缓存和上下文复用技术可以显著提升系统的性能和效率,节省时间与计算资源。


四、MemoRAG 的应用前景


MemoRAG 作为下一代检索增强大模型框架,具有广阔的应用前景。在智能客服领域,它可以为用户提供更加准确和高效的服务,解决用户的各种问题。在知识图谱构建方面,它可以帮助我们更好地理解和整合各种知识资源,为知识的传播和应用提供支持。在自然语言处理任务中,如文本生成、机器翻译等,MemoRAG 也可以发挥重要的作用,提高任务的质量和效率。


此外,随着人工智能技术的不断发展,MemoRAG 还可以与其他技术相结合,创造出更多的创新应用。例如,它可以与物联网技术相结合,为智能家居、智能交通等领域提供更加智能化的服务。它也可以与虚拟现实技术相结合,为教育、娱乐等领域带来更加沉浸式的体验。


五、MemoRAG应用实践


1. 安装依赖
pip install torch==2.3.1conda install -c pytorch -c nvidia faiss-gpu=1.8.0Install from source
2. 安装MemoRAG
git clone https://github.com/qhjqhj00/MemoRAG.gitcd MemoRAGpip install -e .

3. 初始化MemoRAG

from memorag import MemoRAGpipe = MemoRAG(mem_model_name_or_path="TommyChien/memorag-mistral-7b-inst",  ret_model_name_or_path="BAAI/bge-m3",gen_model_name_or_path="mistralai/Mistral-7B-Instruct-v0.2",cache_dir="path_to_model_cache",access_token="hugging_face_access_token",beacon_ratio=4)

4. 记忆上下文

将长文本上下文记忆到模型中,以便后续快速检索。
context = open("examples/harry_potter.txt").read()pipe.memorize(context, save_dir="cache/harry_potter/", print_stats=True)

5. 生成回答:

使用记忆的上下文生成对特定查询的回答。
query = "How many times is the Chamber of Secrets opened in the book?"res = pipe(context=context, query=query, task_type="memorag", max_new_tokens=256)print(f"MemoRAG generated answer: \n{res}")

6. 加载缓存

如果再次使用相同的上下文,可以快速从磁盘加载数据。

pipe.load("cache/harry_potter/", print_stats=True)

7. 执行摘要任务

使用MemoRAG执行长文本的摘要任务。
res = pipe(context=context, task_type="summarize", max_new_tokens=512)print(f"MemoRAG summary of the full book:\n {res}")

结语

MemoRAG 作为北京智源人工智能研究院与中国人民大学高瓴人工智能学院联合推出的下一代检索增强大模型框架,具有创新性的技术模式、独特的架构特点和突出的技术亮点。它的出现为我们在复杂信息环境中实现精准信息获取和高效内容生成提供了新的解决方案。相信在未来,MemoRAG 将在各个领域发挥重要的作用,为我们的生活和工作带来更多的便利和创新。


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询