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

了解 RAG 第二部分:经典 RAG 的工作原理

Understanding RAG Part I: How Classic RAG Works

在本系列的第一篇文章中,我们介绍了检索增强生成 (RAG) ,解释了扩展传统大型语言模型 (LLM)功能的必要性。我们还简要概述了 RAG 的核心思想:从外部知识库检索上下文相关的信息,以确保 LLM 生成准确且最新的信息,而不会产生幻觉,也不需要不断地重新训练模型。

本系列的第二篇文章揭秘了传统 RAG 系统运行的机制。尽管如今随着人工智能的迅猛发展,许多增强版和更复杂的 RAG 版本几乎每天都在不断涌现,但要了解最新的先进 RAG 方法,第一步是先理解经典的 RAG 工作流程。

经典 RAG 工作流程

典型的 RAG 系统(如下图所示)处理三个关键的数据相关组件:

  1. LLM从训练数据中获取知识,通常是数百万到数十亿的文本文档 。

  2. 向量数据库,也称为知识库,用于存储文本文档。但为什么叫向量数据库呢?在 RAG 和整个自然语言处理 (NLP) 系统中,文本信息被转换为称为向量的数字表示,以捕获文本的语义。向量表示单词、句子或整个文档,保留原始文本的关键属性,以便两个相似的向量与具有相似语义的单词、句子或文本片段相关联。将文本存储为数字向量可提高系统的效率,从而快速找到和检索相关文档。

  3. 用户以自然语言提出的查询或提示。

基本 RAG 系统的总体方案

简而言之,当用户用自然语言向配备 RAG 引擎的 LLM 助手提出问题时,在发送问题和接收答案之间会发生三个阶段:

  1. 检索:称为检索器的组件访问向量数据库来查找和检索与用户查询相关的文档。

  2. 增强:通过整合从检索到的文档中的上下文知识来增强原始用户查询。

  3. 生成:LLM(从 RAG 角度也通常称为生成器)接收添加了相关上下文信息的用户查询,并生成更精确、更真实的文本响应。

检索器Retriever内部

检索器是 RAG 系统中的组件,用于查找相关信息以增强 LLM 稍后生成的最终输出。您可以将其想象成一个增强型搜索引擎,它不仅将用户查询中的关键字与存储的文档进行匹配,而且还能理解查询背后的含义。

检索器会扫描与查询相关的大量领域知识(以矢量格式(文本的数字表示)存储),并提取最相关的文本片段,以围绕它们构建与原始用户查询相关的上下文。识别相关知识的一种常用技术是相似性搜索,其中将用户查询编码为矢量表示,然后将该矢量与存储的矢量数据进行比较。这样,检测与用户查询最相关的知识片段,归结为迭代执行一些数学计算,以识别与该查询的矢量表示最接近(最相似)的矢量。因此,检索器不仅能够高效而且准确地提取准确的、上下文感知的信息。

生成器Generator内部

RAG 中的生成器通常是一种复杂的语言模型,通常是基于转换器transformer架构的 LLM ,它从检索器获取增强的输入并产生准确、上下文感知且通常真实的响应。通过结合相关的外部信息,此结果通常超越独立 LLM 的质量。

在模型内部,生成过程涉及理解和生成文本,由对增强输入进行编码并逐字生成输出文本的组件管理。每个单词都是根据前面的单词进行预测的:这项任务是 LLM 内部的最后一个阶段,称为下一个单词预测问题:预测最有可能的下一个单词,以保持所生成消息的连贯性和相关性。

展望未来

在本系列关于理解 RAG 的下一篇文章中,我们将揭示RAG 的融合方法,其特点是使用专门的方法组合来自多个检索到的文档的信息,从而增强生成响应的上下文。

RAG 中融合方法的一个常见示例是重新排序,它涉及根据用户相关性对多个检索到的文档进行评分和优先排序,然后将最相关的文档传递给生成器。这有助于进一步提高增强上下文的质量以及语言模型最终生成的响应。

相关文章:

  • Java 值传递
  • 轻量级日志管理平台Grafana Loki
  • LeetCode 热题 100 11. 盛最多水的容器
  • (四)趣学设计模式 之 原型模式!
  • Web自动化之Selenium实战案例1:论文pdf自动下载
  • git 常用功能
  • DeepSeek从入门到精通
  • Redis面试宝典【刷题系列】
  • 第33周:文献阅读
  • Maven 构建中的安全性与合规性检查
  • 《深入探索Vben框架:使用经验与心得分享》
  • Web核心、HTTP
  • kubernetes proxy中 发现长时间运行的tcp连接 如何处理invalid包 如果更优雅的解决需要修改哪个参数?
  • AI学习第二天-Python基础
  • w803|联盛德|WM IoT SDK2.X测试|window11|TOML 文件|外设|TFT_LCD|测试任务|(5):TFT_LCD_LVGL示例
  • java实现多图合并加字和画框等
  • 机器人部分专业课
  • 网络安全之攻防笔记--通用安全漏洞SQL注入sqlmapOraclemongodbDB2
  • 蓝桥杯 Java B 组之区间调度、找零问题(理解贪心局限性)
  • 昇腾AI生态组件全解析:与英伟达生态的深度对比
  • 海南做网站公司/搜索引擎优化seo专员招聘
  • 那个网站专门做婚纱相册/semseo
  • 中山市做网站/seo优化多少钱
  • 东营网新闻/关键词的优化方案
  • 网站投放广告怎么做/百度邮箱注册入口
  • 厦门网站建设公司怎么选/天津建站网