欢迎使用GraphRAG
👉 微软研究院博客文章
👉 GraphRAG加速器
👉 GraphRAG论文
图1: 使用GPT-4 Turbo构建的LLM生成知识图谱
GraphRAG是一种结构化、分层次的检索增强生成(RAG)方法,与使用纯文本片段的简单语义搜索方法形成对比。GraphRAG流程包括从原始文本中提取知识图谱、构建社区层次结构、为这些社区生成摘要,然后在执行基于RAG的任务时利用这些结构。
要了解更多关于GraphRAG的信息以及它如何增强您的语言模型对私有数据的推理能力,请访问微软研究院博客文章。
解决方案加速器 🚀
要快速启动GraphRAG系统,我们推荐尝试解决方案加速器包。这提供了与Azure资源的用户友好端到端体验。
开始使用GraphRAG 🚀
要开始使用GraphRAG,请查看《入门指南》。 如需深入了解主要子系统,请访问索引器和查询包的文档页面。
GraphRAG vs 基线RAG 🔍
检索增强生成(RAG)是一种利用真实世界信息改进LLM输出的技术。该技术是大多数基于LLM工具的重要组成部分,大多数RAG方法使用向量相似性作为搜索技术,我们称之为_基线RAG_。GraphRAG使用知识图谱在推理复杂信息时显著提升问答性能。RAG技术已显示出帮助LLM推理_私有数据集_的潜力 - 这些数据LLM未经训练且从未见过,例如企业的专有研究、商业文档或通信记录。_基线RAG_旨在帮助解决这个问题,但我们观察到基线RAG在某些情况下表现非常差。例如:
- 基线RAG难以连接信息点。当回答问题需要通过共享属性遍历不同信息片段以提供新的综合见解时,就会出现这种情况。
- 当被要求对大集合数据甚至单个大文档的总结性语义概念进行整体理解时,基线RAG表现不佳。
为解决这个问题,技术社区正在努力开发扩展和增强RAG的方法。微软研究院的新方法GraphRAG基于输入语料库创建知识图谱。该图谱与社区摘要和图机器学习输出一起用于在查询时增强提示。GraphRAG在回答上述两类问题时显示出显著改进,表现出优于之前应用于私有数据集的其他方法的智能或掌握能力。
GraphRAG流程 🤖
GraphRAG建立在我们之前使用图机器学习的研究和工具基础上。GraphRAG流程的基本步骤如下:
索引
- 将输入语料库分割为一系列TextUnit,作为后续流程的可分析单元,并在输出中提供细粒度参考。
- 从TextUnit中提取所有实体、关系和关键主张。
- 使用Leiden技术对图进行层次聚类。要直观查看此过程,请参见上方的图1。每个圆圈代表一个实体(如人物、地点或组织),圆圈大小表示实体度数,颜色表示其所属社区。
- 自底向上生成每个社区及其组成部分的摘要。这有助于对数据集形成整体理解。
查询
在查询时,这些结构被用于为回答问题的LLM上下文窗口提供材料。主要查询模式包括:
- 全局搜索:通过利用社区摘要来推理关于语料库的整体性问题。
- 本地搜索:通过扩展到实体的邻居和相关概念来推理特定实体。
- DRIFT搜索:在社区信息的额外上下文下,通过扩展到实体的邻居和相关概念来推理特定实体。
提示调优
使用_GraphRAG_处理您的数据时,开箱即用可能无法获得最佳结果。 我们强烈建议按照文档中的提示调优指南对您的提示进行微调。
版本控制
请参阅重大变更文档,了解我们对项目版本控制方法的说明。
在次要版本升级之间始终运行graphrag init --root [path] --force
以确保您拥有最新的配置格式。如果您希望避免重新索引先前数据集,请在主要版本升级之间运行提供的迁移笔记本。请注意,这将覆盖您的配置和提示,因此必要时请备份。