软考(系统架构师)-案例分析之大模型RAG

RAG(Retrieval-augmented Generation)是一种结合了检索和生成的技术方法,将传统的基于检索的问答系统和基于自然语言生成的技术相结合,从而提升了AI系统在回答自然语言问题时的准确性和可靠性。旨在解决大模型的知识时效性不足 、事实"幻觉" 以及 私有或领域数据盲区等问题。

原理

RAG包含三个主要过程:检索、增强和生成。

  • 检索: 根据用户的查询内容,从外部知识库获取相关信息。具体而言,将用户的查询通过嵌入模型转换为向量,以便与向量数据库中存储的相关知识进行比对。通过相似性搜索,找出与查询最匹配的前K个数据。

  • 增强: 将用户的查询内容和检索到的相关知识一起嵌入到一个预设的提示词模板中。

  • 生成: 将经过检索增强的提示词内容输入到大型语言模型中,以生成所需的输出。

RAG 的标准架构可以拆成两条链路:离线索引链路和在线服务链路。离线负责"把知识变成可检索的索引",在线负责"把用户问题变成带证据的答案"。

离线流程:数据准备与索引构建

目标: 把原始数据加工成可高效检索的知识库。通常不追求实时,追求覆盖率、质量和召回率。

典型步骤:

  • 数据源接入
    • 文档、网页、PDF、数据库、API、工单、聊天记录、代码库等。
    • 全量拉取或增量同步。
  • 解析与清洗
    • PDF/HTML/Word 解析,OCR,表格抽取。
    • 去重、去噪、去广告、格式统一、语言识别。
    • 提取元数据:来源、时间、作者、部门、权限、标签。
  • 分块(Chunking)
    • 固定长度、按段落、递归分割、语义分块、父子块、滑动窗口。
    • 目标:每块既保留上下文,又不引入太多噪声。
  • 元数据与权限标注
    • 记录访问控制、有效期、版本、来源可信度。
    • 在线检索时用于过滤,避免越权或过期信息。
  • 向量化 / Embedding
    • 用嵌入模型把文本块转成向量。
    • 离线文档嵌入模型必须与在线查询嵌入模型一致。
  • 索引构建与存储
    • 向量索引:HNSW、IVF、PQ 等。
    • 关键词索引:BM25、倒排索引。
    • 混合索引、元数据索引、图索引。
    • 存入向量库、文档库、缓存等。
  • 离线评估与更新
    • 评估召回率、MRR、NDCG 等。
    • 定期重建、增量更新、版本管理。
    • 用 LLM 做摘要、生成 QA 对、抽取实体关系,属于增强型离线加工。

离线流程特点:批处理、吞吐优先、延迟不敏感、可重复执行。

在线流程:查询、检索与生成

目标:在低延迟、高并发下,基于离线索引生成可靠答案。

典型步骤:

  • 请求接收与鉴权
    • 用户身份、租户、权限、限流。
  • 查询理解与改写
    • 意图识别、多轮指代消解、查询扩展、同义改写。
    • 判断是否需要检索,走哪个知识库,即查询路由。
  • 召回(Retrieval)
    • 向量检索:语义相似。
    • 关键词检索:精确匹配。
    • 混合检索:多路召回后融合。
    • 带元数据过滤:时间、来源、权限、标签。
  • 重排(Rerank)
    • 用 Cross-Encoder 或 LLM 对候选片段精排。
    • 去重、多样性控制、截断 Top-N。
  • 上下文组装
    • 按 Prompt 模板拼接问题、检索片段、引用格式。
    • 压缩、摘要、窗口管理,避免超出上下文长度。
  • 生成
    • LLM 基于上下文生成答案。
    • 可要求带引用、流式输出、结构化输出。
  • 后处理与安全
    • 引用校验、幻觉检测、敏感信息过滤、格式校验。
    • 如果证据不足,返回"不知道"或转人工。
  • 缓存、日志与反馈
    • 语义缓存、结果缓存。
    • 记录用户反馈、点击、评分,回流到离线优化和在线 A/B 测试。

在线流程特点:低延迟、高并发、稳定性优先,直接决定答案准确性和用户体验。

优点

  • 提高准确性和可靠性: 传统的生成模型依赖于大量的训练数据来生成回答,但在面对从未见过的问题或新兴领域的知识时,可能会产生不准确或不合逻辑的回答。而RAG通过引入检索机制,可以检索到最新的相关信息,生成更加准确、上下文相关的答案。
  • 增强知识覆盖面: RAG可以访问私有领域知识库,这使得它在处理涉及专业领域问题时,依然能够生成准确的答案。这对于需要处理大量文档和信息的行业,如法律、金融等,尤为重要。
  • 灵活性和扩展性强: RAG模型可以灵活地应用于不同的领域和任务中,只需更换或扩展其检索库,便能适应新的应用场景。这种灵活性使得RAG能够轻松满足企业内部不同智能部门的需求。
  • 数据更新及时性: RAG模型具备检索库的更新机制,可以实现知识的即时更新,无需重新训练模型。说明RAG模型可以提供与最新信息相关的回答,高度适配要求及时性的应用。
  • 回复具有解释性: 由于RAG模型的答案直接来自检索库,它的回复具有很强的可解释性,减少大模型的幻觉。用户可以核实答案的准确性,从信息来源中获取支持。
  • 高度定制能力: RAG模型可以根据特定领域的知识库和prompt进行定制,使其快速具备该领域的能力。
  • 安全和隐私管理: RAG模型可以通过限制知识库的权限来实现安全控制,确保敏感信息不被泄露,提高了数据安全性。
  • 减少训练成本: RAG模型在数据上具有很强的可拓展性,可以将大量数据直接更新到知识库,以实现模型的知识更新。这一过程的实现不需要重新训练模型,更经济实惠

缺点

  • 检索质量决定效果上限
    • 知识库依赖强:如果知识库缺失、过时、噪声多或内容冲突,RAG 很难生成正确答案。
    • 召回与精度难平衡:召回高会引入大量无关片段,干扰生成;精度高又容易漏掉关键证据。
    • 语义鸿沟:用户查询和文档表述不一致时,向量检索可能找不到真正相关内容。
    • 分块敏感:切得太碎会丢失上下文,切得太大则噪声多、超出上下文窗口。
    • 多跳推理弱:像"某公司 CEO 的母校在哪里"这类需要链式检索的问题,单次 RAG 往往处理不好。
    • 表格、图像、代码、多语言支持弱:这些内容用纯文本嵌入和向量检索效果常不理想
  • 生成阶段仍会幻觉和误用证据
    • 幻觉未消除:模型可能忽略检索内容,或把不相关片段强行拼成答案。
    • 过度依赖检索:检索错,生成就错;检索到恶意或低质内容,也可能被当作事实。
    • 引用不准确:模型给出的引用可能张冠李戴,或引用内容并不支持结论。
    • 冲突信息处理差:面对不同来源、不同时间的矛盾信息,模型难判断权威性和时效性。
    • 长上下文问题:即使塞入很多文档,也可能出现"中间信息丢失",且成本很高。
  • 数据与知识库治理复杂
    • 构建维护成本高:采集、清洗、切分、嵌入、索引、更新都需要持续投入。
    • 更新一致性难:实时更新困难,索引可能滞后,旧版本内容残留。
    • 权限与隐私风险:检索可能把无权访问的文档暴露给用户,需要细粒度权限过滤。
    • 安全攻击:恶意文档可被检索后触发提示注入,诱导模型输出错误或敏感信息。
    • 数据污染:低质、重复、广告、对抗内容会显著降低系统可靠性。
  • 工程与成本问题
    • 延迟增加:检索、重排、生成多阶段串联,响应通常比纯生成慢。
    • 算力与存储成本:大规模向量索引、重排模型、长上下文生成都增加成本。
    • 系统复杂:组件多、调参多、故障点多,监控和排障困难。
  • 评估与落地困难
    • 评估指标脱节:检索指标好,不代表最终答案好;生成指标好,也可能只是表面流畅。
    • 缺乏标注数据:真实场景中很难获得高质量的查询-证据-答案标注。
    • 领域迁移差:通用嵌入模型和 LLM 在医疗、法律、金融等专业领域常表现下降。
    • 冷启动难:新领域没有高质量语料和反馈时,RAG 效果不稳定。

与模型微调对比

  • 任务特定vs通用性: 微调通常是为特定任务进行优化,而RAG是通用的,可以用于多种任务。微调对于特定任务的完成效果好,但在通用性问题上不够灵活。
  • 知识引用vs学习: RAG模型通过引用知识库来生成答案,而微调是通过学习任务特定的数据生成答案。RAG的答案直接来自外部知识,更容易核实。
  • 即时性vs训练: RAG模型可以实现即时的知识更新,无需重新训练,在及时性要求高的应用中占优势。微调通常需要重新训练模型,时间成本较高。
  • 可解释性vs难以解释性: RAG的答案可解释性强,因为它们来自知识库。微调模型的内部学习可能难以解释。
  • 定制vs通用性: RAG可以根据特定领域进行定制,而微调需要为每个任务进行特定微调,需要更多任务特定的数据。

结合上面的比较,可以清楚的看到RAG的优势在于通用性、知识引用、即时性和可解释性,而微调在特定任务上可能更适用,但同时需要更多的任务特定数据和训练。选择使用哪种方法,应根据具体的应用需求和任务来决定。

相关推荐
无心水1 天前
15、云原生架构设计理论与实践 核心考点与学习笔记
笔记·学习·云原生·架构师·软考·系统架构设计师·软考系统架构设计师
无心水3 天前
6、软件工程 核心考点与学习笔记
笔记·学习·软件工程·软考高级·架构师·软考·软考系统架构设计师
无心水3 天前
5、信息安全技术基础知识 核心学习笔
人工智能·学习·软考高级·架构师·软考·高级架构师·软考架构师
无心水3 天前
8、系统架构设计基础知识 核心考点与学习笔记
笔记·学习·系统架构·架构师·软考·软考架构师·软考高级架构师
Misnearch5 天前
第7章 面向对象技术
java·开发语言·软考
希赛网8 天前
2026下半年系统架构设计师考前20问
系统架构·软考高级·系统架构设计师·软考高级架构师·软考高级系统架构设计师
鱼头研学社11 天前
在职备考高项报班避坑:“客服说加微信发报价“到“官网自助下单“,中间差了啥
项目管理·软考·高项·备考
zlp199219 天前
软考(系统架构师)-案例分析之大模型ReAct与Plan-and-Execute
软考高级·软考·系统架构师·软考备考
我是胡杨学长20 天前
软考考务冷知识 Vol.1:北京考区明确,雷同答卷直接成绩无效
项目管理·职场·软考·信息系统项目管理师·系统集成项目管理工程师
_默_20 天前
软考中级—软件评测师 备考笔记:程序设计语言基础
软考·软考中级·评测师