• 大模型笔记:RAG(Retrieval Augmented Generation,检索增强生成)


    1 大模型知识更新的困境

    • 大模型的知识更新是很困难的,主要原因在于:
      • 训练数据集固定,一旦训练完成就很难再通过继续训练来更新其知识
      • 参数量巨大,随时进行fine-tuning需要消耗大量的资源,并且需要相当长的时间
      • LLM的知识是编码在数百亿个参数中的,无法直接查询或编辑其中的知识图谱
    • ——>LLM的知识具有静态、封闭和有限的特点。
    • ——>为了赋予LLM持续学习和获取新知识的能力,RAG应运而生

    2 RAG介绍

    • 将大规模语言模型(LLM)与来自外部知识源的检索相结合,以改进大模型的问答能力
    • 核心手段是利用外挂于LLM的知识数据库(通常使用向量数据库)存储未在训练数据集中出现的新数据、领域数据

    2.1 RAG 三阶段

    • RAG将知识问答分成三个阶段:
      • 索引
        • 事先将文本数据进行处理,通过词嵌入等向量化技术,将文本映射到低维向量空间,并将向量存储到数据库中,构建起可检索的向量索引
      • 知识检索
        • 当输入一个问题时,RAG会对知识库进行检索,找到与问题最相关的一批文档
      • 生成答案
        • RAG会把输入问题及相应的检索结果文档一起提供给LLM,让LLM充分把这些外部知识融入上下文,并生成相应的答案。
        • RAG控制生成长度,避免生成无关内容

    3 RAG特点

    3.1 优点

    • 可以利用大规模外部知识改进LLM的推理能力和事实性
    • 第一阶段的知识索引可以随时新增数据,延迟非常低,可以忽略不计。
      • 因此RAG架构理论上能做到知识的实时更新
    • 可解释性强,RAG可以通过提示工程等技术,使得LLM生成的答案具有更强的可解释性,从而提高了用户对于答案的信任度和满意度

    3.2 缺点

    • 知识检索阶段(第二阶段)依赖相似度检索技术,并不是精确检索,因此有可能出现检索到的文档与问题不太相关
    • 在第三阶段生产答案时,由于LLM基于检索出来的知识进行总结,从而导致无法应对用户询问知识库之外的问题
    • 外部知识库的更新和同步,需要投入大量的人力、物力和时间
    • 需要额外的检索组件,增加了架构的复杂度和维护成本

    4 RAG可以解决的问题

    • 模型幻觉问题
      • LLM文本生成的底层原理是基于概率进行生成的,在没有已知事实作为支撑的情况下,不可避免的会出现一本正经的胡说八道的情况
    • 时效性问题
      • 具有一定时效性的数据就可能无法及时参与 训练,造成模型无法直接回答与时效性相关的问题
    • 数据安全问题
      • 开源的LLM是没有企业内部数据和用户数据的,如果企业想在保证数据安全的前提下使用LLM,一种比较好的解决办法就是把数据放在本地
      • 企业数据的业务计算全部放在本地完成,在线的LLM只是完成一个归纳总结的作用

    参考内容:RAG从入门到精通-RAG简介 – Ace Consider

    大模型LLM的主流应用RAG技术 - 知乎 (zhihu.com)

  • 相关阅读:
    【Nginx笔记02】通过Nginx服务器转发客户端的WebSocket接口到后端服务
    Java基础之jvm3
    Spring Boot开发之Mybatis-Plus、SpringSercurity
    HTML5+CSS3+JS小实例:带密码灯照射的登录界面
    pytorch编程用法记录
    编程(代码、软件)规范(适用嵌入式、单片机、上位机等)
    现货白银的价格如何变动
    UnityAPI学习之碰撞检测与触发检测
    python-argparse
    五年Java程序员进阶架构师的一些心得以及职业生涯规划
  • 原文地址:https://blog.csdn.net/qq_40206371/article/details/136453553