核心概念
GraphRAG 的核心在于用大模型构建知识图谱+知识图谱聚类社区化+RAG
RAG就是输入(问题+知识)到大模型
1-大模型自动从海量数据中构建知识图谱(提取合并实体关系)
2-聚类算法从知识图谱中聚类社区并生成社区摘要
3-输入问题,相似度算法把问题匹配图谱信息(社区摘要/节点描述),问题+图谱信息入大模型,大模型回答结果
输入IO
输入:文本信息
输出:图数据------三元组列表(实体-关系-实体)
GraphRAG原理
构建知识图谱
图数据构建编码步骤整理
1-输入文本,提取每个文本块的实体和关系,并对各个实体关系加描述
2-使用大模型,合并整合实体和关系以及对实体/关系的通用描述
3-输出图数据-三元组列表(实体-关系-实体)
4-生成节点embedding->图embedding,存储起来,后续local检索需要用到
节点聚类编码步骤整理
1-分层莱顿算法对图数据聚类,划分多个社区
2-使用大模型对每个社区搞出社区报告
3-使用大模型对社区报告提炼社区摘要
3-社区摘要生成社区embedding,存储起来,后续global检索需要用到
查询知识图谱
全局搜索
总结全文、文章主题等全局问题
1-使用大模型,输入问题+所有社区摘要
2-输出答案
局部搜索
1-问题embedding
2-对问题embedding 进行 社区embedding+图embedding的相似度匹配,提取出和问题相似的社区摘要图谱信息
3-使用大模型,输入问题+社区摘要图谱信息
4-输出答案
GraphRAG使用实操
流程
本地大模型部署graphrag
第一步:启动大模型的openai服务,方法很多:vIlm启动,fastchat启动,Ilama-factory启动
第二步:启动embedding模型的openai服务,方法:fastchat,目前似乎只支持bge系列,最好使用fastchat==0.2.35
第三步:安装依赖,更改配置,开始
第四步:解决报错
第五步:ok
未完待续