从传统 RAG 到 GraphRAG:大模型与知识图谱的融合
摘要
从传统检索增强生成(RAG)向 GraphRAG 的转变,通过整合知识图谱增强了大型语言模型(LLM),使其能够对复杂查询提供更加细致和准确的响应。GraphRAG 的有效性取决于底层知识图谱的质量和广度,以及 RAG 工程层面的处理。
引言
大型语言模型(LLMs)在固定的数据集上运行,其知识截止于最后一次训练更新时。例如,ChatGPT 的训练数据截至 2021 年 9 月。这种限制可能导致不准确或过时的回复,因为模型可能会'产生幻觉'信息。在不重新训练或微调的情况下更新它们以获得新信息或增强上下文理解可能是具有挑战性的,涉及资源和人力。
检索增强生成 (RAG)
检索增强(Retrieval-Augmented Generation,简称 RAG)被引入为一种技术,旨在通过合并来自外部可靠知识库的信息来改善大型语言模型(LLMs)。
RAG 背后的原则很简单:当要求 LLM 回答问题时,它并不仅依赖于已知的内容。相反,它首先查找来自特定知识源的相关信息。这种方法确保生成的输出引用了大量上下文丰富数据,通过当前和相关信息的增强。
RAG 主要通过两阶段过程来发挥作用:检索和内容生成。
检索阶段
在检索阶段,算法会定位并收集与用户提示或查询相关的信息片段。
举个例子,如果您正在寻找福建炒面的食谱,您的提示可能是'福建炒面的配料是什么?'。系统识别具有与查询语义相关内容的文档,并使用一种相似度度量(通常是余弦相似度)计算相关性,计算它们向量之间的相似度。
在汇总外部知识之后,系统将其附加到用户的提示内容中,并将其作为丰富的输入发送到语言模型。
内容生成阶段
在随后的生成阶段,LLM 将这个增强的提示与自己的训练数据表示结合起来,以生成针对用户查询定制的回复。这种回复提供了个性化和可验证信息的混合,适用于诸如聊天机器人之类的应用程序。

为什么 RAG 如此重要
在当今的技术风景中,LLM 驱动着许多自然语言应用,能够理解或生成类似人类的文本。尽管非常强大,但这些模型有时可能表现不佳。有时,它们在生成不正确的响应上可能过于自信,以至于人们可能很容易被它们极具说服力的论点所说服。
RAG 试图通过指导 LLM 从可信来源获取信息来减轻这些问题,从而保持模型输出的相关性和准确性。
RAG 的限制
生活中的一切事物一样,传统的 RAG 方法存在复杂性和挑战。虽然在增强 LLM 能力方面具有开创性,但 RAG 也存在一定的限制,可能会影响它们的有效性和适用性。
其中一个主要挑战涉及检索信息的准确性和数据源的多源异构性。对于 RAG 要发挥作用,它经常依赖于多个外部来源,这些来源的格式、标准和可靠性水平可能各不相同(如 PDF、Flat files、Markdown、CSV、Web 内容等)。
RAG 的实施也面临着模糊查询或需要深刻理解背景的问题。这些问题,作为技术设计固有的问题,主要源自检索过程,有时会忽略对精确响应至关重要的细微差别。上下文很重要,逗号的位置也很重要。
RAG 的提升
RAG 系统的检索准确性和效率的提升是自然语言处理和机器学习领域的一个持续研究方向。有几种策略可以采取来实现这些改进,但我想强调两个值得关注的改进,这两个改进可以利用当今的技术来实现:
- 实施更复杂的检索算法:从而更好地理解查询的语义,可以提高获取文档的相关性。
- 高效地对知识库进行索引:加快检索过程,同时不牺牲结果的质量。
这就引出了我们的下一个话题:Graph RAG: RAG x Knowledge Graphs(知识图谱)。
GraphRAG: 基于知识图谱的检索增强
GraphRAG 建立在 RAG 的概念基础之上,同时利用了知识图谱(KGs)。这种创新方法,由 NebulaGraph、Neo4j、微软等提出,通过整合图数据库改变了 LLMs 解释和响应查询的方式。
GraphRAG 通过将 KGs 中的结构化数据整合到 LLM 的处理中运行,为模型的响应提供了更加细致和充分的依据。KGs 是真实世界实体及其之间关系的结构化表示,由节点和边组成。节点代表诸如人、地点、物体或概念等实体,边代表这些实体之间的关系或连接。




