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

RAG工作流程总览

引言

        检索增强生成(Retrieval-Augmented Generation)系统通过知识检索大模型生成的融合,解决了传统LLM的幻觉、知识滞后问题。本流程图清晰展示了RAG从知识库构建到问答生成的全流程,分为两大阶段,分别是知识库生成阶段,和问答检索阶段和六大核心模块,如图:


阶段1:知识库构建阶段

        该阶段根据原始文件,经过预处理,向量化等操作,最终将向量化模型,与知识库内容的向量化结果存储在向量知识库中备用;

阶段2:问答检索阶段

        问答检索阶段,首先将问题通过向量化模型,进行向量化转换,再在向量数据库中,通过不同检索等手段,匹配知识库中相关内容,再将匹配结果通过大模型润色后作为答案输出;

1.知识库模块

目标:将原始知识转化为可检索的结构化数据

  1. 文档解析

    • 支持PDF/Word/HTML等多格式文本提取

    • 关键工具:Apache Tika、Unstructured.io

  2. 文档清洗

    • 清除乱码、广告、页眉页脚等噪声

    • 规范化文本编码(UTF-8)和特殊符号

  3. 语义分块

    • 按主题/段落切分(如每块500字符)

    • 保留语义连贯性避免断句

  4. 二次动态分块

    • 根据内容密度自适应调整块大小

    • 示例:法律条文按条款分块,论文按章节分块

  5. 添加元数据

    • 注入来源、日期、章节标题等上下文

    • 增强检索精准度(如过滤过时文档)

输出:清洗后的结构化文本块 → 输入向量化模块


2.向量化模块

目标:将文本转化为机器可理解的数值向量

  1. 向量模型

    • 选用Text2Vec、BGE-M3等Embedding模型

    • 将文本映射为768/1024维高密度向量

  2. 向量化

    • 批量处理分块文本生成向量

    • 关键优化:GPU加速降低延迟

  3. 向量数据库

    • 存储向量+元数据(Chroma/HuggingFace)

    • 支持毫秒级相似度搜索(余弦相似度)


3.检索模块

目标:从海量知识中精准定位相关信息

  1. 输入:用户提问(例:“新冠疫苗有哪些类型?”)

  2. 双路并行检索

    • 向量检索

      • 用相同Embedding模型处理提问

      • 在Chroma中查Top-50相似块

    • 关键词检索(BM25)

      • 匹配“疫苗”“类型”等关键词

      • 解决术语变体问题(如“COVID-19”→新冠病毒)

  3. 混合权重(EnsembleRetriever)

    • 动态融合双路结果(例:向量权重70%+关键词30%)

    • 公式:综合分 = α·向量相似度 + β·关键词匹配度

  4. 交叉编码重排序(CrossEncoder)

    • 用BERT类模型深度理解问题与文本关联

    • 示例:将“mRNA疫苗”块从第5位提升至第1位

  5. 输出:筛选Top-3最相关文本块

创新点

  • 重排序使准确率提升30%+

  • 混合检索解决语义鸿沟问题(如搜索“苹果公司”不返回水果信息)


4.答案生成模块

目标:基于检索结果生成自然语言答案

  1. 拼接提示词

    • 采用增强型模板注入上下文:

  2. LLM生成

    • 选用GPT-4、Claude等生成模型

    • 关键机制:温度系数=0.3保证确定性

  3. 最终答案

    • 输出带引用来源的结构化答案:

    “根据2023年《柳叶刀》报告(来源1),主流疫苗包括:

    1. mRNA疫苗(辉瑞)

    2. 灭活疫苗(科兴)...”

安全设计

  • 置信度阈值过滤低质量结果(<0.7分触发拒答)

  • 避免生成未检索到的信息

http://www.lryc.cn/news/605114.html

相关文章:

  • 解析非法获取计算机信息系统数据罪中的其他技术手段
  • 《超级秘密文件夹》密码遗忘?试用版/正式版找回教程(附界面操作步骤)
  • IATF 16949详解(腾讯混元)
  • Oracle11g数据库迁移达梦8数据库方案
  • 论文阅读|CVPR 2025|Mamba进一步研究|GroupMamba
  • 领域驱动设计(DDD)在分布式系统中的架构实践
  • cpp实现音频重采样8k->16k及16k->8k
  • 不同环境安装配置redis
  • 网络端口号全景解析:从基础服务到特殊应用的完整指南
  • 代码随想录算法训练营第三十六天
  • 【git】GitHub 的专用代理地址
  • day21-Excel文件解析
  • uvm-tlm-port-export-imp
  • 在VS2022中调试ASP.NET项目时修改DLL或ASPX动态页面的原理及实现方法
  • STM32CubeIDE新建项目过程记录备忘(二) GPIO输出demo:LED闪烁
  • 2025 IT专业人才培养趋势与职业发展指南:技术+数据复合型能力的构建路径
  • 【Kubernetes 指南】基础入门——Kubernetes 201(一)
  • OpenEuler 安装 apache + php8 不解析php文件的处理
  • 微信小程序中实现页面跳转的方法
  • Python奇幻之旅:从零开始的编程冒险
  • cpp-httplib 线程安全
  • mybatis中的极易出现错误用法
  • Chroma安装教程
  • uni-app webview的message监听不生效(uni.postmessage is not a function)
  • 明智运用C++异常规范(Exception Specifications)
  • 监测预警系统:让园区更高效、更安全、更智能
  • [Python] -进阶理解10- 用 Python 实现简易爬虫框架
  • Android Animation Transitions:打造流畅的用户体验
  • 性能优化(一):时间分片(Time Slicing):让你的应用在高负载下“永不卡顿”的秘密
  • vue模块化导入