微信扫码
与创始人交个朋友
我要投稿
摘要
检索增强生成技术(RAG)一直作为解决现有大型语言模型(LLM)受限于有限的上下文窗口大小和静态知识库问题的方法。然而,许多RAG技术通过检索与查询语义相似的小型文档片段来运行,未能包含更广泛主题或微妙思想的上下文。在这个项目中,我们研究如何利用知识图谱生成结构化信息,以补充检索任务。我们的主要贡献是一个新的RAG框架,结合了多查询向量搜索、知识图谱遍历和总结技术的思想。为了进行基准测试,我们在一个长上下文长度问题回答数据集上测试准确性,展示与现有系统相当的性能。在质量上,我们分析样本查询的成功和错误模式。
导师:安娜·戈尔迪 外部合作者:无 共享项目:否
知识图谱是代表实体和关系的图结构,其中节点表示实体,边表示关系。例如,从《哈利·波特》系列构建的知识图可能包含一个表示“哈利”的节点,具有表示哈利与其他实体的行动、关系和观点的出边。知识图中编码的信息是结构化的,可以进行高效的查询或查找(Chen等人(2024年))。
相比之下,LLMs通过它们的权重以参数形式编码知识。因此,虽然LLMs擅长编码广义知识和语言处理能力,但它们可能无法捕获特定领域或最新知识。此外,它们可能会出现“幻觉”,这个问题变得更加严重,因为很难追踪信息的来源。最初为LLMs提供外部知识的方法涉及在额外数据上进行微调。然而,随着更大的模型导致更长的微调时间和不断发展的数据,这变得不可行。
RAG作为另一种提供外部知识的方法出现,通过根据查询检索相关文档并在推理过程中提供这些文档作为额外上下文(Lewis等人(2021)Gao等人(2024))。传统的RAG技术涉及将文档分成块,使它们可以适应LLM的有限上下文窗口大小。在检索时,文档根据其与查询的语义相似度来获取。RAG在直接、单一主题上表现出色。
斯坦福大学 CS224N 深度学习与自然语言处理
查询,比如“告诉我关于哈利波特的信息”。在这种情况下,可能会检索到提及哈利波特的文档块,允许LLM在回答查询时使用这些信息作为上下文。
然而,这种方法的缺点包括导致语义意义丢失的分块,跨块之间缺乏整体理解,以及无法根据查询检索相关文档。对于需要跨多个概念和想法进行复杂推理的查询来说,这些缺点给使用 RAG 获取扎实、准确结果带来了挑战。为了说明这一挑战,我们想象一个查询的示例:“总结哈利波特在所有书中的行为后果。”要检索相关文档,我们首先需要检索有关哈利波特行为的文档,以及概述后续影响的文档 - 都遍布整个语料库。而且,如果没有对这些文档的整体理解,就无法通过基于相似性的检索实现这一点。
显然,LLMs和知识图谱都具有各自的优势和缺点,可以互补(Pan等人(2024年))。在本文中,我们提出了一个新颖的RAG框架,其中包括由知识图数据库和LLMs驱动的组件。通过综合两者,我们希望解决现有RAG技术和LLMs的缺点。具体而言,我们的解决方案旨在将LLMs的复杂一般化推理能力与知识图谱的高效、基础信息存储结合起来。
我们的框架通过将查询分解为子查询的过程实现了这一点,这些子查询用于从预先构建的知识图数据库中查找相关实体。利用这种知识图查找,我们返回一个结构化的实体属性和外部关系列表。然后我们总结这些结构化信息,并生成候选邻居节点以继续遍历。从候选节点出发,我们继续遍历并查询到定义的深度。在每次遍历步骤中,我们总结结构化的知识图信息,并对相关文档执行向量搜索。通过收集的节点总结、相关文档和子查询,我们提示LLM回答原始查询。图1总结了这种方法。
图1:我们方法的完整流程。
在RAG领域,传统技术将长文档分割为定义的块,导致对整个文档内容的理解受限。为了应对这一问题,摘要方法旨在提供对整个文档的全面理解。通过摘要摘录或递归地摘要块,这些方法允许按顺序捕获更广泛的主题(Gao等人(2023年),Wu等人(2021年))。为了捕获在文档中可能不相邻的更广泛主题或想法,RAPTOR是一种最近的方法,它递归地生成在语义上相似的文档文本块上进行摘要(Sarthi等人(2024年))。然而,仅通过聚类语义相似的块,忽略了可能在概念上互相作用但缺乏语义相似性的想法。理想情况下,我们可以跨整个块组合空间进行摘要,但这将带来计算上的昂贵。
基于知识图谱的RAG方法最近一年来得到了广泛探索。Neo4j提出了基于图的RAG,除了基于查询相似性返回相关文档之外,还简单返回查询的知识图信息。因此,返回的文档仍然基于标准的RAG技术,但具有知识图的基础上下文。最近,微软研究的GraphRAG通过利用知识图来创建基于语义相似的聚类的摘要来解决这些差距(Edge等人(2024年))。这种方法允许考虑语义结构,并在多个文档之间提供更高层次的视图。然而,对节点和文档进行聚类并递归创建摘要会带来昂贵的挑战 - 尤其是随着文档规模的扩大。我们的方法与GraphRAG和RAPTOR不同,认为在推理过程中可能不需要在聚类或块之间进行预摘要。
思维链引导被引入为提高LLM推理能力的方法,建议它们以逐步回答问题的方式处理问题(Wei等人(2023))。通过结合子问题的答案,LLM应被引导生成更加逻辑性的回应。同样,多查询检索涉及提示LLM生成多个子查询,这些子查询可用于检索文档。通过生成子查询,目标是构建具有更明显语义含义的专业查询,以检索相关文档。这一理念在检索相关文档时允许更多细分,并作为我们查询系统的一部分来利用。
我们对RAG的方法涉及两个不同阶段。首先,我们必须对文档进行预处理,以构建我们的知识图数据库。这一步骤是从现有的库和实现中进行调整,稍作修改以包含更广泛的实体和关系(Neo4J(2024))。构建完知识图后,我们就能进行第二阶段的查询。我们从头开始实现这一步骤,利用langchain库构建提示链,结构化输出生成,图形和相似性搜索(langchain(2024))。
在我们能够进行查询之前,我们需要从文档中构建我们的知识图数据库。为了做到这一点,我们首先将每个文档分成长度为200的小块。拆分是通过递归按字符进行的,以保留句子和段落的语义含义(LangChain(2024))。在拆分文档之后,我们使用GPT-4作为我们的LLM来解析这些块并提取任何真实世界中的人物或对象实体和关系。虽然我们使用GPT-4,但也可以使用较小的模型来降低成本。有了提取的节点和边,我们然后填充我们的知识图数据库。需要注意的是,除了提取的节点和边之外,我们还使用知识图数据库来存储原始文档块及其相应的向量嵌入。
图2:使用LLMs构建知识图。来自Chen等人(2024)的图。
使用构建的知识图谱数据库,我们现在可以为我们的RAG方法定义一个查询过程。 使用GPT-4作为我们的LLM进行查询的过程涉及以下步骤:
1.首先,我们使用链式思考提示来查询LLM,生成一系列回答问题所需的子查询,重点关注每个提示的多样性。我们将生成的最大子查询数设置为一个参数。对于每个生成的子查询,我们提取相关实体节点,并查询我们的知识图谱以产生结构化的节点关系信息。图5展示了这种结构化输出的示例。
2.接下来,我们将对每个子查询的结构化输出进行总结,并寻找可能有助于回答问题的相邻节点。然后,我们将这个总结与原始子查询结合成一个字符串,并利用OpenAI Embeddings将其转换为向量嵌入。然后使用原始文档块向量存储执行向量相似度搜索。所使用的具体评分指标是余弦相似度分数,尽管这可以进行修改。我们返回前k个相似的文档,其中top_k是一个设定的参数。此外,我们返回下一个相邻节点。
3.为了高效的存储和查找,我们将文档和下一个相邻节点作为单独的集合进行维护。对于下一个相邻节点,我们根据一个设置的max_depth参数执行步骤2和3,其中max_depth=2表示我们完成额外的一次遍历。
最后,我们将子查询,节点关系摘要和原始文档作为上下文返回给LLM,以回答我们最初的问题。
考虑到我们正在评估文档检索的能力,我们使用QuALITY数据集进行实验(Pang等人(2022年))。该数据集包含英文中的长篇章节,大约包含2000-8000个单词。每个章节包含一系列多项选择问题和答案对,这使我们能够对准确性进行基准测试,而不是针对句子。
图3:来自知识图谱查询的检索管道的样本结构化输出
相似度度量分数,如BLEU或METEOR。我们使用开发集进行评估,因为测试集不包括真实标签。
为了评估,我们使用准确性作为答案选项是多项选择的度量标准。为了生成答案,我们利用结构化输出的LLM调用为每个答案选项生成一个整数。我们使用开发集进行评估,因为测试集不包含带注释的地面真实标签。对于定性评估,我们利用架构每个步骤的记录输出。评估跨不同架构选择进行消融研究。
为了进行实验,我们在所有任务中都使用了GPT-4,并使用了以下参数进行所有设计配置:max_sub_queries=3,top_k=3。我们的知识图首先是通过对QuALITY数据集中表示的长上下文段落进行预处理而创建的。在这个过程中,由于没有并行化请求,知识图的创建需要相当长的时间。使用这个构建的知识图,我们然后在几种架构选择中进行测试。在本文提出的设计范式中表现最好。
图 4:从QuALITY构建的知识图。
从我们的实验中,我们使用GPT-4和标准的RAG方法取得了64.7%的基准准确率,该方法使用余弦相似性来检索相关文档。接下来,我们测试了我们的知识图检索系统,但没有源文件,并且深度为1。 这意味着在回答问题时我们不检索或包含原始源文件作为上下文;相反,我们仅包含从知识图查询构建的摘要。 深度为1意味着我们不会继续沿着任何候选下一个节点遍历。
对于这个配置,我们的准确率明显低于基准线。这表明,仅仅从知识图谱查询返回的信息是不足够的,没有实际文档片段。基于这一测试的结果,我们继续测试相同的配置,但增加了深度。然而,我们只获得了略微改善的准确率,突出了包括文档的重要性。
我们的下一个结果是通过实施整个流程来检索的。我们改变遍历的最大深度,随着深度从1增加到3,准确率分别为69.3、76.1和70.9。这些结果令人惊讶,并表明增加遍历深度并不能提供可以提高准确性的有意义信息。然而,这可能是由于上下文中加入的额外噪音,或者所有文档中的冲突实体造成的。尽管如此,一个显著的发现是由结构化知识图信息返回的额外上下文显著提高了我们的基准准确性。具体来说,在深度为2时,我们看到准确率超过10%的显著增加。
表1:使用GPT-4在QuALITY数据集的开发集上的模型性能。
与 QuALITY 数据集上的准确性进行比较时,我们无法直接进行数据对比,因为 RAPTOR 的准确性是在测试数据集上或使用GPT-3 在开发数据集上报告的。然而,作为一种粗略比较,RAPTOR + GPT-4 在测试数据集上达到了82.6%的准确性。总的来说,这些初步结果表明在中长长度数据集上,我们可以在问题和回答方面取得类似的成功,而无需对文档进行大量预处理。
对于分析,我们进行了观察,涵盖了在建筑选择过程中代表的几种失败和成功模式。在实验阶段,我们记录了中间输出。因此,我们能够利用这些中间输出完成我们的定性分析。失败模式
我们分析的主要故障模式是基于检索结构化知识图信息并随后进行总结。在理解为什么我们的知识图方法没有返回源文件的情况下失败,很明显许多子查询产生的知识图实体和关系无法回答子查询。因此,在提示模型使用最终上下文时,没有具体数据支持潜在的声明。
在理解深度的错误模式时,我们还分析了候选节点是如何以及哪些被生成用于遍历。对于大多数查询而言,尽管设定了最大深度为3,模型通常只完成一次遍历。这是因为我们会对已查询的实体进行过滤,并且只选择遍历新实体。这一发现令人惊讶,不允许知识和背景扩展到更广阔的领域。
图5:中间步骤示例成功输出
在推进的过程中,我们可以尝试使用不同的方法来检索一个更多样化的潜在实体集合。
成功模式
成功模式主要发生在子查询能够准确回答的情况下。然而,即使子查询无法从知识图查询和总结中检索到相关信息,它们仍然能够通过多查询向量化来回答问题。此外,在子查询未被回答的样本中,返回的文档可以作为上下文补充。这表明返回结构化和非结构化数据具有很大优势。
在这个项目中,我们尝试使用知识图谱来进行RAG任务的实验,主要关注在对中长文档进行多项选择问题和回答方面的表现。我们的结果表明,我们实现了类似总结RAG技术的性能,而不需要用昂贵的总结方法对我们的数据进行预处理。
然而,知识图谱的力量在于通过节点连接大量不同文档中的想法。在对中长篇文档进行测试时,我们可能没有充分利用知识图谱的能力。同样,可以通过构建的LLM过滤器或自定义查询来更有效地查询知识图谱。对于未来的工作,我们希望通过对多跳数据集进行评估,进一步探讨知识图谱如何帮助增强LLMs具有跨越外部多样化知识库进行推理的能力。
伦理声明
我们首先要承认,我们的架构和对知识图谱的探索提出了一种昂贵的解决方案,这对许多人来说是无法接触的。在本文的测试中,可用的token积分和企业账户使得在没有任何速率限制的情况下进行测试成为可能。在测试其他架构,如RAPTOR时,还需要一个具有增加速率限制和用于及时测试的非微不足道预算的账户。为了使这些解决方案的测试更加容易,提供对先前构建的知识图谱数据库或在大型数据集上进行递归总结的文档结构的公共访问将使研究人员能够在不需要为构建这些结构而进行财务投资的情况下进行测试。
拥有大型数据库和知识存储库,存在偏见在数据集中的表达以及对大型数据集的不公平访问的潜在可能性。关于偏见,RAG方法提供了引用检索文档的方法,提供了一个透明的途径来解释LLM的推理方式。然而,LLM可能仍然会展现出自身编码在参数中的偏见,或者即使加入了上下文也可能会产生幻觉。对于使用RAG应用程序的用户,特别是那些在做出关键决策时使用RAG的用户,在解释响应时应谨慎。作为创建者和研究者,我们有责任实施保障措施和用户界面功能,使用户了解风险。为了解决RAG可能导致不公平访问数据的问题,已经存在大型企业拥有私人数据集和文档的不公平现象。借助RAG的有效性,这将使这些机构能够访问私人信息并利用这些信息中的知识。然而,RAG也允许更多地利用外部数据库进行分析。通过整理我们个人的数据收集,用户可以在大型文档中进行复杂的分析。总的来说,为了减少不公平访问,我们建议机构在咨询专注于人工智能政策的第三方机构后,将大数据公开并公开可访问。这将确保不会发布有害数据。
参考文献
Zhuo Chen, Yichi Zhang, Yin Fang, Yuxia Geng, Lingbing Guo, Xiang Chen, Qian Li, Wen Zhang, Jiaoyan Chen, Yushan Zhu, Jiaqi Li, Xiaoze Liu, Jeff Z. Pan, Ningyu Zhang, and Huajun Chen. 2024. Knowledge graphs meet multi-modal learning: A comprehensive survey.知识图谱遇见多模态学习:一项全面调查。
达伦·埃奇(Darren Edge)、何小翰(Ha Trinh)、纽曼·程(Newman Cheng)、乔舒亚·布拉德利(Joshua Bradley)、亚历克斯·超(Alex Chao)、阿普瓦·莫迪(Apurva Mody)、斯蒂芬·特鲁特(Steven Truitt)和乔纳森·拉森(Jonathan Larson)。2024年。从本地到全球:一种基于图的摘要查询方法。
高天宇,甄浩华,余佳桐和陈丹琪。2023年。使大型语言模型能够生成带有引用的文本。
高云帆,熊赟,高新宇,贾康翔,潘金柳,毕雨曦,戴翼,孙嘉伟,孟
Wang和Haofen Wang。2024年。大型语言模型的检索增强生成:综述。
LangChain. 2024. "https://api.python.langchain.com/en/latest/character/langchain-textsplitters.character.RecursiveCharacterTextSplitter.html". langchain. 2024. LangChain文档。https://python.langchain.com/v0.2/docs/introduction/.
Patrick Lewis, Ethan Perez, Aleksandra Piktus, Fabio Petroni, Vladimir Karpukhin, Naman Goyal, Heinrich Küttler, Mike Lewis, Wen tau Yih, Tim Rocktäschel, Sebastian Riedel, 和 Douwe Kiela. 2021. Retrieval-augmented generation for knowledge-intensive nlp tasks.
Neo4J. 2024.知识图谱为rag。https://neo4j.com/developer-blog/knowledge-graph-ragapplication/.
Shirui Pan, Linhao Luo, Yufei Wang, Chen Chen, Jiapu Wang, and Xindong Wu. 2024. Unifying large language models and knowledge graphs: A roadmap. IEEE Transactions on Knowledge and Data Engineering, 36(7):3580–3599.施瑞潘、罗林浩、王宇飞、陈晨、王家璞和吴信东。2024年。统一大型语言模型与知识图谱:一份路线图。《IEEE知识与数据工程学报》,36(7):3580-3599。
Richard Yuanzhe Pang, Alicia Parrish, Nitish Joshi, Nikita Nangia, Jason Phang, Angelica Chen, Vishakh Padmakumar, Johnny Ma, Jana Thompson, He He, and Samuel R. Bowman. 2022. Quality: Question answering with long input texts, yes!
Parth Sarthi, Salman Abdullah, Aditi Tuli, Shubh Khanna, Anna Goldie,和 Christopher D. Manning. 2024. Raptor: 递归抽象处理用于树结构检索。
Jason Wei, Xuezhi Wang, Dale Schuurmans, Maarten Bosma, Brian Ichter, Fei Xia, Ed Chi, Quoc Le和Denny Zhou. 2023. "连续思维提示激发大型语言模型的推理能力。"
Jeff Wu, Long Ouyang, Daniel M. Ziegler, Nisan Stiennon, Ryan Lowe, Jan Leike, and Paul Christiano. 2021. Recursively summarizing books with human feedback.杰夫·吴,龙欧阳,丹尼尔·齐格勒,尼森·斯蒂农,瑞安·洛维,扬·莱克和保罗·克里斯蒂亚诺。2021年。利用人类反馈递归地总结书籍。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-11-15
复旦发布:最佳RAG方案
2024-11-15
破解PDF解析难题:RAG中高效解析复杂PDF的最佳选择
2024-11-15
RAG技术全解析:从基础到前沿,掌握智能问答新动向
2024-11-15
RAG在未来会消失吗?附RAG的5种切分策略
2024-11-15
HtmlRAG:利用 HTML 结构化信息增强 RAG 系统的知识检索能力和准确性
2024-11-15
打造自己的RAG解析大模型:表格数据标注的三条黄金规则
2024-11-13
RAGCache:让RAG系统更高效的多级动态缓存新方案
2024-11-13
Glean:企业AI搜索,估值46亿美元,ARR一年翻4倍
2024-07-18
2024-07-09
2024-05-05
2024-07-09
2024-05-19
2024-06-20
2024-07-07
2024-07-07
2024-07-08
2024-07-09
2024-11-06
2024-11-06
2024-11-05
2024-11-04
2024-10-27
2024-10-25
2024-10-21
2024-10-21