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.xdnf.cn/news/1452409.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

简单的心电图信号分割方法

代码很简单,很容易看懂。 import pandas as pdimport matplotlib.pyplot as plt #headers [Name, Age, Marks]df pd.read_csv(samples-folder/samples2.csv) dfdf.drop(0)dfdf.drop(1)# print(df) if(len(df.columns) 3): df.columns [sample interval, sig…

自定义注解获取属性对应枚举的翻译值

平时在开发的时候难免会遇到枚举来翻译类,于是写一个自定义注解来在开发的时候自动翻译枚举的值 相关代码如下: Target(ElementType.FIELD) Retention(RetentionPolicy.RUNTIME) Documented JacksonAnnotationsInside public interface EnumShow {/*** …

web错题(1)

action属性是form标签的必须属性&#xff0c;用于指定表单提交时表单数据将被发往哪里 dir能够指定文本显示方向的属性 可以产生下拉列表的标记时<select> multiple属性设为true&#xff0c;表示输入字段可以选择多个值 lable标签的for属性可以把lable绑定到另一个元…

meilisearch,老版本的文档

Elasticsearch 做为老牌搜索引擎&#xff0c;功能基本满足&#xff0c;但复杂&#xff0c;重量级&#xff0c;适合大数据量。 MeiliSearch 设计目标针对数据在 500GB 左右的搜索需求&#xff0c;极快&#xff0c;单文件&#xff0c;超轻量。 所以&#xff0c;对于中小型项目来说…

Unity 之通过自定义协议从浏览器启动本地应用程序

内容将会持续更新&#xff0c;有错误的地方欢迎指正&#xff0c;谢谢! Unity 之通过自定义协议从浏览器启动本地应用程序 TechX 坚持将创新的科技带给世界&#xff01; 拥有更好的学习体验 —— 不断努力&#xff0c;不断进步&#xff0c;不断探索 TechX —— 心探索、心进…

PHP框架详解- symfony框架

GPT-4 (OpenAI) Symfony 是一个用 PHP 语言编写的开放源代码的 web 应用框架。Symfony 提供了一组可重用的组件和一个标准化、可扩展的框架&#xff0c;用于构建 web 应用、API、微服务等。它跟其他流行 PHP 框架&#xff08;比如 Laravel&#xff09;一样&#xff0c;旨在加快…

Servlet接口实现

项目搭建 pom文件引入依赖与打包配置。 <dependencies><!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId>…

java:spring actuator添加自定义endpoint

# 项目代码资源&#xff1a; 可能还在审核中&#xff0c;请等待。。。 https://download.csdn.net/download/chenhz2284/89437274 # 项目代码 【pom.xml】 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId&…

探索C嘎嘎的奇妙世界:第四关---引用与内联函数

1 引用: 引用不是新定义一个变量&#xff0c;而是给已存在变量取了一个别名&#xff0c;编译器不会为引用变量开辟内存空间&#xff0c;它和它引用的变量共用同一块内存空间。 #include<iostream> using namespace std;int main() {int a 0;// 引用&#xff1a;…

分数计算 初级题目

今天继续更题。今天的题目是《第五单元 分数的加减法》初级题目。 定位&#xff1a;题目较为初级&#xff0c;适合预习 参考答案&#xff1a;CACCADACAABACBBCDBCB

Linux文本处理三剑客+正则表达式

Linux文本处理常用的3个命令&#xff0c;脚本或者文本处理任务中会用到。这里做个整理。 三者的功能都是处理文本&#xff0c;但侧重点各不相同&#xff0c;grep更适合单纯的查找或匹配文本&#xff0c;sed更适合编辑匹配到的文本&#xff0c;awk更适合格式化文本&#xff0c;对…

【数据结构】第十六弹---C语言实现希尔排序

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】 目录 1、希尔排序( 缩小增量排序 ) 1.1、预排序实现 1.2、希尔排序代码实现 1.3、代码测试 1.4、时空复杂度分析 1.5、性能比较 总结 上一弹我们…

2024年【四川省安全员C证】考试题及四川省安全员C证考试资料

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 四川省安全员C证考试题是安全生产模拟考试一点通总题库中生成的一套四川省安全员C证考试资料&#xff0c;安全生产模拟考试一点通上四川省安全员C证作业手机同步练习。2024年【四川省安全员C证】考试题及四川省安全员…

SUSTAINABILITY,SCIESSCI双检期刊还能投吗?

本期&#xff0c;小编给大家介绍的是一本MDPI出版社旗下SCIE&SSCI双检“毕业神刊”——SUSTAINABILITY。据悉&#xff0c;早在2024年1月&#xff0c;ElSEVIER旗下的Scopus数据库已暂停收录检索期刊SUSTAINABILITY所发表文章&#xff0c;同时重新评估是否继续收录该期刊。随…

Carsim高级开发:VS Connect通讯开发指南

文章目录 前言一、VS Connect 概念引入二、VS Connect 通讯框架三、Carsim 工程配置1、车辆模型配置2、procedure配置3、Run Control配置4、受控车辆名称配置 四、VS Connect Server代码1、打开Sln工程2、代码修改 五、VS Connect Client代码1、函数的调用关系2、carsim_variab…

BetterZip 5软件安装包下载+安装教程

BetterZip是一款功能强大的Mac解/压缩软件&#xff0c;可以满足用户对文件压缩、解压、加密和保护等方面的需求。以下是关于BetterZip软件的主要功能、特点和使用方法的详细介绍&#xff0c;以及对其用户友好度、稳定性和安全性的评价。 安 装 包 获 取 地 址: BetterZip 5-安…

配置完eslint没有用?

当你使用 npx eslint --init 生成配置文件后 你也配置好了.prettierrc 当你在代码写一点小问题的时候 发现eslint没有进行检查 原因是你生成的 .eslintrc.js中没有加上这个配置 extends: [.....plugin:prettier/recommended],加上以后重启vscode你会发现

基于flask的网站如何使用https加密通信-问题记录

文章目录 项目场景&#xff1a;问题1问题描述原因分析解决步骤解决方案 问题2问题描述原因分析解决方案 参考文章 项目场景&#xff1a; 项目场景&#xff1a;基于flask的网站使用https加密通信一文中遇到的问题记录 问题1 问题描述 使用下面的命令生成自签名的SSL/TLS证书和…

传统边界安全设备的前世今生

光看不行得防御 只能抵御已知规则 识别病毒文件 识别方式是将数据包还原成文件&#xff0c;然后对文件进行病毒检测&#xff0c;检测方式就是以下三种 1、每一个文件都有一个独一无二的MD5值&#xff0c;把病毒文件的MD5值也进行记录&#xff0c;然后进行匹配 2、文件稍有变…

PS通过GTX实现SFP网络通信1

将 PS ENET1 的 GMII 接口和 MDIO 接口 通过 EMIO 方 式引出。在 PL 端将引出的 GMII 接口和 MDIO 接口与 IP 核 1G/2.5G Ethernet PCS/PMA or SGMII 连接&#xff0c; 1G/2.5G Ethernet PCS/PMA or SGMII 通过高速串行收发器 GTX 与 MIZ7035/7100 开发…