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.mzph.cn/bicheng/27565.shtml

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

相关文章

【docker】如何修改已有容器的端口映射

本文首发于 ❄️慕雪的寒舍 docker修改已有容器的端口映射 参考 https://www.jb51.net/article/257510.htm 1.需求 之前我在我的绿联nas上部署了一个centos容器,当时脑子抽了,没想起来要多映射几个端口。只映射了容器的22端口(ssh&#xff0…

Bigtable: A Distributed Storage System for Structured Data

2003年USENIX,出自谷歌,开启分布式大数据时代的三篇论文之一,底层依赖 GFS 存储,上层供 MapReduce 查询使用 Abstract 是一种分布式结构化数据存储管理系统,存储量级是PB级别。存储的数据类型和延时要求差异都很大。…

【数学】【机器学习】什么是隐马尔可夫模型 (HMM)?

文章目录 隐马尔可夫模型 (HMM)背景公式示例题目详细讲解Python代码求解实际生活中的例子 什么是隐变量背景隐含变量的意义举例说明HMM的三个基本问题示例 隐马尔可夫模型 (HMM) 背景 隐马尔可夫模型(Hidden Markov Model, HMM)是一种统计模型&#xf…

有监督学习——梯度下降

1. 梯度下降 梯度下降(Gradient Descent)是计算机计算能力有限的条件下启用的逐步逼近、迭代求解方法,在理论上不保证下降求得最优解。 e.g. 假设有三维曲面表达函数空间,长(x)、宽(y)轴为子变量,高(z)是因变量&…

大模型企业落地:汽车行业知识大模型应用

前言 在当今这个信息爆炸的时代,知识管理成为了企业提升核心竞争力的关键。特别是在汽车行业这样一个技术密集、信息量庞大的领域,如何高效管理和利用知识资源,成为了每个企业必须面对的挑战。 汽车行业的知识管理痛点 汽车行业作为现代工…

10.错误处理

标题 一、概述二、panic!与不可恢复错误2.1 出错时2.2 示例2.3 panic!的 backtrace 三、Result 与可恢复的错误3.1 引入3.2 错误示例3.3 传播错误1)概念2)传播错误示例3)传播错误的简写:?运算符 一、概述 Rust将错误分…

springboot网上书店管理系统-计算机毕业设计源码03780

摘 要 网上书店管理系统采用B/S结构、java开发语言、以及Mysql数据库等技术。系统主要分为管理员和用户两部分,管理员管理主要功能包括:首页、站点管理(轮播图)用户管理(管理员、注册用户)内容管理&#x…

NXP RT1060学习总结 - fsl_flexcan 基础CAN函数说明 -2

概要 CAN测试源码: https://download.csdn.net/download/qq_35671135/89425377 根据fsl_flexcan.h文件从文件末尾往前面梳理,总共30个基础CAN函数; 该文章只梳理常规CAN,增强型CAN后面再单独梳理。 使用的是RT1064开发板进行测试…

深入理解ReentrantLock

深入理解ReentrantLock 在Java并发编程中,锁(Lock)是控制多个线程对共享资源访问的重要工具。虽然Synchronized关键字是实现锁的常用方式,但它在功能上比较有限。ReentrantLock是java.util.concurrent.locks包中提供的一个更加灵…

FreeRTOS移植:STM32L476 nucleo-L476RG 开发板《02》

系列文章 FreeRTOS移植:STM32L476 nucleo-L476RG 开发板《01》 说明 上一篇 FreeRTOS移植:STM32L476 nucleo-L476RG 开发板《01》 主要讲了一下如何快速搭建一个 STM32 裸机工程,其实 STM32CubeMX 可以生成 FreeRTOS 的工程,这就…

python连接mysql数据库、FastAPI、mysql-connector-python

方法工具一、FastAPI 建议使用fast api中的pymysql pip3 install fastapi pip3 install pydantic pip3 install "uvicorn[standard]" pip3 中的3是 Python 3 版本的包管理器命令,用于安装和管理 Python 3 版本的第三方库。在某些系统中,同时…

Linux host映射 设置主机名并通过主机名找到指定系统

一、windows ping linux 1.windows进入到 C:\Windows\System32\drivers\etc\hosts 内,使用edit with notepad打开hosts文件,在下面添加需要寻找的ip以及其主机名。该ip以及主机名即linux的一致。需要查看linux主机名的在终端使用 hostname进行查看&#…

spring boot3登录开发-邮箱登录/注册接口实现

⛰️个人主页: 蒾酒 🔥系列专栏:《spring boot实战》 🌊山高路远,行路漫漫,终有归途 目录 写在前面 上文衔接 内容简介 功能分析 所需依赖 邮箱验证登录/注册实现 1.创建交互对象 2.登录注册业务逻辑实…

JDK17 你的下一个白月光

JDK版本升级的非常快,现在已经到JDK20了。JDK版本虽多,但应用最广泛的还得是JDK8,正所谓“他发任他发,我用Java8”。 但实际情况却不是这样,越来越多的java工程师拥抱 JDK17,于是了解了一下 JDK17新语法&a…

python中的类和对象的基本概念记录

1.python中的类和对象的概念 1.1 类也是对象 在python中的一切皆对象 ,所以python中的类 也是对象。 这与c是不同的,c的类在实例化为对象之前是没有意义的,编译器也不会为其分配内存。 python中的类 即使不实例化为对象,也可以单独使用。类…

Star-CCM+自动网格执行方法与设置技巧

在Star中进行一个仿真项目时,有时会创建多个自动网格。网格创建结束后需要执行。在Star中,网格执行可以分为三种。分别是:单独执行操作;多个执行操作;全部执行操作。接下来将三种执行操作的方法与步骤进行介绍。 其次,如果不习惯用自定义控制网格,有时在一个项目中就会…

大模型+人工智能:重塑地方志管理的新力量

前言 在科技日新月异的今天,人工智能(AI)正以前所未有的速度渗透到各个领域,改变着我们的工作和生活方式。特别是在地方志管理这一领域,大模型和人工智能的结合正在开启一场深刻的变革。今天,就让我们一起…

【复旦邱锡鹏教授《神经网络与深度学习公开课》笔记】梯度的反向传播算法

矩阵微积分(Matrix Calculus) 在开始之前,需要先了解矩阵微积分的一些计算规则。 首先,对于矩阵微积分的表示,通常由两种符号约定: 分母布局 标量关于向量的导数为列向量 向量关于标量的导数为行向量 N维…

LDR6500:手机电脑拓展坞转接器方案的卓越之选

随着科技的飞速发展,手机和电脑已成为我们日常生活中不可或缺的工具。然而,它们的接口有限,经常难以满足我们多样化的需求。这时,一款高效、稳定的拓展坞转接器就显得尤为重要。LDR6500,作为乐得瑞科技精心研发的USB P…

【计算机视觉(10)】

基于Python的OpenCV基础入门——图像滤波去噪 图像滤波去噪均值滤波中值滤波高斯滤波双边滤波方框滤波图像滤波去噪代码实现及其效果图 图像滤波去噪 图像滤波去噪是一种图像处理方法,它通过应用滤波器来减少或消除图像中的噪声。噪声是图像中不希望的、无用的、干…