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

Vector-Graph-RAG-用一套向量库搞定多跳问答无需图数据库

用一套向量库搞定多跳问答Vector Graph RAG 的工程哲学方向AI / RAG工程 / 向量数据库做过 RAG 的工程师大概都被多跳问答折磨过。问一个简单问题——“二甲双胍适合哪类糖尿病患者”——Naive RAG 能直接命中召回率不错。但换成需要两步推理的问题——“治疗2型糖尿病的一线用药有哪些副作用”——你先要找到二甲双胍是2型糖尿病的一线用药再从另一段文本找到二甲双胍的副作用包括……两步之间需要推理桥梁纯向量相似度检索完全没有这个能力。业界的标准答案是 GraphRAG引入 Neo4j 这类图数据库把实体和关系存进去用 Cypher 语言遍历图结构。听起来优雅实际部署就是一个字重。2026年4月23日Zilliz 开源了一套叫Vector Graph RAG的方案。它的核心思路是图的逻辑结构可以用向量数据库来承载你不需要一个真正的图数据库。多跳问答到底难在哪先把问题说清楚。问题治疗2型糖尿病的一线用药有哪些副作用 文档A二甲双胍是治疗2型糖尿病的一线用药已被WHO认可。 文档B二甲双胍的常见副作用包括恶心、腹泻长期使用可能导致维生素B12缺乏。要回答这个问题需要从问题中识别2型糖尿病的一线用药找到文档A得知答案是二甲双胍以二甲双胍为新的检索词找到文档B才能最终组装出完整答案Naive RAG 在第1步做了向量检索但问题向量和文档B的相似度很低问题里没出现二甲双胍所以根本召回不到文档B。这就是多跳问答的本质困难中间推理节点不在原始问题里。传统解法的代价方案A迭代式 RAGIRCoT让大模型一边推理一边检索像人读书一样发现知识空缺就去搜索。问题LLM 调用次数不可控3次到10次不等延迟抖动严重P99 毫无保障API 费用爆炸。方案BGraphRAG微软方案把所有文档构建成知识图谱Neo4j 存储Cypher 查询。问题需要同时维护向量库 图库两套系统数据同步是噩梦文档更新一次两套系统都要重建Leiden 算法构建社区图谱索引阶段就贵得离谱团队要学 Cypher运维要处理两套扩缩容最终结论GraphRAG 更适合回答这份数据大概讲了什么这类宏观问题而不是精确的多跳推理。Vector Graph RAG 的设计Zilliz 的思路可以用一句话概括图的本质是实体关系的拓扑网络这套结构完全可以用关系型 ID 引用 向量化来实现不需要专门的图数据库。数据结构三张 Milvus Collection┌─────────────────┐ ┌──────────────────────┐ ┌──────────────┐ │ Entities │ │ Relations │ │ Passages │ │─────────────────│ │──────────────────────│ │──────────────│ │ id: E001 │◄─────│ subject_id: E001 │ │ id: P001 │ │ name: 二甲双胍 │ │ object_id: E002 │─────►│ text: ...二甲│ │ vector: [...] │ │ predicate: 一线用药 │ │ 双胍...副作用│ │ relation_ids: │ │ passage_id: P001 │ │ ... │ │ [R001, R002] │ │ vector: [...] │ │ vector: [...] │ └─────────────────┘ └──────────────────────┘ └──────────────┘三张表通过 ID 互相引用形成了一个逻辑图谱。实体有向量可以语义搜索关系有向量三元组文本也可以被检索原始段落单独存储用于最终生成答案。检索流程四步走用户提问 │ ▼ ① 种子检索 从问题中提取关键实体在 Entities 表做向量搜索 → 找到2型糖尿病相关实体 │ ▼ ② 子图扩展核心步骤 用实体 ID 查询关联的 relation_ids → 从 Relations 表找到二甲双胍是2型糖尿病的一线用药 → 顺着关系边发现中间实体二甲双胍 │ ▼ ③ LLM 重排一次性 把扩展出的候选关系全部丢给 LLM一次筛选去噪 → 不是让 LLM 反复迭代检索而是一次性判断哪些关系有用 │ ▼ ④ 答案生成 用筛选出的高质量 Passages 喂给 LLM → 生成最终回答子图扩展那一步用的是多次 Milvus 主键查询ID Lookup耗时 20-30ms。跟 LLM 调用的秒级延迟比起来基本可以忽略。性能数据在三个多跳问答学术基准上Recall5 对比如下基准Naive RAGVector Graph RAG提升HotpotQA2跳90.8%96.9%6.1%2WikiMultiHopQA跨文档66.4%94.1%27.7%MuSiQue2-4跳最难41.6%73.0%31.4%平均66.3%87.8%21.5%平均 Recall5 达到 87.8%比 Naive RAG 提升约 19.6 个百分点。在成本方面整个检索过程固定2次 LLM 调用1次重排 1次生成相比 IRCoT 的 3-10 次API 成本降低约 60%速度快 2-3 倍。与 HippoRAG 2 的对比业界目前的 SOTA 是 HippoRAG 2它依赖 ColBERTv2 做密集检索需要额外的向量化基础设施。Vector Graph RAG 在不依赖这套复杂设施的情况下HotpotQA96.9% vs 96.3%基本打平2WikiMultiHopQA94.1% vs 90.4%领先 3.7%MuSiQue73.0% vs 74.7%略逊 1.7%总体来说是“以最简单的基础设施达到接近 SOTA 的效果”。这套方案适合谁几个判断条件适合用的场景知识库规模中等几万到几十万文档文档之间存在跨段落逻辑关联团队已经在用 Milvus不想再维护一套 Neo4j需要可控的延迟和成本2次 LLM 调用不会突然爆炸医疗、法律、技术文档等知识密集型问答场景不太适合的场景只需要大意是什么这类宏观问题Microsoft GraphRAG 更合适超大规模知识图谱亿级实体Milvus 多次查询的开销会放大已有成熟 Neo4j 基础设施的团队迁移成本不值得部署方式极简Vector Graph RAG 支持本地文件模式最简单的启动方式# 克隆项目gitclone https://github.com/zilliztech/VectorGraphRAGcdVectorGraphRAG# 安装依赖pipinstall-rrequirements.txt# 本地 Milvus Lite 模式不需要外部服务from pymilvusimportMilvusClient clientMilvusClient(./local_graph_rag.db)# 本地文件模式# 初始化三张表ragVectorGraphRAG(clientclient,llm_api_keyyour_key)# 添加文档rag.add_documents([你的知识库文档列表...])# 提问resultrag.query(治疗2型糖尿病的一线用药有哪些副作用)print(result)整个部署下来没有 Neo4j、没有额外的图遍历服务就是一个 Python 文件 一个 SQLite 风格的 Milvus Lite 文件。个人思考这套方案让我想到一个老问题我们真的需要图数据库还是只需要图的思维Neo4j 的核心能力是图遍历算法BFS/DFS/最短路径这些在真正的知识图谱应用比如金融反欺诈的关系链追踪里确实不可替代。但在 RAG 场景里我们需要的其实只是找到相关实体然后沿着关系跳跃一层或两层——这个操作用 ID 查询完全可以模拟压根不需要图遍历算法。Zilliz 这次做的事情本质是把系统复杂度换成了数据建模的复杂度不需要维护图数据库但需要在数据入库时仔细设计三元组的抽取和关系建模。这个权衡对于大多数工程团队来说是值得的——代码复杂度可以封装系统复杂度很难封装。对于正在做 RAG 工程的同学这套方案值得认真评估。参考资料Zilliz Blog - “Vector Graph RAG Without a Graph Database”发布于2026-04-23

相关文章:

Vector-Graph-RAG-用一套向量库搞定多跳问答无需图数据库

用一套向量库搞定多跳问答:Vector Graph RAG 的工程哲学方向:AI / RAG工程 / 向量数据库做过 RAG 的工程师,大概都被"多跳问答"折磨过。 问一个简单问题——“二甲双胍适合哪类糖尿病患者?”——Naive RAG 能直接命中&a…...

STM32F103C8T6驱动MLX90614红外测温模块,OLED实时显示温度(附完整工程源码)

STM32F103C8T6与MLX90614红外测温模块的深度开发实践 红外测温技术在工业自动化、医疗设备、智能家居等领域有着广泛应用。今天我们将通过STM32F103C8T6这款经典的Cortex-M3内核微控制器,搭配MLX90614非接触式红外温度传感器,构建一个高精度的温度测量系…...

从雨刮器到座椅加热:聊聊汽车里那些‘不起眼’的LIN总线应用(附信号解码实战)

从雨刮器到座椅加热:汽车LIN总线的微观世界与信号解码实战 雨刮器在挡风玻璃上划出规律的弧线,座椅加热功能在寒冬里传递温暖——这些看似简单的汽车功能背后,都隐藏着一个低调的通信英雄:LIN总线。不同于CAN总线的"明星光环…...

ATT7022校表寄存器配置保姆级指南:以STM32 HAL库SPI驱动为例,搞定0xB9FE等关键值

ATT7022校表寄存器深度配置实战:从0xB9FE到精准计量的STM32 HAL库实现 在智能电表、能源监控等嵌入式系统中,ATT7022系列计量芯片凭借其高精度和丰富功能成为工程师的热门选择。但许多开发者在使用STM32通过SPI配置校表寄存器时,常常遇到数据…...

别再为ModelSim仿真头疼了!手把手教你用Quartus 13.0搭建VHDL七段译码器(附完整库文件配置)

Quartus 13.0与ModelSim仿真全攻略:从零搭建VHDL七段译码器 刚接触FPGA开发的朋友们,是否曾在Quartus和ModelSim的配合使用中遇到过各种"玄学"问题?明明代码编译通过了,仿真时却一片空白;或者波形文件加载了…...

W5500网络芯片的MAC地址怎么来?三种实战方案对比:STM32唯一ID生成 vs 向IEEE申请 vs 固定地址

W5500网络芯片的MAC地址生成策略:从原型开发到量产的合规实践 在物联网设备开发中,MAC地址如同设备的网络身份证,其唯一性和合规性直接影响设备联网的稳定性和商业部署的合法性。以W5500为代表的嵌入式网络芯片,其MAC地址设置往往…...

AIGC率太高怎么降?亲测实用降AI工具+免费降重方法指南

前阵子我把熬了三周写好的实验报告提交给导师,本以为能顺利通过,没想到等来的是打回通知和满页标红的AIGC检测报告。那时候我才明白,现在写论文光过查重不够,降AI已经成了毕业生必须闯的第二关。 为了把论文的AI率降到合格线&…...

C++26反射元编程错误码速查表,覆盖ISO/IEC 14882:2026 WD第17.8.4节全部约束违例场景

更多请点击: https://intelliparadigm.com 第一章:C26反射元编程错误码速查表概览 C26 正式引入标准化的反射(Reflection TS)支持,其核心机制依赖编译期元信息提取与类型内省。当反射操作失败时,编译器将…...

LFM2.5-VL-1.6B实操手册:如何用PIL调整输入图尺寸适配512x512分块要求

LFM2.5-VL-1.6B实操手册:如何用PIL调整输入图尺寸适配512x512分块要求 1. 模型概述 LFM2.5-VL-1.6B是由Liquid AI开发的轻量级多模态大模型,专为端侧和边缘设备设计。该模型结合了1.2B参数的语言模型和约400M参数的视觉模型,能够在低显存环…...

如何快速配置Wand-Enhancer:WeMod客户端终极增强工具使用指南

如何快速配置Wand-Enhancer:WeMod客户端终极增强工具使用指南 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer Wand-Enhancer是一款专为WeMod…...

【VSCode 2026日志分析插件开发权威指南】:20年实战专家亲授高并发日志解析架构设计与性能优化秘技

更多请点击: https://intelliparadigm.com 第一章:VSCode 2026日志分析插件开发全景概览 VSCode 2026 版本引入了全新日志语义解析引擎(Log Semantic Engine, LSE),为第三方插件提供了结构化日志流注入、上下文感知高…...

Vecow EVS-3000边缘AI计算系统解析与应用指南

1. Vecow EVS-3000系列边缘AI计算系统概览在工业自动化和边缘计算领域,Vecow最新推出的EVS-3000系列AI计算系统引起了广泛关注。这套系统采用了第14代Intel Core处理器(Raptor Lake-S Refresh架构)和MXM规格独立显卡的组合,为边缘…...

NCM文件解密终极指南:快速免费转换网易云音乐加密格式

NCM文件解密终极指南:快速免费转换网易云音乐加密格式 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾遇到过从网易云音乐下载的歌曲只能在特定软件中播放的困扰?🤔 那些以.ncm为扩展名的…...

【2024最稀缺技术资产】:NVIDIA内部流出的CUDA 13 AI算子优化架构设计图(含Hopper H100专属GEMM融合路径)

第一章:CUDA 13 AI算子优化架构设计图的全局认知与技术定位CUDA 13 引入了面向AI工作负载深度定制的算子优化架构,其核心目标是弥合高层框架(如PyTorch、TensorFlow)与底层GPU硬件之间的语义鸿沟。该架构并非孤立的编译器升级&…...

保姆级教程:vCenter服务启动卡住?用这招删除.svcStats文件并重启服务(实测有效)

VMware vCenter服务启动卡住?深度解析.svcStats文件清理方案 遇到vCenter服务启动卡住的情况,很多管理员的第一反应是反复重启或检查硬件配置。但今天我要分享的这个解决方案,可能会颠覆你的认知——删除几个看似无关紧要的JSON文件就能解决问…...

别再傻傻分不清!一文搞懂合成孔径、MIMO、相控阵雷达到底怎么选(附应用场景对比)

雷达技术选型实战指南:SAR、MIMO与相控阵的核心差异与应用决策 当无人机需要在夜间穿透云层完成地形测绘,自动驾驶汽车要在暴雨中识别百米外的障碍物,或是港口需要全天候监控非法入侵目标时,雷达系统的选型直接决定了项目成败。在…...

合约即契约,契约即性能:C++26 contracts如何让关键路径提速37%?——基于Linux内核模块级实测报告

第一章:合约即契约,契约即性能:C26 contracts如何让关键路径提速37%?——基于Linux内核模块级实测报告C26 引入的 [[assert: ...]] 和 [[expects: ...]] 合约机制,并非仅用于调试断言——其核心价值在于编译期可推导的…...

手写笔迹还原算法(InkCanvas)在跨平台应用中的实践与挑战

跨平台手写笔迹还原算法的工程实践与性能优化 在数字化教学与创意设计领域,手写输入体验的质量往往直接影响用户留存率。根据行业调研数据,采用优质笔迹还原技术的应用用户满意度平均提升37%,而渲染延迟超过150毫秒就会导致23%的用户放弃使用…...

线上Java应用出Bug了?试试阿里开源的JVM-Sandbox,不重启就能动态插桩排查

线上Java应用故障排查利器:JVM-Sandbox实战指南 凌晨三点,线上告警突然响起——核心交易接口响应时间从200ms飙升到5秒以上。作为值班工程师,你面临一个经典困境:如何在不重启服务的情况下,快速定位这个影响数百万用户…...

KAIST 提出 MTL:让编程智能体跨领域“搬运“记忆,而非困守单一任务孤岛

📌 一句话总结: 这篇论文首次系统研究了编程智能体的 Memory Transfer Learning(MTL),通过构建跨领域统一记忆池,在 6 个编程基准上平均提升 3.7%(最高 8.3%),并揭示了&…...

别再死记硬背7条用例了!用‘开内闭外’法则5分钟搞定边界值测试(附实战案例)

边界值测试的极简法则:用"开内闭外"5分钟生成高覆盖率用例 第一次接触边界值测试时,我被那套"7条测试数据"的理论绕得头晕——为什么要测这么多?每个点到底代表什么?直到在一次项目复盘会上,看到资…...

Cursor Pro免费激活终极指南:三步快速绕过试用限制的完整解决方案

Cursor Pro免费激活终极指南:三步快速绕过试用限制的完整解决方案 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reach…...

告别CarPlay和Carlife:手把手教你用Android车机USB-A口打造有线投屏神器

告别CarPlay和Carlife:手把手教你用Android车机USB-A口打造有线投屏神器 每次开车时,你是否也厌倦了手机导航时的小屏幕?或是想在停车休息时用大屏追剧却受限于车机系统的封闭性?其实只需一根USB线,配合开源工具链&…...

AMD Ryzen处理器深度调试:SMUDebugTool专业使用实战指南

AMD Ryzen处理器深度调试:SMUDebugTool专业使用实战指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://…...

FF14钓鱼神器:渔人的直感 - 智能计时器让你的钓鱼效率提升300%

FF14钓鱼神器:渔人的直感 - 智能计时器让你的钓鱼效率提升300% 【免费下载链接】Fishers-Intuition 渔人的直感,最终幻想14钓鱼计时器 项目地址: https://gitcode.com/gh_mirrors/fi/Fishers-Intuition 还在为错过幻海流的最佳时机而懊恼吗&#…...

避坑指南:Ensembl版本混乱?手把手教你用biomaRt精准抓取指定版本基因组注释构建OrgDb

精准锁定Ensembl历史版本:biomaRt实战指南与OrgDb高效构建策略 当你在深夜加班分析绵羊RNA-seq数据时,突然发现差异表达基因的染色体位置与参考基因组对不上——这种版本不匹配的噩梦,每个生物信息学分析者都可能经历过。Ensembl数据库每季度…...

FPGA项目实战:用Vivado的Block RAM IP核缓存256x256图像(附Verilog测试代码)

FPGA图像缓存实战:基于Vivado Block RAM的高效帧缓冲设计 在数字图像处理系统中,数据吞吐量和实时性往往是设计成败的关键。当我们需要处理256x256分辨率的RGB565图像时,如何在FPGA内部构建高效的帧缓冲机制?本文将深入探讨如何利…...

紧急预警:C++26反射特性将于2025 Q3进入ISO Final Draft阶段!现在不掌握`reflexpr`部署范式,明年重构成本将飙升300%

第一章:C26反射特性演进与生产就绪性评估C26 正在将反射(Reflection)从实验性提案推向核心语言能力,其核心机制围绕 std::reflexpr 和编译时元对象协议(METAPROTOCOL)展开,目标是实现零开销、类…...

DM8数据库DATETIME与TIMESTAMP选型指南:从一次诡异的日期查询错误说起

DM8数据库DATETIME与TIMESTAMP选型指南:从一次诡异的日期查询错误说起 去年在重构一个财务系统时,我们遇到了一个令人费解的现象:每月1号生成的报表总会多出几条上月末的数据。经过排查,发现问题出在DM8数据库的DATETIME(6) WITH …...

安卓位置模拟进阶:除了KEEP打卡,Fakelocation还能这样玩(附专业版功能解析)

安卓位置模拟技术深度应用指南:从开发调试到创新场景实践 在移动应用开发与测试领域,位置模拟技术早已超越了简单的"打卡签到"工具定位,成为开发者工具箱中不可或缺的利器。Fakelocation作为一款专业的位置模拟工具,其价…...