RAG工作流在高效信息检索中的应用

图片

介绍

RAG(Retrieval Augmented Generation)是一种突破知识限制、整合外部数据并增强上下文理解的方法。

由于其高效地整合外部数据而无需持续微调,RAG的受欢迎程度正在飙升。

图片

让我们来探索RAG如何克服LLM的挑战!

LLM知识限制大型语言模型面临与知识的准确度和时效性相关的几个挑战。其中两个常见问题是幻觉和知识断裂。

幻觉:当模型自信地产生一个错误响应时发生。例如,如果一个模型声称“googly retriever”是一种真实的狗品种,那么这就是一种幻觉,可能导致误导性的信息。

图片

知识断裂:当LLM返回的信息根据模型的训练数据已经过时时发生。每个基础模型都有一个知识断裂,意味着其知识仅限于训练时可用的数据。例如,如果您询问模型关于最近一次NBA总冠军的获胜者,它可能会提供过时的信息。

图片

RAG提供了一种缓解这些挑战的技术。它使您能够为模型提供访问外部数据源的权限,通过引入事实上下文来减轻幻觉,并通过整合最新信息来克服知识断裂。

Retrieval-Augmented Generation(RAG)Retrieval-Augmented Generation(RAG)是一个多功能框架,使大型语言模型(LLMs)能够访问其训练数据之外的外部数据。RAG不局限于单个实现,它适应不同的任务和数据格式的多种方法。

它使LLM能够在运行时利用外部数据源,包括知识库、文档、数据库和互联网。这对于使用外部数据增强语言模型非常有价值,填补了其训练数据中未涵盖的知识差距。

图片

为了高效地从文档中检索信息,一种常见的做法是使用捕获语义意义的嵌入向量将它们索引到向量数据库中。此外,对大型文档进行分块以提高相关性并减少噪声,最终通过提供特定的上下文信息来增强模型的响应。

RAG框架

RAG框架中有两个关键模型:

RAG-序列模型:该模型利用相同的检索到的文档生成完整的序列。它将检索到的文档视为单个潜在变量,通过对前K个进行近似处理,通过边缘化得到序列到序列的概率。在此方法中,使用检索器检索前K个文档,生成器计算每个文档的输出序列概率。然后通过边缘化将这些概率组合起来。RAG-标记模型:在此模型中,可以为每个目标标记绘制不同的潜在文档,使生成器在产生答案时可以选择多个文档的内容。类似于RAG-序列模型,它检索前K个文档,然后为每个文档生成下一个输出标记的分布。对于每个输出标记重复此过程,并进行相应的边缘化处理。

图片

此外,RAG还可以用于序列分类任务,将目标类别视为单个序列目标。在这种情况下,RAG-Sequence和RAG-Token模型变得等效。

RAG的组件检索器:检索器(DPR)根据查询和文档索引检索相关文档。检索组件基于密集段落检索(DPR),并采用具有从BERT派生的密集和查询表示的双编码器架构。使用最大内积搜索(MIPS)算法选择具有最高先验概率的前K个文档。生成器:基于BART-large的生成器组件负责生成序列。它通过简单地连接输入和检索到的内容来结合它们。

图片

训练阶段在训练过程中,检索器和生成器共同进行训练,而无需直接监督要检索哪个文档。训练目标最小化每个目标的负边际对数似然。

解码阶段在解码阶段,RAG-Sequence和RAG-Token模型需要不同的方法。RAG-Token使用标准的自回归序列生成和束搜索解码器。相比之下,RAG-Sequence对每个文档运行束搜索,并使用生成器概率对假设进行评分。对于较长的输出序列,采用高效的解码方法以避免过多的前向传递。

RAG的实施和编排实施RAG工作流程可能很复杂,涉及从接受用户提示到查询数据库、分块文档以及协调整个流程的多个步骤。

图片

像LangChain这样的框架通过提供与LLMs和RAG等增强技术一起工作的模块化组件来简化此过程。LangChain包括用于各种输入格式的文档加载器、用于拆分文档的文档转换器以及其他组件,以简化基于LLM的应用程序的开发。

使用LangChain的RAG工作流程LangChain是一个全面的自然语言处理平台,在使RAG模型易于访问和高效方面发挥着关键作用。以下是LangChain如何适应RAG工作流程的方式。

图片

文档加载器和转换器LangChain提供了各种文档加载器,可以从各种来源获取文档,包括私有S3存储桶和公共网站。这些文档可以是各种类型,如HTML、PDF或代码。文档转换器组件负责准备这些文档以进行检索,包括将大型文档拆分为更小、更易于管理的块。

图片

文本嵌入模型LangChain中的文本嵌入模型旨在与各种文本嵌入提供商和方法进行接口,包括OpenAI、Cohere和Hugging Face。这些模型创建了文本的向量表示形式,捕捉其语义含义。这种向量化使得相似文本的高效检索成为可能。

向量存储随着嵌入技术的出现,需要高效的数据库来存储和搜索这些嵌入。LangChain提供了与超过50个不同的向量存储的集成,使您可以轻松选择最适合您需求的一个。

图片

检索器LangChain中的检索器提供了检索与查询相关的文档的接口。这些检索器可以使用向量存储作为其骨干,但还支持其他类型的检索器。LangChain的检索器提供了自定义检索算法的灵活性,范围从简单的语义搜索到提高性能的高级方法。

缓存嵌入LangChain的“缓存嵌入”功能允许将嵌入存储或临时缓存,减少了重新计算的需求,并提高了整体性能。

与Hugging Face的集成Hugging Face是一个领先的基于变压器模型的平台,提供预训练模型,包括RAG中使用的模型。LangChain与Hugging Face的模型无缝集成,使您能够针对特定任务进行微调和调整。

图片

结论

检索增强生成(RAG)模型代表了大型语言模型领域的突破性进展。

图片

LangChain和类似的框架使得RAG和其他增强技术更容易实施,能够快速开发利用LLMs的潜力的应用程序。

这些技术之间的协同作用为知识密集型语言任务领域的创新开辟了令人兴奋的可能性。

如何学习大模型

现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。

作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。

我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

三、AI大模型各大学习书籍

在这里插入图片描述

四、AI大模型各大场景实战案例

在这里插入图片描述

五、结束语

学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。

再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。

因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/350047.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第38课-密室逃脱-3D互动剧情

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第38课-密室逃脱 使用dtns.network德塔世界(开源的智体世界引擎),策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界引擎&…

Flutter - Material3适配

demo 地址: https://github.com/iotjin/jh_flutter_demo 代码不定时更新,请前往github查看最新代码 Flutter - Material3适配 对比图具体实现一些组件的变化 代码实现Material2的ThemeDataMaterial3的ThemeData Material3适配官方文档 flutter SDK升级到3.16.0之后 …

C# WinForm —— 35 StatusStrip 介绍

1. 简介 状态栏 StatusStrip,默认在软件的最下方,用于显示系统时间、版本、进度条、账号、角色信息、操作位置信息等 可以在状态栏中添加的控件类型有:StatusLabel、ProgressBar、DropDownButton、SplitButton 2. 属性 属性解释(Name)控…

utm投影

一 概述 UTM (Universal Transverse Mercator)坐标系是由美国军方在1947提出的。虽然我们仍然将其看作与“高斯-克吕格”相似的坐标系统,但实际上UTM采用了网格的分带(或分块)。除在美国本土采用Clarke 1866椭球体以外&#xff0c…

树莓派等Linux开发板上使用 SSD1306 OLED 屏幕,bullseye系统 ubuntu,debian

Raspberry Pi OS Bullseye 最近发布了,随之而来的是许多改进,但其中大部分都在引擎盖下。没有那么多视觉差异,最明显的可能是新的默认桌面背景,现在是大坝或湖泊上的日落。https://www.the-diy-life.com/add-an-oled-stats-display-to-raspberry-pi-os-bullseye/ 通过这次操…

【GD32】 TIMER通用定时器学习+PWM输出占空比控制LED

扩展:对PWM波形的输出进行捕获 目录 一、简介二、具体功能描述1、时钟源的选择:2、预分频器:3、计数模式:向上计数模式:向下计数模式:中央对齐模式: 4、捕获/比较通道 输入捕获模式 输出比…

前端问题整理

Vue vue mvvm(Model-View-ViewModel)架构模式原理 Model 是数据层,即 vue 实例中的数据View 是视图层, 即 domViewModel,即连接Model和Vue的中间层,Vue实例就是ViewModelViewModel 负责将 Model 的变化反映…

TCGAbiolinks包学习

TCGAbiolinks 写在前面学习目的GDCquery GDCdownload GDC prepare中间遇到的报错下载蛋白质数据 写在前面 由于别人提醒我TCGA的数据可以利用TCGAbiolinks下载并处理,所以我决定阅读该包手册,主要是该包应该是有更新的,我看手册进行更新了&…

【CS.PL】Lua 编程之道: 简介与环境设置 - 进度8%

1 初级阶段 —— 简介与环境设置 文章目录 1 初级阶段 —— 简介与环境设置1.1 什么是 Lua?特点?1.2 Lua 的应用领域1.3 安装 Lua 解释器1.3.1 安装1.3.2 Lua解释器的结构 1.4 Lua执行方式1.4.0 程序段1.4.1 使用 Lua REPL(Read-Eval-Print Loop&#x…

LAMP部署及应用

LAMP架构 LAMP架构是指一种常用的网站开发架构,它由以下几个组件组成: Linux操作系统:作为服务器的操作系统,LAMP架构通常使用Linux作为操作系统,因为Linux通常被认为是稳定和安全的。 Apache HTTP服务器&#xff1a…

iOS ReactiveCocoa MVVM

学习了在MVVM中如何使用RactiveCocoa,简单的写上一个demo。重点在于如何在MVVM各层之间使用RAC的信号来更方便的在各个层之间进行响应式数据交互。 demo需求:一个登录界面(登录界面只有账号和密码都有输入,登录按钮才可以点击操作)&#xff0…

AI模型部署:Triton+TensorRT部署Bert文本向量化服务实践

前言 本篇介绍以Triton作为推理服务器,TensorRT作为推理后端,部署句嵌入向量模型m3e-base的工程方案和实现,句嵌入模型本质上是Bert结构,本案例可以推广到更一般的深度学习模型部署场景。 内容摘要 推理服务器和推理后端介绍Ten…

【Numpy】numpy.r_用法

numpy.r_[字符串, 数组, 数组] numpy.r_的这三个整数默认值是0,1,-1 numpy.c_就是numpy.r_在三个整数是-1,2,0时的特例,因为常用,所以单独拎出来了。第一个参数-1指沿最后一个轴(维度)连接 有一个shape(2, 3, 4)的数组 np.random.randint(low0, high1…

文章MSM_metagenomics(一):介绍

介绍 欢迎大家关注全网生信学习者系列: WX公zhong号:生信学习者Xiao hong书:生信学习者知hu:生信学习者CDSN:生信学习者2 用于复现Huang et al. [huang2024establishment]研究分析的计算工作流程,所有复…

LDR6020显示器应用:革新连接体验,引领未来显示技术

一、引言 随着科技的飞速发展,显示器作为信息展示的重要载体,其性能和应用场景不断得到拓展。特别是在办公、娱乐以及物联网等领域,用户对显示器的需求越来越多样化。在这一背景下,LDR6020显示器的出现,以其卓越的性能…

STM32硬件接口I2C应用(基于HMC5883L)

目录 概述 1 STM32Cube控制配置I2C 1.1 I2C参数配置 1.2 使用STM32Cube产生工程 2 HAL库函数介绍 2.1 初始化函数 2.2 写数据函数 2.3 读数据函数 3 认识HMC5883L 3.1 HMC5883L功能介绍 3.2 HMC5883L的寄存器 4 HMC5883L驱动程序实现 4.1 驱动函数实现 4.2 完整驱…

QT调用vs2019生成的c++动态库

QT调用vs2019生成的c动态库 dll库的创建方法: VS2019创建c动态链接库dll与调用方法-CSDN博客 加减法示范: 头文件 // 下列 ifdef 块是创建使从 DLL 导出更简单的 // 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 DLL3_EXPORTS // 符号编…

解决方案︱视频孪生智慧高速解决方案

系统概述 在交通强国战略的指导下,我国政府高度重视以数字化为核心的智慧高速公路建设与发展。2023年9月,交通运输部印发了《交通运输部关于推进公路数字化转型加快智慧公路建设发展的意见》,强调到2035年,全面实现公路数字化转型…

【C++】和【预训练模型】实现【机器学习】【图像分类】的终极指南

目录 💗1. 准备工作和环境配置💕 💖安装OpenCV💕 💖安装Dlib💕 下载并编译TensorFlow C API💕 💗2. 下载和配置预训练模型💕 💖2.1 下载预训练的ResNet…

一文入门vim

先来波快问快答。 第一个问题,vim是什么? vim就是一文本编辑器。 第二个问题,我们为什么要使用vim? 好像在终端中可选择使用的文本编辑器也不多(其他有,但是相对而言vim用的比较广泛) 第三…