本地大模型编程实战(37)使用知识图谱增强RAG(3)

本文将简单介绍如何使用 AutoSchemaKG 提升 RAG(Retrieval Augmented Generation,检索增强生成) 的问答效果。实现的主要思路是: 解析知识图谱文件:用 NetworkX 解析 GraphML 知识图谱文件; 嵌入:用 FAISS (Facebook AI Similarity Search) 矢量化节点(实体、事件、概念),并将边的 “源节点 + 关系 + 目标节点” 拼接为字符串之后再做嵌入; 语义检索: 检索 “源节点 + 关系 + 目标节点” 的矢量库,找出最相似的文档,再用 大语言模型(LLM)对结果进一步筛选,筛选出节点; 检索相似的 passage(文本段落); 将上述包含分数的结果合并,将分数作为初始权重,通过 NetworkX 的 Pagerank 方法在 知识图谱 中通过节点间的关联关系传播权重,权重更新后,选择权重最高的 passage(文本段落) 为结果。 PageRank 核心原理(知识图谱场景): 给节点赋予初始权重(与查询相关的节点权重高) 每个节点将自身权重按 “出边数量” 平均分配给相邻节点(例如,节点 A 有 2 条出边,就将自身权重的 1/2 分别传给两个邻居) 迭代传播,直到权重分布稳定(误差小于 tol),最终每个节点的 pr[node] 即为 “综合相关度分数”。 通过权重传播,与查询节点间接关联的节点(例如 “苹果手机”→“苹果公司”→“芯片供应商”)也能获得较高分数,挖掘出 “字面不直接匹配但语义相关” 的内容。 传统的 RAG(Retrieval Augmented Generation,检索增强生成) 一般是直接查询返回相似的 passage(文本段落),没有上述通过知识图谱调整权重的过程。 ...

九月 8, 2025 · 2 分钟 · 火云

本地大模型编程实战(36)使用知识图谱增强RAG(2)生成知识图谱

本文将简单介绍如何把文本生成 知识图谱(Knowledge Graph)。具体来说,是使用开源项目 AutoSchemaKG 生成 GraphML 。 GraphML 是 XML(Extensible Markup Language) 格式的文件,可以使用 NetworkX 等框架轻松处理这种格式的文件。下图是一个典型的 GraphML : ...

九月 7, 2025 · 2 分钟 · 火云

本地大模型编程实战(35)使用知识图谱增强RAG(1)知识图谱简介

知识图谱(Knowledge Graph)本质上是一种结构化的语义知识库,它以 “实体 - 关系 - 实体” 的三元组形式,将现实世界中的概念、实体及其关联关系进行建模和存储,核心目标是让机器能够像人一样理解和运用知识。下图就是一个典型的知识图谱: 知识图谱的主要特点是建立了“知识”之间的关联,所以它的强项是 推理 ,HugeGraph 、NetworkX 支持 PageRank(在后面RAG中会用到)、k-短路、LPA(标签传播算法)、Jaccard 相似度 等算法。有了这些支持,它在 搜索引擎 、智能问答RAG(Retrieval Augmented Generation,检索增强生成) 等领域都有广泛的应用,可以明显提升这些领域应用的智能化水平。 ...

九月 6, 2025 · 2 分钟 · 火云