Modular RAG
在完成 Naive RAG 的基础构建与 Advanced RAG 的链路优化后,我们正式进入Modular RAG (模块化 RAG) 章节。
不同于以往线性的、固定的 Pipeline,Modular RAG 引入智能调度的概念。系统根据用户意图,通过 Qwen3-0.6B 微型路由器动态编排处理路径。在 DeepSeek 论文集的实测中,该系统将原本 5 分钟的复杂检索压缩至 30-50 秒,同时维持了极高的学术严谨性与对抗幻觉的能力。
一、架构概览
不同于传统 RAG 的“线性流水线”,Modular RAG 更像一个拥有“大脑”的调度中心。它根据用户意图,动态选择最快、最准的处理路径。
- 数据层:
- 内置示例数据集:平台在内置路径中预置了 “DeepSeek” 论文数据集。用户无需繁琐的数据准备,即可通过调用内置库实现 “一键上手”,快速验证 RAG 流程的闭环性。
- 私有数据接入:系统具备高度的灵活性,支持用户通过数据通道自行上传 PDF、Markdown 等私有文档。通过简单的路径配置,即可实现从公共知识到行业私有知识的无缝切换。
- 深度清洗加固:针对非结构化 PDF 执行“断路器”清洗逻辑,强制隔离元数据并过滤非法字符,彻底规避 Embedding 阶段由于数据脏点导致的类 型崩溃风险。
- 推理层:
- 核心引擎:采用 vLLM 作为推理后端,利用其 PagedAttention 技术提升并发处理能力。
- 启动策略:执行显存割让策略,为后续的向量化和精排预留充足的计算余裕,确保单卡环境下多模型的稳定运行。
- 多模型协同架构:在单卡环境下通过显存分片同时调度 Qwen3-8B(生成/反思)、Qwen3-Embedding-8B(向量化) 与 Qwen3-0.6B(路由) 三大模型。
- 数据存储与检索层:
- 异构双路索引:集成 Milvus Lite(语义向量库)与 PropertyGraph(本地逻辑图谱),实现“事实细节”与“逻辑链条”的双重覆盖。
- 秒级加载复用:实现了向量库与图谱索引的本地持久化机制(Save/Load)。首次构建需等待 5 分钟,二次加载即可实现秒级响应。
- 逻辑编排层:
- 工作流管理:基于 LlamaIndex 构建。
- Modular RAG 范式:
- 意图路由 (Router):利用微型模型精准分流,实现寒暄、统计、逻辑演进与技术细节的路径差异化。
- 语义对齐增强:在检索前引入轻量化 HyDE。通过预生成 3 个技术关键词补充用户提问的背景,解决学术论文中“术语缩写”与“语义漂移”导致的召回失败。
- 异构双路混合检索:
- 实现:并行驱动 Milvus 向量库 与 PropertyGraph 逻辑图谱。
- 逻辑:向量路负责捕捉实验数据等“事实点”,图谱路负责还原跨章节的“逻辑线”(如 A 技术对 B 架构的改进路径),实现点线结合的 360° 知识全覆盖。
- 知识精炼:将多个 1000 Token 的原始片段合并,通过 1 次 LLM 请求提取核心事实清单,彻底消除长文本噪声。
二、优化步骤
为了实现超越 Advanced RAG 的表现,我们在代码中实施了以下三大模块化进化策略:
1:智能路由与元数据感知
系统不再盲目检索,而是先通过“路由”模型判定用户到底想要什么,从而实现响应效率与准确性的双重提升。
- 代码实现逻辑:
- 0.6B 毫秒级路由:调用 Qwen3-0.6B 配合 Few-Shot 指令,将输入分流至 GREETING(对话)、SUMMARY(总结)、GRAPH(逻辑)或 TECH(技术)。
- 元数据直接映射:针对统计类问题,系统绕过向量检索,直接扫描文档元数据提取 file_name,确保统计结果 100% 准确,消除了大模型对数值的幻觉。