检索增强生成(RAG)技术

随着大型语言模型(LLMs)在自然语言处理(NLP)领域的显著进步,它们在多个评估基准测试中显示出超越人类水平的语言和知识掌握能力。然而,这些模型在实际应用中也面临着一系列挑战,如制造事实、知识更新缓慢和答案缺乏透明度等问题。为了解决这些问题,研究者提出了检索增强生成(Retrieval-Augmented Generation,RAG)技术,它通过从外部知识库检索相关信息来辅助大型语言模型回答问题,已经被证明能显著提高回答的准确性。

RAG的核心优势

RAG技术的核心优势在于其能够提高答案的准确性、增加用户信任、便于知识更新和引入特定领域知识。它结合了LLMs的参数化知识和外部知识库的非参数化知识,有效地解决了知识更新的问题,并通过引用来源提高了答案的透明度。

  1. 提高答案准确性: RAG通过从外部知识库中检索相关信息,并将其与语言模型的生成能力结合,可以显著提升生成答案的准确性。这种准确性的提升尤其体现在知识密集型任务中,如专业领域的问答系统。

  2. 增加用户信任: 由于RAG能够引用外部知识库中的信息来支持其回答,用户可以追溯答案的来源,从而增加了对模型输出的信任度。这种可验证性是提高用户满意度和接受度的关键因素。

  3. 便于知识更新和引入特定领域知识: RAG结合了LLMs的参数化知识(即模型内部的知识)和外部知识库的非参数化知识(即存储在数据库中的信息)。这种结构允许模型轻松地通过更新知识库来获取最新信息,而不需要对模型本身进行重新训练。

  4. 减少模型幻觉: 大型语言模型有时会产生“幻觉”(即生成与现实不符的信息)。RAG通过检索真实可靠的信息来辅助生成过程,有效减少了这种幻觉现象。

  5. 透明度: RAG技术通过明确展示其检索到的信息来源,提高了模型的透明度。这种透明度不仅有助于用户理解模型的决策过程,也有助于研究人员分析和改进模型。

  6. 定制化能力: RAG允许根据不同领域的特定需求定制知识库,使得模型能够针对特定领域提供更加精准和深入的答案。

  7. 安全性和隐私管理: 通过在知识库中内置角色和安全控制,RAG可以更好地管理数据使用,保护用户隐私和数据安全。

  8. 可扩展性: RAG技术能够有效处理大规模数据集,而无需对模型的所有参数进行更新或重新创建训练集,这使得其在资源利用上更为高效。

  9. 结果的可信度: 与仅依赖模型内部知识的生成方法相比,RAG能够从最新的数据中选择确定性结果,提高了生成内容的可信度。

  10. 适应性和灵活性: RAG的模块化设计允许研究者和开发者根据具体任务和需求,灵活地添加、替换或调整RAG过程中的模块,从而提高模型的适应性和灵活性。

RAG的三种范式

论文概述了RAG在大型语言模型时代的发展范式,总结了三种RAG范式:原始RAG(Naive RAG)、高级RAG(Advanced RAG)和模块化RAG(Modular RAG)。

  1. 原始RAG:涉及基本的检索-阅读过程,将检索到的文档直接用于生成答案。
  2. 高级RAG:在原始RAG的基础上,进行了检索过程优化、预检索优化、后处理方法等改进,以提高检索生成的质量。
  3. 模块化RAG:提供了更大的多样性和整个过程的灵活性,整合了各种方法来扩展功能模块,允许采用序列化管道或跨多个模块的端到端训练方法。
RAG的三个主要组成部分

检索增强生成(Retrieval-Augmented Generation,RAG)技术由三个主要组成部分构成:检索器(Retriever)、生成器(Generator)和增强方法(Augmentation)。下面详细说明每个部分的作用和关键技术:

  1. 检索器(Retriever) 检索器是RAG框架中的“R”,负责从庞大的知识库中检索出与用户查询最相关的文档。这个过程通常涉及以下几个关键技术:

    • 块优化:选择合适的文档块大小以获得最佳的语义表示。
    • 微调嵌入模型:对嵌入模型进行微调,以更好地适应特定领域的数据集和下游任务。
    • 查询重写:通过生成伪文档或使用大型语言模型重写查询,以提高检索的相关性。
    • 嵌入变换:使用适配器或变换技术优化查询嵌入,使其更匹配文档的语义空间。
  2. 生成器(Generator) 生成器是RAG框架中的“G”,它使用检索到的信息作为输入,生成流畅且信息丰富的文本响应。生成器的关键技术包括:

    • 后检索处理:对检索到的文档进行压缩和重排,以提高信息的利用效率。
    • 优化生成器:通过一般优化过程、对比学习和利用不同优化目标,调整生成器以更好地适应输入数据。
    • 信息压缩:减少检索文档中的噪声和冗余,应对上下文长度限制。
    • 重排:优化检索到的文档集,将最相关的信息放在前面,提高生成文本的相关性。
  3. 增强方法(Augmentation) 增强方法在RAG中用于提升模型在预训练、微调和推理阶段的性能。这些方法包括:

    • 数据源增强:使用非结构化数据、结构化数据和LLM生成内容作为检索源,增强RAG的效果。
    • 过程增强:通过迭代检索和自适应检索优化检索过程,使模型能够根据任务需求动态调整检索策略。
    • 模块化RAG:引入新模块和新模式,如搜索模块、记忆模块、额外生成模块、任务适应模块、对齐模块和验证模块,以提供更大的灵活性和适应性。

每个组成部分都包含了一系列的技术,这些技术可以单独使用或组合使用,以解决特定的挑战并提升RAG系统的整体性能。RAG的这三个组成部分相互协作,共同提高了模型在处理复杂查询和生成信息丰富响应方面的能力。


参考链接:同济大学发布最新检索增强(RAG)的LLM生成技术综述

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

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

相关文章

茶饮门店本地生活抖音团购运营方案计划书

【干货资料持续更新,以防走丢】 茶饮门店本地生活抖音团购运营方案计划书 部分资料预览 资料部分是网络整理,仅供学习参考。 PPT可编辑80页(完整资料包含以下内容) 目录 抖音本地生活运营方案 1. 账号基础搭建与优化 - 门店账号…

第26天:安全开发-PHP应用模版引用Smarty渲染MVC模型数据联动RCE安全

第二十六天 一、PHP新闻显示-数据库操作读取显示 1.新闻列表 数据库创建新闻存储代码连接数据库读取页面进行自定义显示 二、PHP模版引用-自写模版&Smarty渲染 1.自写模版引用 页面显示样式编排显示数据插入页面引用模版调用触发 2.Smarty模版引用 1.下载&#xff1a…

Dijkstra算法,你的最短路来了!

录友们,最近我在图论方面已经开始更最短路系列了,讲好最短路问题,其实也是很难的,本篇我仅仅是讲了朴素版Dijkstra,但就写了将近1w字,画了二十张图。学算法易,讲清楚难! 题目链接 …

C语言(static和extern)

Hi~!这里是奋斗的小羊,很荣幸各位能阅读我的文章,诚请评论指点,关注收藏,欢迎欢迎~~ 💥个人主页:小羊在奋斗 💥所属专栏:C语言 本系列文章为个人学习笔记&#x…

Midjourney是什么?Midjourney怎么用?怎么注册Midjourney账号?国内怎么使用Midjourney?多人合租Midjourney拼车

Midjourney是什么 OpenAI发布的ChatGPT4引领了聊天机器人的竞争浪潮,随后谷歌推出了自己的AI聊天机器人Bard,紧接着微软推出了Bing Chat,百度也推出了文心一言,这些聊天机器人的推出,标志着对话式AI技术已经达到了一个…

TCP相关问题总结

文章目录 TCP连接建立过程1. TCP三次握手2. TCP四次挥手3. TCP为什么是三次握手4. TCP为什么是四次挥手 TCP流量控制TCP拥塞控制1. 为什么需要拥塞控制2. 控制手段 TCP连接建立过程中出现丢包 TCP连接建立过程 1. TCP三次握手 首先client端发出连接请求,并且请求同…

RAG:智能图书馆员引领AI的知识之旅

想象一下,你是一个法官,面对一个复杂的案件,你需要查阅大量的法律文献来找到相关的案例和法律条文。在AI的世界里,也有一个类似的“法官”——大型语言模型(LLMs)。它们能够回答各种问题,但有时…

【大模型系列】预训练

数据 数据预处理 预处理流程: 原始语料库—>质量过滤(语种过滤、统计过滤、关键词过滤、分类器过滤)—>敏感内容过滤(有毒内容、隐私内容PII)—>数据去重(句子级别、文档级别、数据集级别&#…

文件读取和写入

1、with open 和 open close 的对比 with open 的优点 1、自动关闭文件:with 语句会在代码块执行完毕后自动关闭文件,无需显式调用 close() 方法。 2、异常安全:如果在代码块中发生异常,with 语句仍然会确保文件被正确关闭。 3、…

2024大连化工展|中国(大连)国际化工产业展览会

2024大连化工展|中国(大连)国际化工产业展览会 时间:2024年7月24-26日 地点:大连世界博览广场 大会主题:共谋新发展 共创新机遇 大连作为东北地区最具活力和发展潜力的城市,同时也是我国重要的化工产业基…

上网行为管理软件怎么选 三款好用的上网行为管理软件

上网行为管理软件怎么选 三款好用的上网行为管理软件 一款优秀的上网行为管理软件可以满足企业的多种需求,帮助企业有效监督员工的行为,提升工作效率和企业效益,但是这些软件差异较大,选择的时候需要考虑这些因素。 1、明确需求 …

(2024)Visual Studio的介绍、安装与使用

Visual Studio介绍 1.Visual Studio是什么? Visual Studio是微软公司推出的一款开发工具包系列产品,它是一个基本完整的开发工具集,为软件开发者提供了整个软件生命周期中所需的大部分工具。 2.Visual Studio的定义 Visual Studio是美国微软公…

kerberos:介绍

文章目录 一、介绍二、kerberos框架1、名词解释2、框架 三、优缺点四、其他认证机制1、SSL2、OAuth3、LDAP 一、介绍 Kerberos是一种计算机网络授权协议,主要用于在非安全网络环境中对个人通信进行安全的身份认证。这个协议由麻省理工学院(MIT&#xff…

C语言 | Leetcode C语言题解之第40题组合总和II

题目: 题解: int** ans; int* ansColumnSizes; int ansSize;int* sequence; int sequenceSize;int** freq; int freqSize;void dfs(int pos, int rest) {if (rest 0) {int* tmp malloc(sizeof(int) * sequenceSize);memcpy(tmp, sequence, sizeof(int…

【QT学习】9.绘图,三种贴图,贴图的转换,不规则贴图(透明泡泡)

一。绘图的解释 Qt 中提供了强大的 2D 绘图系统,可以使用相同的 API 在屏幕和绘图设备上进行绘制,它主要基于QPainter、QPaintDevice 和 QPaintEngine 这三个类。 QPainter 用于执行绘图操作,其提供的 API 在 GUI 或 QImage、QOpenGLPaintDev…

Jmeter04:关联

1 Jmeter组件:关联 概括:2个请求之间不是独立的,一个请求响应的结果是作为另一个请求提交的数据,存在数据交互 1.1 是什么? 就是一个请求的结果是另一个请求提交的数据,二者不再是独立 1.2 为什么&#x…

docker容器内彻底移除iptables服务的实现方法

背景 我创建的容器使用的是centos6的标准镜像,所以内置了iptables服务。容器启动后iptables服务默认就启动了。iptables设置的规则默认是所有流量都无法通行。而对于服务器的管理使用的是宿主机的防火墙。这样就导致在实现用iptables动态给容器添加端口映射时不成功…

RocketMQ快速入门:group、topic、queue、tag等基本概念(四)

0. 引言 上一节,我们说明了rocketmq中的4个核心组成以及他们之间的工作关系。但其中穿插的topic, queue等概念,如果未接触过mq的同学可能会有些迷糊,所以本节,我们重点针对rocketmq中的基本概念进行讲解,之前学习过其…

中北大学软件学院操作系统实验二进程调度算法

实验时间 2024年 4 月13日14时至16时 学时数 2 1.实验名称 实验二进程调度算法 2.实验目的 (1)加深对进程的概念及进程调度算法的理解; (2)在了解和掌握进程调度算法的基础上,编制进程调度算法通用程序,将调试结果显示在计算机屏幕上&am…

第九章 进程和计划任务管理【☆】

一个进程可以创建多个子进程,子进程之间相互独立,速度较慢,但是互不影响。线程是共享资源,速度快,但一个线程崩掉其他线程同时崩掉。 一、查看进程信息 1. 查看静态的进程统计信息——ps命令 主要进程状态 R(runnin…