RAG - GraphRAG
向量检索
信息片段之间的连接能力有限
- RAG 在跨越多个信息片段以获取综合见解时表现不足
- 当要回答一个复杂问题时,必须要通过共享属性在不同信息之间建立联系
- RAG 无法有效捕捉这些关系
- 限制了 RAG 在处理需要多跳推理或整合多源数据的复杂查询时的能力
归纳总结能力不足
- 在处理大型数据集或长文档时,RAG 难以有效地归纳和总结复杂的语义概念
- RAG 在需要全面理解和总结复杂语义信息的场景中表现不佳
GraphRAG
利用 LLM 生成的知识图谱来改进 RAG 的检索部分
- GraphRAG 利用结构化的实体和关系信息,使得检索过程更加精准和全面
- GraphRAG 在处理多跳问题和复杂文档分析时表现出色
- GraphRAG 在处理复杂信息处理任务时,显著提升问答性能,提供比 RAG 更为准确和全面的答案
- GraphRAG 通过知识图谱有效地连接不同的信息片段
- 不仅能够提供准确答案,还能展示答案之间的内在联系,提供更丰富和有价值的结果
GraphRAG 先利用知识图谱,关联查询的实体和关系
从与知识图谱实体直接相关的文档中检索片段,提供一个更全面、指标化、高信息密度的总结
主要优势
通过构建知识图谱,将实体和实体之间的关系结构化地表示出来,克服了传统 RAG 的复杂推理局限性
- 提高答案准确度和完整性
- 精确的关系捕捉
- 知识图谱能够显式地表示实体及其关系
- 使得 GraphRAG 在处理涉及多实体、多关系的复杂查询时,能够准确地检索相关信息
- 多级推理能力
- 通过图结构,GraphRAG 可以实现多跳推理,连接不同的信息片段,提供更加全面和深入的回答
- 实证效果
- GraphRAG 在回答复杂问题时,LLM 响应的准确度平均提升 3 倍以上
- 精确的关系捕捉
- 提升可解释性和可追溯性
- 可解释性
- 知识图谱的结构化特点使得系统的决策过程透明化,便于理解模型给出的某一答案的原因
- 可追溯性
- 每个结论都可以在知识图谱中找到对应的路径,支持对决策过程的复查和验证
- 可解释性
知识图谱
- 图谱是一种用于表示实体及其相互关系的数学结构
- 一个图(Graph)由一组节点(Nodes)和连接这些节点的边(Edges)组成
- 节点通常代表实体(人物、地点、概念),而边则表示实体之间的关系或关联
- 知识图谱是一种特殊类型的图谱,用于表示知识领域中的实体及其关系
- 以结构化的方式组织信息,使机器能够理解和推理复杂的语义关系
- 知识图谱的核心要素
- 实体(Entities) - 表示具体的对象或者概念
- 属性(Attributes) - 描述实体的特征
- 关系(Relations) - 连接实体之间的语义关联
- 知识图谱能够高效地组织和检索信息,为各种应用提供支持 - RAG、推荐引擎、语义搜索
GraphRAG 引入知识图谱,用于增强传统 RAG 的能力
- 结构化信息表示
- 将文本数据转换为知识图谱,GraphRAG 能够以结构化的方式捕捉实体和关系,超越纯粹向量表示的局限
- 增强语义理解
- 知识图谱提供了显式的语义关系,使模型能够理解实体之间的复杂关系,支持多跳推理和全局信息整合
- 改进检索效率
- 在检索阶段,利用知识图谱可以更精准地定位相关信息,减少无关数据的干扰,提高 RAG 的检索速度
构建知识图谱的步骤
Step | Desc |
---|---|
实体识别 | 从文本或数据源中识别出关键实体 |
关系抽取 | 确定实体之间的关系,可能通过 NLP 技术实现 |
三元组生成 | 将实体和关系表示为(主体、关系、客体)的形式 |
图谱存储 | 使用图数据库或者专门的存储系统保存知识图谱 |
成本 - 构建知识图谱的主要问题
- 数据收集和清洗
- 构建高质量的知识图谱依赖于从多源异构数据中抽取出可靠的实体和关系
- 需要对数据进行大量清洗和预处理,以消除冗余、噪音和冲突的数据,确保知识图谱的准确性和一致性
- 该过程需要大量的人工干预和计算资源
- 知识图谱的构建
- 知识图谱的构建依赖于从数据中识别并提取实体及其关系
- 传统上依赖人工识别和提取,现在可以借助 LLM 来完成 - 均需要大量成本
- 知识图谱的维护与更新
- 知识图谱是动态的,随着新的数据和知识不断涌现,需要持续更新以保持其准确性和时效性
- 维护和更新知识图谱需要定期重新处理数据,以确保新添加的实体和关系与现有结构保持一致
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.