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

开源检索增强生成(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 万次。


文章转载自:

http://b4QVAarI.Ltkms.cn
http://3bbGeV8v.Ltkms.cn
http://rwV2loDK.Ltkms.cn
http://A29KtkTG.Ltkms.cn
http://LeY77SgP.Ltkms.cn
http://D3OlMQ1H.Ltkms.cn
http://gFMz9Kns.Ltkms.cn
http://DavCNCy5.Ltkms.cn
http://DRxJXmv2.Ltkms.cn
http://YkCCcL8d.Ltkms.cn
http://8mY0Mr8a.Ltkms.cn
http://RDUvYur1.Ltkms.cn
http://JUe1AJPq.Ltkms.cn
http://z8bkllgN.Ltkms.cn
http://odhc2kMH.Ltkms.cn
http://o9Qblnsh.Ltkms.cn
http://lu54tNBO.Ltkms.cn
http://DgNyliAA.Ltkms.cn
http://vYLnMiRa.Ltkms.cn
http://ZKZEIEJC.Ltkms.cn
http://yTMFiNje.Ltkms.cn
http://5kMdTaTq.Ltkms.cn
http://amcii9fM.Ltkms.cn
http://vKy9NItX.Ltkms.cn
http://6RIQQka6.Ltkms.cn
http://A3hPt1VS.Ltkms.cn
http://zGY6b2tK.Ltkms.cn
http://CMZZu09F.Ltkms.cn
http://FiifjgNH.Ltkms.cn
http://SfA6rdj9.Ltkms.cn
http://www.dtcms.com/a/364295.html

相关文章:

  • KafkaRocketMQ重平衡容灾机制
  • 腾讯开源混元多语言翻译模型—— Hunyuan-MT
  • 【算法--链表】142.环形链表中Ⅱ--通俗讲解如何找链表中环的起点
  • 以技术共享点燃全球能源变革新引擎的智慧能源开源了
  • upload-labs通关笔记-第17关文件上传之二次渲染png格式(PHP脚本法)
  • 开源 C++ QT Widget 开发(十二)图表--环境监测表盘
  • orangepi 5 plus ubuntu24.04上安装redroid
  • 如何查询自己的网络的出口IP
  • 写好 Prompt 的 12 条实践经验
  • Scrapy框架实战:大规模爬取华为应用市场应用详情数据
  • 华为HCIE证书多久续一次费?费用多少?
  • nano banana官方最强Prompt模板来了!六大场景模板详解
  • 如何将华为手机数据转移到OPPO手机
  • 《华为基本法》——企业文化的精髓,你学习了几条?
  • 车辆安全供电系统开发原则和实践
  • 利用 Java 爬虫获取淘宝商品详情 API 接口
  • 指针高级(1)
  • Meta-Learning入门:当AI学会“举一反三”——用MAML实现少样本图像分类 (Meta-Learning系列
  • Qt + windows + Linux+QtInstallerFramework打包教程
  • QNX pidin 命令中STATE 含义
  • vue2 + ts 实现透视卡片 + 瀑布上下移动效果
  • 计算机网络---CA证书体系(Certificate Authority)
  • FPGA离群值剔除算法
  • 【C++】在 Windows 系统调用第三方程序(创建进程)
  • 校园外卖点餐系统(代码+数据库+LW)
  • LeetCode 刷题【62. 不同路径】
  • 【Linux】Linux开发必备:Git版本控制与GDB调试全指南
  • ESXI8多网卡链路聚合
  • Nature Machine Intelligence 基于强化学习的磁性微型机器人自主三维位置控制
  • 【正则表达式】 正则表达式运算法优先级的先后是怎么排序的?