在信息爆炸的数字时代,海量数据的检索与利用成为关键挑战。知识图谱作为一种结构化的知识表示方式,以其丰富的语义信息和直观的图结构,为信息检索提供了新视角。近年来,基于知识图谱的检索技术逐渐成为研究热点。其中,GraphRAG(Graph-based Retrieval-Augmented Generation)作为一种创新的检索增强技术,因其独特优势和强大能力,引起了广泛关注。
GraphRAG 的出现得益于生成式 AI 与图数据库技术的融合。随着生成式模型在自然语言生成任务中的突破,模型对大规模知识图谱的集成需求愈发显著。传统的检索增强生成(RAG)方法在处理复杂任务时存在局限性,例如多跳推理和连接分散信息的能力不足。图数据库擅长处理关系复杂、层次结构丰富的知识,通过将生成模型与图数据库结合,可以显著提高大语言模型在复杂文档分析中的问答性能。
1. 什么是 RAG
检索增强生成(Retrieval-Augmented Generation, RAG)是一种技术,它通过结合搜索技术和大型语言模型(LLM)的提示功能来增强模型的输出能力。
RAG 的核心在于使用搜索算法从数据源中检索相关信息,并将其作为背景上下文与用户的问题一起提供给大型语言模型,以生成更准确、更丰富的回答。这种方法特别适用于需要不断更新知识的领域或特定场景,因为它允许模型直接访问最新信息,而无需重新训练。
RAG 技术的优势在于它能够提高大型语言模型输出的相关性、准确性和实用性。它通过向模型提供最新的研究、统计数据或新闻等权威知识来源,增强了模型在各种情境下的表现。此外,RAG 允许开发人员通过来源归属来呈现准确的信息,增加了用户对生成式人工智能解决方案的信任。
RAG 的工作流程始于用户提出查询。这个查询首先经过提示词工程处理,可能会被重新构造或者增加额外的上下文信息,以便更好地匹配检索系统和语言模型的需求。处理后的查询随即被送入检索器。检索器的任务是在预先建立的知识库中搜索与查询相关的文档或信息片段。这个知识库通常包含大量的领域特定数据。
检索到的相关信息随后与原始查询一起被输入到大语言模型(LLM)中。LLM 在这个阶段扮演着核心角色,它需要理解查询的内容,分析检索到的信息,并基于这些输入生成一个连贯、准确的回答。值得注意的是,LLM 在使用前通常会经过大规模的预训练,并可能使用领域特定数据进行微调,以提高其在特定任务上的表现。
在整个过程中,RAG 技术的优势在于它能够动态地将外部知识与模型的生成能力结合起来。这意味着即使面对模型训练数据中没有覆盖的最新信息或专业知识,系统也能提供准确的回答。同时,由于答案是基于检索到的具体信息生成的,这大大减少了模型产生'幻觉'的可能性。
2. 传统 RAG
所谓的传统 RAG,全称为基于向量数据库的检索增强生成,是一种先进的人工智能方法。它的主要目标是通过引入外部知识来增强语言模型的输出质量。传统 RAG 技术的核心在于利用向量数据库进行高效的语义搜索,以辅助语言模型生成更准确、更丰富的回答。
RAG 技术包括两个主要组件:检索器(Retriever)和生成器(Generator)。
- 检索器负责从向量数据库中检索与用户查询最相关的信息。当系统接收到用户查询时,它会将查询转化为向量表示。这个向量随后用于在预先构建的向量数据库中搜索语义相似的文档或信息片段。这个过程利用了向量空间中的相似度计算,通常采用余弦相似度等方法来快速定位最相关的信息。
- 生成器则利用这些信息来生成回答。系统将检索到的相关信息与原始查询一起输入到大语言模型中。语言模型的任务是理解这些输入,并基于检索到的信息生成一个连贯、准确的回答。这个过程不仅仅是简单的信息复述,而是需要模型对信息进行综合、推理和重新组织。
2.1. 传统 RAG 的核心链路
在传统 RAG 框架中,核心链路通常包括以下几个步骤:
索引(向量嵌入)
- 数据加载:文档数据通过文档加载器被引入系统。
- 文本分词:文档被文本分词器分解成较小的文本块(Chunks)。
- 向量化:嵌入模型将文本块转换成高维向量空间中的嵌入向量。
- 向量存储:嵌入向量被存储在向量数据库中,以便于高效检索。
检索(相似查询)
- 查询嵌入:用户的问题被嵌入模型处理,转换成查询向量。
- 向量检索:检索器使用查询向量在向量数据库中检索与问题相关的嵌入向量。
- 上下文构建:检索到的嵌入向量对应的文本块与原始问题结合,构建成增强型提示。
生成(文档上下文)
- 语言模型提示:增强型提示被用作大型语言模型的输入。
- 回答合成:语言模型基于提示生成回答,将信息融合并生成自然语言回答。
- 答案输出:最终生成的回答被输出,作为对用户查询的响应。
2.2. 传统 RAG 存在的问题
传统 RAG 希望通过知识库的关联知识增强大模型问答的上下文以提升生成内容质量,但也存在诸多问题:


