主题
对比表
| 维度 | 传统 RAG (Vector RAG) | GraphRAG |
|---|---|---|
| 知识表示 | 文本片段 → 向量嵌入 | 实体关系 → 图结构 |
| 检索方式 | 向量相似度搜索(余弦相似度) | 图遍历、多跳查询、路径搜索 |
| 检索单元 | 文本块/chunk | 实体、关系、子图 |
| 核心优势 | 1. 实现简单 2. 语义匹配好 3. 适合事实问答 | 1. 多跳推理能力 2. 关系网络分析 3. 复杂问题解答 |
| 主要局限 | 1. 无法处理复杂关系 2. 可能遗漏相关但表述不同的信息 3. 分块可能切断上下文 | 1. 构建成本高 2. 依赖NLP抽取质量 3. 实时性较差 |
| 典型查询 | “什么是量子计算?” “机器学习的定义” | “A公司如何通过子公司B影响市场C?” “新冠疫苗研发的关键人物关系网” |
| 技术栈 | ChromaDB, Pinecone, FAISS + OpenAI | Neo4j, Nebula Graph + NLP抽取模型 + OpenAI |
RAG
文档切片是构建高效RAG系统的关键步骤之一,合理的Chunking策略能显著提升向量检索的精度与覆盖率。
通过引入LangChain的递归字符切分工具,可对任意语料在语义完整的前提下进行柔性划分,既避免了文本截断带来的信息缺失,又为下游大模型的问答生成提供了高质量的片段输入。
LightRAG
- 《仙逆》的知识图谱尽然长这样! 内含LightRAG实操步骤
- 拆解LightRAG运行原理并落地实现,内含5步,增量更新,部署图结构检索,本地部署就能跑通 一、代码实现创建图结构 二、使用lightrag_webui展示图结构 三、增量创建图结构,支持多类型文档结构txt、pdf 四、使用lightrag_webui展示图结构 五、部署图结构供接口API调用
- LightRAG的数据存储文件能改吗?
处理流程、知识图谱文件、键值存储文件KVStore、向量数据库文件VDB
GraphRAG
是一种结合知识图谱与检索增强生成的架构,用于提升大语言模型在复杂问答、推理和解释性任务中的表现.
👉 代码
👉 博客
👉 文档
👉 论文
技术特点与优势
- 结构化检索:相比纯文本检索,图谱能更好地捕捉复杂关系。
- 多跳推理:通过图谱路径实现隐含逻辑推理。
- 缓解幻觉:答案基于结构化知识,减少模型虚构。
- 动态更新:知识图谱可独立于 LLM 更新,保持知识时效性。
基本步骤
1. 构建知识图谱
数据源处理:从文本、数据库或其他结构化/非结构化数据中提取实体、关系、属性。
实体识别与关系抽取:使用 NLP 技术(如命名实体识别、关系抽取模型)构建“实体-关系-实体”三元组。
图谱存储:将三元组存储至图数据库(如 Neo4j、Nebula Graph)或向量化图谱索引中,便于后续检索。
2. 查询解析与意图理解
支持用户输入自然语言查询。
支持使用 LLM 或语义解析器解析查询,识别:
- 关键实体(如人物、地点、概念)
- 关系类型(如“属于”“影响”“导致”)
- 查询意图(如对比、归因、推荐)
3. 图谱检索
子图检索:根据解析出的实体和关系,在图谱中检索相关子图(多跳查询)。
路径发现:查找实体间的间接关联(例如通过 2~3 跳关系连接答案)。
候选证据收集:检索到的子图、三元组、节点属性等作为证据片段。
4. 证据组织与排序
对检索到的子图信息进行去噪、去重。
按相关性、置信度、时效性等排序,选择最相关的证据。
有时会将子图转换为自然语言描述(如“A 是 B 的创始人,B 位于 C”)。
5. 增强生成
将 原始查询 + 检索到的图谱证据 组合成提示(Prompt)输入 LLM。
LLM 基于证据进行生成,确保回答具有:
- 事实准确性(源自图谱结构化知识)
- 可解释性(可注明依据的三元组)
- 推理深度(利用图谱中的多跳关系)
6. 输出与溯源
返回自然语言答案。
可选择性提供 答案溯源(引用来自图谱的具体三元组或子图路径),增强可信度。
典型应用场景
- 复杂问答(如“A 公司如何通过其子公司影响行业 B?”)
- 科研文献推理
- 金融风险分析(实体关系网络)
- 智能客服中的多跳查询