当前位置: 首页 > news >正文

RAG架构进阶:从基础检索到GraphRAG

RAG架构进阶:从基础检索到GraphRAG

检索增强生成(RAG)已成为大语言模型解决知识时效性和领域适配问题的标准方案。但基础RAG(向量检索+提示拼接)在面对复杂查询时暴露出明显短板:无法捕捉实体关系、缺乏全局推理能力。GraphRAG的出现标志着RAG架构从"语义匹配"向"结构理解"的范式升级。本文将系统梳理RAG的技术演进,并深入解析GraphRAG的实现原理。

一、基础RAG的架构与局限

1.1 标准RAG流水线

from langchain.vectorstores import Chroma from langchain.embeddings import OpenAIEmbeddings class BasicRAG: def __init__(self, documents): self.embeddings = OpenAIEmbeddings() self.vectorstore = Chroma.from_documents( documents, self.embeddings ) self.llm = ChatOpenAI() def query(self, question: str, k: int = 3) -> str: # 1. 向量检索Top-K相关文档 relevant_docs = self.vectorstore.similarity_search(question, k=k) # 2. 拼接上下文 context = "\n\n".join([doc.page_content for doc in relevant_docs]) # 3. LLM生成答案 prompt = f"基于以下上下文回答问题:\n\n{context}\n\n问题:{question}" return self.llm.predict(prompt)

1.2 基础RAG的固有缺陷

| 问题类型 | 具体表现 | 根因 | |----------|----------|------| | 语义鸿沟 | 检索到表面相关但实质无关的文档 | 向量相似度≠语义相关性 | | 关系盲区 | 无法回答"A和B有什么关系" | 丢失实体间关联信息 | | 全局缺失 | 无法回答"总结全文档的主题分布" | 分段检索缺乏全局视图 | | 多跳推理 | 需要跨多个文档串联信息 | 单次检索无法覆盖推理链 |

二、RAG增强策略:从局部到全局

2.1 多路召回与重排序

class MultiWayRAG: def __init__(self): self.keyword_store = BM25Retriever() # 关键词检索 self.vector_store = Chroma() # 向量检索 self.reranker = CrossEncoder('cross-encoder/ms-marco-MiniLM-L-6-v2') def retrieve(self, query, k=10): # 多路召回 keyword_results = self.keyword_store.retrieve(query, k=k*2) vector_results = self.vector_store.similarity_search(query, k=k*2) # 合并去重 candidates = self.deduplicate(keyword_results + vector_results) # 重排序 pairs = [(query, doc.page_content) for doc in candidates] scores = self.reranker.predict(pairs) # 返回Top-K return [candidates[i] for i in np.argsort(scores)[-k:]]

2.2 查询重写与多步检索

class MultiStepRAG: def query(self, question): # 第一步:分解查询 sub_queries = self.decompose(question) # 第二步:逐个子查询检索 all_evidence = [] for sq in sub_queries: docs = self.retrieve(sq) all_evidence.extend(docs) # 第三步:基于证据链推理 answer = self.reason(question, all_evidence) return answer def decompose(self, question): prompt = f"将复杂问题分解为2-3个子问题:{question}\n输出JSON数组" return json.loads(self.llm.predict(prompt))

三、GraphRAG:知识图谱驱动的RAG

GraphRAG由微软研究院提出,核心思想是在检索阶段引入知识图谱的拓扑结构,实现全局推理和关系感知。

3.1 GraphRAG索引构建流程

class GraphRAGIndexer: def __init__(self, llm): self.l
http://www.jsqmd.com/news/1148358/

相关文章:

  • Agent 记忆系统设计:让智能体记得住、想得起、用得上
  • 终极音乐解锁指南:3分钟彻底摆脱加密格式限制
  • ADP5350与STM32F722VE的高效电源管理方案
  • Web3 AI Agent 框架对比:Eliza、Rig 与 LangChain 的 DApp 集成适配性分析
  • Rust 中的自引用结构体设计模式:Pin 投射与 Drop 检查的协同机制
  • GPU Kernel 级别的 Attention 融合实现:FlashAttention 在自定义推理引擎中的移植记录
  • 终极指南:3分钟掌握ncmdump本地无损转换网易云音乐NCM格式
  • 基于ISOM8710与STM32的高压隔离通信系统设计
  • OpenSPG报错合集:我遇到过的6个坑及解决方案(持续更新)
  • OpenPnP 2023/8/11版 vs 2022/8/01版:底部视觉检测稳定性对比与2个新功能解析
  • 中国车牌生成器:AI算法训练与智能交通系统的合规数据解决方案
  • JS逆向-断点调试与反绕过技巧
  • Rust async/await 的状态机实现:从 Future Trait 到零开销异步的秘密
  • PCB设计 布线规则
  • llama.cpp 的 Metal/CPU 混合推理调度:Apple Silicon 上的线程绑定与内存带宽优化
  • 终极指南:如何快速免费解锁网易云音乐NCM加密文件
  • AIOps从监控到自愈:构建具备闭环能力的智能运维Agent系统架构设计
  • 看门狗(IWDG/WWDG)+ CRC硬件校验 完全笔记【STM32F103 标准库实现】
  • AI 赋能传统客服系统:话术推荐与实时情绪分析的流式架构
  • 5分钟掌握Windows更新修复工具:轻松解决更新故障的完整指南
  • 抖音批量下载神器:5分钟学会全自动内容收集
  • 跨地域延迟优化:Paxos Make-Lease 机制在元数据集群中的工程实践
  • Windows系统文件cdprt.dll丢失找不到问题解决
  • LocalAI:本地运行多模态 AI,它全包了
  • etcd 备份与恢复:别等集群挂了才想起来没备份
  • AI 数据血缘解析:自动追踪字段级依赖,不只是表级
  • 【AI RAG知识库】09.【检索】【节点2】
  • 揭秘BiliBiliCCSubtitle:一键获取B站字幕的专业利器
  • 重塑家庭数字中心:深度解析 CasaOS 与个人云的未来形态
  • 16位ADC与MCU的高精度信号采集系统设计