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

RAG工作原理

1.什么是知识库

在大模型领域,知识库是指⽤于存储、组织和检索结构化或⾮结构化知识的系统,通常作为外部数据源与大模型结合,以增强模型对专业领域或实时信息的理解能⼒

2.知识库的核心作用

  • 补充模型固有知识

大模型的训练数据存在截止日期,比如GPT-4训练数据截⾄2023年,问2025年的事件,它会编造事实。知识库可提供新知识或企业内部业务数据,或者行业专业知识,如法律、医疗

  • 减少幻觉

通过检索真实数据生成答案,避免模型编造

  • 动态更新

⽆需重新训练模型,直接更新知识库即可同步最新信息

3.什么是RAG

3.1 RAG定义

RAG是Retrieval-Augmented Generation的缩写,译为检索增强生成,是一种将信息检索(Retrieval)与语言大模型生成(Generation)相结合的一种技术。它通过实时从外部知识库(如文档、数据库)中检索相关信息,将其作为上下文输入给大模型,使模型生成更准确、可验证且符合该领域的回答。

其目的是为了解决语言大模型的“幻觉”、知识更新滞后及私域数据利⽤问题

3.2 RAG工作原理

RAG工作流程可拆解为重要四步:检索—>重排序—>增强—>生成

1.首先需要给知识库添加数据:比如导入文档,或者某个网页链接

2.然后知识库会对导入的文档或者网页内容进行分段

3.然后再利用Embedding嵌入技术把每段数据向量化,保存到向量数据库中

4.当用户提出问题,大模型先对问题向量化,然后根据语义相似度,到向量数据库中去匹配(检索

匹配到数据后,会对结果进行重排序:根据关联度对检索结果评分,关联度高的评分高,然后根据评分进行重排序,分数最高的放在最前面,分数低的放在后面。

然后把重排序结果,作为上下⽂传递给⼤模型(增强

由⼤模型结合用户问题和上下⽂知识,生成最终答案

3.3 指标理解

召回率(Recall):用于评估检索组件性能的关键指标,衡量的是检索组件找到所有真正相关信息的能力,关注找全。召回率 = 检索组件检索到的相关信息数量 / 整个知识库中所有真正相关的信息总数

准确率(Precision):衡量检索结果中正确信息的比例,避免给生成器输入过多干扰信息,关注找对

命中率:在Top-K个检索结果中,是否至少包含一个相关信息

覆盖率: 衡量检索到的信息是否覆盖了问题中不同方面或所需信息点的程度

检索延迟: 检索所需时间,单位毫秒

平均倒数排名: 衡量相关信息在检索结果列表中排序位置的质量

F1 分数: 召回率和准确率两个指标是需要权衡的。为了提高召回率,需要尽可能多地检索到相关信息,检索系统可能需要放宽检索条件,但这可能会检索到更多不正确的信息,导致准确率下降。

为了提高准确率,需要确保返回的信息尽量都相关,检索组件可能需要收紧检索条件,比如只返回最确定的前几条结果,但这又可能导致遗漏一些相关文档,导致召回率下降。F1分数是平衡召回率和准确率的常用综合指标,F1 = 2 * (Precision * Recall) / (Precision + Recall)。

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

相关文章:

  • 什么是MPC(多方安全计算,Multi-Party Computation)
  • LeetCode Hot 100 最大子数组和
  • HarmonyOS NEXT仓颉开发语言实战案例:小而美的旅行App
  • NLP文本增强——随机删除
  • HarmonyOS NEXT仓颉开发语言实战案例:健身App
  • 野生动物检测数据集介绍-5,138张图片 野生动物保护监测 智能狩猎相机系统 生态研究与调查
  • rabbitmq springboot 有哪些配置参数
  • ONLYOFFICE 协作空间 企业版使用秘籍-8.使用虚拟数据房间,处理机密文档更安全
  • 生物实验室安全、化学品安全
  • MATLAB变音系统设计:声音特征变换(男声、女声、童声互转)
  • fvcom 网格文件grd制作
  • 日线周线MACD指标使用图文教程,通达信指标
  • 什么是零知识证明(Zero-Knowledge Proof, ZKP)
  • BF的数据结构题单-省选根号数据结构 - 题单 - 洛谷 计算机科学教育新生态
  • 基于开源AI智能名片链动2+1模式S2B2C商城小程序源码的用户价值对接机制研究
  • IDE/IoT/实践小熊派LiteOS工程配置、编译、烧录、调试(基于 bearpi-iot_std_liteos 源码)
  • 阿里云-接入SLS日志
  • 抗辐照芯片技术在商业卫星领域的应用与突破
  • C++ 第四阶段 STL 容器 - 第一讲:详解 std::vector
  • llama.cpp学习笔记:后端加载
  • M1芯片最终oracle成功版本拉取方法及配置
  • 【Linux庖丁解牛】— 文件系统!
  • JDK21 基于 Spring-AI 集成大模型实现聊天机器人
  • 【智能协同云图库】智能协同云图库第三弹:基于腾讯云 COS 对象存储—开发图片模块
  • Leetcode 3598. Longest Common Prefix Between Adjacent Strings After Removals
  • [database] Closure computation | e-r diagram | SQL
  • 【LeetCode 热题 100】560. 和为 K 的子数组——(解法二)前缀和+哈希表
  • swift-22-面向协议编程、响应式编程
  • SpringSecurity6-oauth2-三方gitee授权-授权码模式
  • 加密货币:USDC和比特币有什么区别?