开源检索增强生成(UltraRAG)框架
UltraRAG 是由清华大学 THUNLP 实验室、东北大学 NEUIR 实验室、OpenBMB 与 AI9Stars 联合开发的开源检索增强生成(RAG)框架,专注于低代码构建复杂推理系统,尤其适合科研实验与行业落地场景。
UltraRAG 的技术架构以 “低代码、高扩展、双场景适配(科研+行业)” 为核心设计理念,通过分层解耦、标准化协议和模块化组件,实现 RAG(检索增强生成)全流程的灵活编排与高效落地。其架构可拆解为 “1个核心协议 + 4层技术栈 + 3大关键模块”。
一、核心设计:Model Context Protocol(MCP)架构
MCP 是 UltraRAG 架构的“骨架”,本质是一套 组件间通信与协作的标准化协议,核心目标是解决 RAG 系统中“检索-生成-评测”模块的解耦与灵活组合问题:
标准化接口:所有模块(如检索器、生成器、知识库管理器)均通过 MCP 定义的 Context
结构体交互,包含“输入查询、检索结果、生成中间态、评测指标”等统一字段,避免模块间格式不兼容;
动态组件注册:支持通过配置文件(YAML/JSON)或 API 动态注册自定义组件(如替换检索器为 Elasticsearch、生成器为 LLaMA 3),无需修改核心代码;
流程编排能力:基于 MCP 支持串行(如“检索→生成→评测”)、循环(如“多轮检索修正”)、条件分支(如“简单查询直接生成,复杂查询触发多跳检索”)等复杂流程,且可通过 YAML 声明式配置,无需编写大量代码。
例如,实现“多跳推理(IRCoT)”流程时,仅需在 MCP 配置中定义“检索→生成子问题→再检索→整合答案”的步骤,框架会自动通过 MCP 传递上下文,开发效率较传统硬编码提升 10+ 倍。
二、四层技术栈:从基础设施到应用层的全栈设计
UltraRAG 采用分层架构,每层职责清晰且可独立扩展,具体分为 基础设施层、核心功能层、流程编排层、应用层:
1.基础设施层:底层支撑能力
存储模块:
知识库存储:支持 PDF/Markdown/Word 等多格式文档解析,自动提取文本、表格、图片(通过 OCR/ViT 处理),并存储为向量(默认 FAISS,可替换为 Milvus/Weaviate)或结构化数据(MySQL/PostgreSQL);
缓存与日志:内置 Redis 缓存高频检索结果(降低重复计算),以及结构化日志系统(记录“检索召回率、生成耗时”等指标,用于问题溯源);
计算资源管理:
支持 CPU/GPU 自动调度(轻量任务用 CPU,向量检索/模型生成用 GPU),并通过 Docker/K8s 实现容器化部署,单节点可支持 1000+ 并发请求,内存占用较传统 RAG 框架降低 60%;
提供模型量化(INT4/INT8)与分布式推理支持,适配中小显存设备(如单张 RTX 3090 可运行 7B 参数模型的 RAG 全流程)。
2.核心功能层:RAG 全流程核心能力
这一层是 UltraRAG 的“业务心脏”,包含 检索、生成、评测 三大核心模块,每个模块均支持多实现方案的灵活切换:
检索模块:
基础检索:支持稀疏检索(BM25)、稠密检索(Sentence-BERT/MiniCPM-Embedding)、混合检索(ColBERT),自动根据知识库类型(文本/多模态)选择最优策略;
进阶能力:动态检索粒度调整(句子级→段落级,根据查询复杂度自动切换)、自适应剪枝(过滤低相关度结果,减少 40% 无效计算)、多跳检索(通过“子问题生成→分步检索”解决复杂推理问题);
生成模块:
模型适配:支持主流开源模型(LLaMA 2/3、MiniCPM、Qwen)与闭源 API(GPT-4o、 Claude 3),内置“检索结果注入”模板(如 “基于以下信息回答:{retrieved_context}\n问题:{query}”
),确保生成内容紧扣知识库;
优化能力:知识冲突检测(对比生成结果与知识库一致性,避免“幻觉”)、格式标准化(支持 JSON/Markdown/表格等结构化输出,适配报告生成场景);
评测模块(UltraRAG-Eval):
多维度指标:涵盖“信息相关性(Retrieval@k)、生成准确性(Factuality)、逻辑连贯性(Coherence)、合规性(Compliance)”四大维度,支持自定义评测规则(如法律场景的“条款引用准确性”);
自动化评测:无需人工标注,通过“基准数据集(如 HotpotQA/NQ)+ 模型自评估”实现批量评测,科研场景可快速对比不同 RAG 方案的性能。
3.流程编排层:基于 MCP 的低代码调度
可视化编排:通过 YAML 配置文件定义 RAG 流程,例如:
pipeline:name: 医疗问答流程steps:
name: 检索医疗指南module: retrieval 调用检索模块params:knowledge_base: 糖尿病指南top_k: 5
name: 生成回答module: generation 调用生成模块params:model: minicpm-2boutput_format: markdown
name: 合规性评测module: evaluation 调用评测模块params:metrics: [factuality, compliance]
动态调度逻辑:支持“条件分支”(如“评测分数 > 0.8 直接输出,否则重新检索”)、“循环重试”(如“检索召回率 < 0.6 时调整关键词重试”),满足复杂业务场景需求。
4.应用层:面向用户的交互入口
零代码 WebUI:基于 Streamlit 开发,支持“知识库上传、流程配置、结果可视化”全操作,非技术人员可在 10 分钟内搭建智能客服、文档问答系统;
API 接口:提供 RESTful API 与 Python SDK,支持与企业现有系统(如 CRM、客服平台)集成,例如通过 API 调用 UltraRAG 生成产品手册问答结果;
科研工具集:内置 17 个主流 RAG 基准数据集(如 HotpotQA、TriviaQA)和 8 种前沿基线模型(如 RAG-LLaMA、CoRAG),支持一键复现实验并生成论文级评测报告。
三、关键技术模块
UltraRAG 的架构亮点集中在以下三个特色模块,支撑其在多模态、自动化、性能优化上的优势:
1.VisRAG 多模态处理模块
针对“含图表、公式、图片的多模态文档”(如医疗CT报告、科研论文),传统 RAG 会因文本解析丢失信息,而 VisRAG 模块通过 “纯视觉编码+跨模态检索” 解决该问题:
文档解析:使用 LayoutLM 提取文档布局(区分文本/图片/表格区域),图片区域通过 ViT 编码为视觉向量,表格通过 Table Transformer 转换为结构化数据;
跨模态检索:支持“文本查询→匹配图片/表格”(如查询“糖尿病患者血糖变化图”,直接检索文档中的图表),或“图片查询→匹配相关文本”(如上传 CT 图,检索对应的诊断指南);
多模态生成:生成结果时自动关联图表引用(如“如图1所示,糖尿病患者空腹血糖应控制在3.9-7.0 mmol/L”),并支持输出图文混排格式(Markdown/HTML)。
2.KBAlign 知识适配模块
传统 RAG 需人工调整模型参数以适配特定知识库(如医疗、法律),而 KBAlign 实现 “零人工干预的知识库自动适配”:
知识蒸馏:自动提取知识库中的核心概念(如医疗指南中的“胰岛素使用剂量”),生成“知识-向量”映射表,优化检索召回率;
模型微调:基于知识库内容生成少量微调数据(无需人工标注),对生成模型进行轻量级微调(LoRA 技术),使生成结果更贴合知识库表述(如法律场景使用“法条编号+条款内容”格式);
过时知识过滤:通过“时间戳对比+语义相似度”识别知识库中的过时信息(如旧版医疗指南),自动降低其检索权重,避免生成错误内容。
3.动态资源调度模块
针对 RAG 系统在高并发、大规模知识库场景下的性能瓶颈,该模块通过 “智能资源分配+计算优化” 提升效率:
检索优化:对高频查询结果缓存(Redis),对大规模知识库进行分片存储(如按“疾病类型”拆分医疗知识库),检索延迟降低至 150ms 以内;
生成优化:支持“模型动态选择”(简单查询用小模型如 MiniCPM-1.5B,复杂查询用大模型如 LLaMA 3-70B),并通过“增量生成”(先输出核心结论,再补充细节)提升响应速度;
资源监控:实时监控 CPU/GPU 使用率、内存占用,自动触发负载均衡(如将请求分配给空闲节点),避免单点故障。
四、典型工作流程:以“医疗问答”为例
通过一个实际场景串联 UltraRAG 的架构运作:
1.用户输入:用户在 WebUI 输入“糖尿病患者的胰岛素使用注意事项”,并指定知识库为“2024 版 ADA 糖尿病指南”;
2.流程触发:应用层将请求传递给流程编排层,根据预配置的 YAML 流程(“检索→生成→评测”),通过 MCP 调用核心功能层;
3.检索阶段:检索模块采用“稠密检索(MiniCPM-Embedding)+ 动态粒度调整”,从知识库中召回 5 条相关段落(含 1 张胰岛素剂量表格);
4.生成阶段:生成模块注入检索结果,使用微调后的 MiniCPM-2B 模型生成回答,并通过 VisRAG 模块关联表格引用;
5.评测阶段:评测模块检测回答的“事实准确性”(对比知识库)与“合规性”(是否符合医疗指南表述),得分 0.92(满分 1.0);
6.结果输出:应用层将“回答+检索依据+评测分数”返回给用户,同时日志模块记录本次流程的“检索耗时 80ms、生成耗时 320ms”。
五、核心功能与典型应用
1.端到端开发支持
零代码 WebUI:通过 Streamlit 界面实现模型选型、知识库管理、评测结果可视化。非技术人员可在 10 分钟内完成智能客服系统搭建,支持上传 PDF/Markdown 格式的企业文档并自动生成问答对。
多阶段评估体系:内置 UltraRAG-Eval 评测框架,融合信息相关性、逻辑连贯性、合规性等多维度指标,在法律文书生成场景中确保回答的严谨性。
2.科研与行业双场景适配
科研实验加速:内置 17 个主流 benchmark 任务(如 HotpotQA、NQ)和 8 种前沿基线模型,支持快速复现或对比实验。研究者可在 2 小时内完成从数据构建到论文级结果输出的全流程。
行业落地优化:针对智能客服、医疗问答等场景提供预训练工具链。例如,在电商领域,通过动态记忆管理(Adaptive-Note)技术,客服系统的历史对话信息利用率提升 35%,用户问题解决率从 68% 提高至 82%。
3.性能与生态优势
轻量级部署:采用 Docker 容器化方案,单节点可支持 1000+ 并发请求,内存占用较传统 RAG 框架降低 60%。金融机构实测显示,每日处理 10 万次合规查询的成本仅为传统方案的 1/3。
开源生态活跃:GitHub 仓库星标超 8000,提供从入门到实战的完整教程(含多模态文档处理、自定义工具开发等)。社区贡献了医疗、法律等领域的专用知识库模板,下载量已超 50 万次。