问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

详解RAG技术:大模型时代让AI更懂你的智能知识引擎 -流程、优化、扩展

创作时间:
作者:
@小白创作中心

详解RAG技术:大模型时代让AI更懂你的智能知识引擎 -流程、优化、扩展

引用
CSDN
1.
https://blog.csdn.net/qq_36944952/article/details/145860494

RAG(检索增强生成)技术是人工智能领域的突破性技术,通过结合信息检索与文本生成的优势,有效解决了传统大模型的知识滞后和幻觉问题。本文将详细介绍RAG技术的概念、发展历程、核心流程、优化策略以及实现框架,并探讨其在不同领域的应用场景。

一、RAG技术解析:从概念到发展历程

1.1 什么是RAG?——突破传统AI的知识边界

想象一下,你向朋友询问某个专业问题时,朋友如果仅凭记忆回答,可能会遗漏重要信息甚至出错。同理,传统AI生成模型(如ChatGPT)虽然能流畅对话,但存在两个致命缺陷:

  • 知识滞后:无法获取训练数据之外的新信息
  • 幻觉风险:会编造看似合理实则错误的内容

RAG(检索增强生成)技术应运而生,它如同给AI装上"实时百科全书"。简单地说,RAG 就是在将数据发送给 LLM 之前,从数据中找到相关信息并将其注入到提示中的方法。这样,LLM 就能获得相关信息,并能利用这些信息进行回复,从而降低出现幻觉的概率。

RAG(Retrieval-Augmented Generation)检索增强生成是人工智能领域的突破性技术,通过结合信息检索与文本生成的优势,有效解决了传统大模型的知识滞后和幻觉问题。其核心原理是:当接收到用户提问时,系统首先从结构化/非结构化知识库中检索相关文档片段,再将检索结果与原始问题共同输入大语言模型,生成更准确、更可靠的回答。

RAG 从翻译字面意思就是:问题->检索数据->模型根据问题和相关数据生成增强答案。

1.2 RAG发展里程碑

  • 2020年起源:Meta AI团队在《Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks》论文中首次提出RAG概念,开创性地将BERT检索器与BART生成器结合
  • 2021年演进:出现Hybrid RAG架构,引入稠密向量检索(Dense Retrieval)技术,显著提升语义匹配能力
  • 2022年突破:LangChain等框架的兴起,推动RAG技术进入工程化落地阶段
  • 2023年爆发:随着LlamaIndex、Dify等工具平台的出现,RAG开始广泛应用于企业知识管理、智能客服等场景

1.3 RAG应用场景

  1. 企业知识管理:整合分散在钉钉、企业微信等平台的文档资料,构建统一知识门户。
  2. 客户服务领域:智能客服系统(RAG引擎 + 情感分析模型 + 话术推荐系统),7×24小时多语言服务,上下文感知对话(最大支持20轮对话记忆),工单自动生成(准确率92%)。
  3. 医疗健康领域:临床决策支持(电子病历智能解析(ICD-10自动编码)、多模态诊断支持(CT影像+检验报告联合分析)、药品冲突实时预警)
  4. 教育科研场景:智能教研助手 (论文研读、教学资源生成、科研发现)
  5. 金融合规领域:风险控制应用、券商合规审查。
  6. 制造业创新应用:智能运维系统 设备传感器数据 → 故障模式检索 → 维修方案生成 → 备件库存验证 → 工单自动派发
  7. 法律科技应用:智能法务助手。法律条款多维度检索(支持时效性验证)、相似案例判决预测、合同智能审查(风险点自动标记)。

二、RAG核心流程

RAG 核心流程可以分为两个不同的阶段:索引检索

索引阶段

在建立索引阶段,要对文档进行预处理,以便在检索阶段进行高效搜索。

这一过程因所使用的信息检索方法而异。对于向量搜索,这通常包括清理文档、用附加数据和元数据充实文档、将文档分割成更小的片段(又称分块)、嵌入这些片段,最后将它们存储在嵌入存储区(又称向量数据库)中。

索引阶段通常是离线进行的,意味着它不需要终端用户等待完成。例如,可以通过每周一次在周末重新索引文档的定时任务来实现。负责索引的代码也可以是一个单独的应用程序,只处理索引任务。

不过,在某些情况下,最终用户可能希望上传自己的自定义文档,以便 LLM 能够访问这些文档。在这种情况下,应在线执行索引,并将其作为主应用程序的一部分。

下面是索引阶段的简化图:

文档通过文件分割方法分割为多个Segments,之后调用嵌入模型 比如
BAAI/bge-m3
模型就可以将文档Segments转化为向量的形式,然后再将其保存到向量数据库中,完成索引地建立。

检索阶段

检索阶段通常是在线进行的,用户提交问题后,索引文档就会给出答案。

这一过程因所使用的信息检索方法而异。对于向量检索,这通常包括嵌入用户的查询(问题),并在嵌入存储中执行相似性搜索。然后将相关片段(原始文档的片段)注入到提示中,并发送到 LLM,生成最终结果。

以下是检索阶段的简化示意图:

用户问题在向量数据库进行检索,之后将用户问题与检索内容送入大模型中生成最终回复。

三、RAG优化策略

RAG的优化策略可以从整个RAG的过程去分析。

RAG的整个流程可以被分为三个部分:

  • 数据预处理阶段
    1.文档解析(PDF/Word/Markdown等格式处理)
    2.文本分块(滑动窗口法、语义分割法)
    3.向量化处理(使用text-embedding-ada-002等模型)

  • 检索增强阶段
    1.混合检索策略(关键词检索+向量检索)
    2.多路召回与结果重排序
    3.上下文窗口优化

  • 生成优化阶段
    1.Prompt工程(指令模板设计)
    2.结果后处理(引用标注、格式标准化)
    3.反馈学习机制(点击日志分析)

3.1 数据预处理阶段的优化策略

  • 原始文档清洗

通过人工或者直接将文档给到大模型的方式对原始数据文档进行总结提炼,形成更加概括的文档,最好是一问一答形式的文档,方便后期检索。

  • 文本分块优化

文本分块处理也有多种选择,比如通过正则匹配的形式分块、根据段落分块、根据字符数进行滑动窗口分块等等,对于不同的文档可能适用于不同的分块算法。因此其实可以针对不同类型的文档其实可以使用不同的分块算法,不同的文档可以对应不同的向量数据库,创建多个向量数据库提升检索效率。

  • 文本向量化处理

分块的文档最终需要使用嵌入模型将文本文档转换为数字向量,可以尝试不同的嵌入模型。然后,它根据查询向量和文档向量之间的余弦相似度或其他相似度/距离度量来查找和排列文档,从而捕捉到更深层次的语义。

3.2 检索增强阶段的优化策略

  • 检索方式

检索可以通过向量检索、全文检索的方式,可以采用向量检索+全文检索的混合检索方式实现,最大限度寻找到与问题相关的内容,全文检索可以使用ES数据库提升检索能力。

  • 问题转化

有时候用户输入的问题或者遇到的问题并不能直接匹配数据库的信息,就需要对问题进行处理。常用方法有:1.通过大模型将问题进行扩展,比如问题是:请告诉我关于AI的内容。问题就可以被转换为:AI是什么?AI有哪些相关内容?等问题,然后使用这些问题进行搜索。2.可以将原始问题进行压缩,以避免无关信息的干扰。

  • 多路召回与结果重排序

多路召回是指针对同一用户问题,同时使用多种不同的检索策略(如关键词检索、向量检索、图检索等)从知识库中获取候选文档,再通过融合排序得到最优结果的策略。多路召回可以进行调试优化,结果重排序也可以使用不同的重排算法或者调用大模型优化。

  • 上下文窗口优化

解决大模型输入长度限制与知识检索需求之间矛盾的核心技术。

3.3 生成优化阶段的优化策略

  • Prompt工程

优化提示词,引导大模型给出合理输出


prompt_template = "*"
你是⼀个问答机器⼈。
你的任务是根据下述给定的已知信息回答⽤户问题。
已知信息:
{context} # {context}就是检索出来的⽂档
⽤户问:
{question} # {question} 就是⽤户的问题
如果已知信息不包含⽤户问题的答案,或者已知信息不⾜以回答⽤户的问题,请直接国复“我⽆法回答您的问
题”。
请不要输出已知信息中不包含的信息或答案。
请⽤中⽂回答⽤户问题。
  
  • 结果后处理

对于大模型输出结果进行敏感词过滤,对于大模型响应信息进行处理等。

  • 反馈学习机制

对于每次的回复收集反馈信息,用于优化整个流程架构。

四、RAG实现框架

  • Haystack by deepset-ai
  • RAGFlow by infiniflow
  • Dify
  • langchain && langchain4j
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号