跳到正文
技术吧
返回

从 RAG 到 GraphRAG,什么是 GraphRAG 以及为什么使用它?

更新于:

ChatGPT 的时代已经到来。这是一个深受大型语言模型影响的时代,可以称为第三次工业革命。如今,就连我的母亲也在使用 ChatGPT 进行查询,这表明它的使用范围跨越了几代人,并且还在不断扩大。 被广泛使用的原因可能在于它能够准确地获取和传达用户想要的信息。在信息泛滥的时代,它可以选择性地提供“必要”的信息。 尽管迄今为止取得了重大进展,但仍存在许多挑战。例如,其中一个挑战是“幻觉”现象,即提供不准确的信息。这个问题源于各种原因,其中最主要的原因是对用户意图的误解,导致获取不相关的信息。 解决方案很简单:准确理解用户的意图并提供“相关”信息。 改善这一状况涉及多种方法,主要分为四类:

  1. 从零开始构建大型语言模型,这种模型从一开始就可以获得清晰的数据上下文,但构建成本较高。
  2. 采用“训练有素”的大型语言模型,并在特定领域进一步训练它们,这种方法具有成本效益且相对准确,但在模型上下文和领域特定上下文之间保持平衡却具有挑战性。
  3. 按原样使用大型语言模型,但为用户查询添加额外的上下文,这虽然具有成本效益,但在上下文提供方面存在主观性和潜在偏见的风险。
  4. 保留大型语言模型,同时在响应过程中提供“相关信息”的额外上下文,这允许提供最新的、具有成本效益的响应,但在识别和集成相关文档方面涉及复杂性。

此外,可以从五个方面比较这些方法:成本、准确性、特定领域术语、最新响应、透明度和可解释性。具体来说,它将研究检索增强生成 (RAG) 技术,该技术涉及获取“相关”信息和提供上下文,并探索 RAG 的局限性以及 GraphRAG 作为克服这些局限性的手段。

RAG简介

关键在于“正确”地解释查询、获取相关信息并将其处理成上下文。 如图所示,从用户查询 → 通过预先训练的大型语言模型 (LLM) 生成响应 → 将响应传递给用户的过程现在包含一个额外的步骤,即检索模型获取查询的相关信息。这个添加的检索模型是上述三个元素发生的地方。

为了有效地完成这三个任务,该过程被划分为四个阶段实施:1. 预检索 2. 分块 3. 检索 4. 后检索。

预检索

分块

检索

后检索

RAG 的局限

与其他方法相比,RAG 具有其高效性,例如成本、最新信息和领域特异性,但它也有其固有的局限性。下图似乎很好地描述了 RAG 流程中的这些局限性。基于该图,我们将研究一些有代表性的局限性。

  1. 内容缺失 :第一个限制是无法索引与用户查询相关的文档,因此无法使用它们来提供上下文。尽管认真预处理数据并正确将数据存储在数据库中,但无法利用这些数据是一个重大缺陷。
  2. 错过排名靠前的文档 :第二个问题出现在检索到与用户查询相关的文档但相关性极低时,导致答案无法满足用户的期望。这主要源于在过程中确定要检索的“文档数量”的主观性,突出了一个主要限制。因此,有必要进行各种实验来正确定义这个 k 参数。
  3. 不在上下文中 — 合并策略限制 :从数据库中检索到包含答案的文档,但无法将其包含在生成答案的上下文中。当返回大量文档时会发生这种情况,并且需要合并过程来选择最相关的信息。
  4. 未提取 :第四个是 LLM(大型语言模型)的基本限制,它倾向于检索“近似”值而不是“精确”值。因此,获取“近似”或“类似”值可能会导致不相关的信息,从而因未来响应中的微小噪音而造成重大影响。
  5. 格式错误 :第五个问题似乎与指令调整密切相关,指令调整是一种通过使用指令数据集微调 LLM 来提高零样本性能的方法。当提示中的附加指令格式不正确时,就会发生这种情况,导致 LLM 产生误解或误读,从而产生错误的答案。
  6. 特异性不正确 :第六个问题涉及未充分利用用户查询信息或过度使用查询信息,导致在考虑查询的重要性时出现问题。当输入和检索输出的组合不合适时,很可能会发生这种情况。
  7. 不完整 :第七个限制是,尽管能够使用上下文来生成答案,但缺失的信息会导致对用户查询的响应不完整。

总结起来,造成这些限制的主要原因是 1. 索引 — 检索与用户查询相关的文档,2. 在生成答案之前正确提供信息,3. 输入和检索前/后过程的适当组合。这三个因素凸显了 RAG 中的关键因素,并提出了如何改进这些问题的问题。

何时使用 GraphRAG

总体而言,GraphRAG 通过集成知识图谱技术来更好地检索信息、推理和生成上下文,从而提供了一种全面的方法来解决 RAG 的局限性,从而提高了生成的响应的准确性和相关性。

GraphRAG 架构

有 4 个模块用于执行 GraphRAG :查询重写、增强、检索和语义搜索、相似性搜索。

查询重写

在这个过程中重写用户的查询提示。如果用户编写并订购了引擎,我们可以在其查询提示格式中添加额外的有用上下文。在这个过程中,我们重新定义了这些东西,以明确用户的意图。

检索前和检索后

为 GraphRAG 做好准备

GraphRAG 限制

应用 GraphRAG

何时使用 GraphRAG

结论

这篇文章涵盖了从 RAG 到 GraphRAG 的所有内容,重点介绍了微调、从头开始构建、快速工程和 RAG 等方法,以提高响应质量。虽然 RAG 因能够以相对较低的成本高效获取相关文档以回答查询而广受好评,但它在检索过程中面临着一些限制。高级 RAG 或 GraphRAG 通过利用“语义”推理和检索,成为克服这些限制的解决方案。有效利用 GraphRAG 的关键考虑因素包括信息提取技术以推断和生成分块数据之间的联系、用于存储和检索的知识索引以及用于生成图形查询的模型,例如 Cypher 生成模型。随着新技术的不断涌现,这篇文章旨在作为 GraphRAG 的资源,帮助您更熟悉这种先进的方法。感谢您阅读这篇广泛的讨论。


分享本文:

上一篇
AI、AGI 和 GAI 有什么区别?
下一篇
人工智能面试如何重新定义招聘方式