检索增强生成(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生成技术综述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

关于stm32cubemx时钟设置中css enable的作用

STM32已提供了一个时钟失常恢复机制(CSS),当系统选择HSE作系工作时钟,并打开了CSS功能后,当HSE由于外部原因而停震时,系统将自动切换到内部HSI运行,并产生NMI中断,于是可以在NMI中断中进行安全处理。在cube…

Java中的BIO、NIO与AIO

1.概述 I/O 模型简单的理解:就是用什么样的通道进行数据的发送和接收,很大程度上决定了程序通信的性能。Java 共支持 3 种网络编程模型 I/O 模式:BIO、NIO、AIO。 2.Java BIO Java BIO(Blocking I/O):是传统的java io 编程&#…

话题——为什么要学习程序,成为程序员呢?

选择成为一名程序员,这对我而言并非是一时冲动,而是深思熟虑后的坚定选择。在当下这个信息化、数字化的时代,程序员这一职业不仅具有极高的技术含量,更承载了推动社会进步、引领科技发展的重任。特别是在深度学习这一前沿领域&…

【六十四】【算法分析与设计】699. 掉落的方块,离散化操作,线段树优化,区间查询sum+区间更新update

699. 掉落的方块 在二维平面上的 x 轴上,放置着一些方块。 给你一个二维整数数组 positions ,其中 positions[i] [left(i), sideLength(i)] 表示:第 i 个方块边长为 sideLength(i) ,其左侧边与 x 轴上坐标点 left(i) 对齐。 每个…

Midjourney如何利用chaos控制生成图片的差异化

hello 小伙伴们,我是你们的老朋友——树下,今天分享Midjourney提示词常用参数——chaos,话不多说,直接开始~ chaos参数什么意思呢? 它可以用来控制我们生成图片之间的差异化程度的一个参数 通常我们在用Midjourney生…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-1.1

前言: 本文是来自哔哩哔哩网站上视频“正点原子[第二期]Linux之ARM(MX6U)裸机篇”的学习笔记,在这里会记录下正点原子Linux ARM MX6ULL 开发板根据配套的哔哩哔哩学习视频所作的实验和笔记内容。本文大量的引用了正点原子哔哔哩网…

服务器 BMC(基板管理控制器,Baseboard Management Controller)认知

写在前面 工作中遇到,简单整理博文内容涉及 BMC 基本认知理解不足小伙伴帮忙指正 不必太纠结于当下,也不必太忧虑未来,当你经历过一些事情的时候,眼前的风景已经和从前不一样了。——村上春树 基板管理控制器(BMC&…

小米一面:说说MVC与设计模式的关系

前言 大家好,我叫阿杆,不叫阿轩。 先来看看面试环节吧。 面试官:请说说MVC模式是基于哪种设计模式的? 求职者:MVC本身不就是一种设计模式吗? 面试官:我的意思是,MVC是基于23中设计…

SD-WAN为什么在亚太地区普及?

当前,软件定义广域网SD-WAN在亚太地区具有稳固的地位。它看起来是技术与地形的完美结合,因为亚太地区拥有许多大国,其中一些国度辽阔,人口分布在广阔的地理区域和偏远地区,如印度,澳大利亚,越南…

Introducing Meta Llama 3: The most capable openly available LLM to date

要点 今天,我们推出 Meta Llama 3,这是我们最先进的开源大型语言模型的下一代。Llama 3型号将很快在AWS,Databricks,Google Cloud,Hugging Face,Kaggle,IBM WatsonX,Microsoft Azur…

代码随想录算法训练营第四十六天| LeetCode139.单词拆分

一、LeetCode139.单词拆分 题目链接/文章讲解/视频讲解:https://programmercarl.com/0139.%E5%8D%95%E8%AF%8D%E6%8B%86%E5%88%86.html 状态:已解决 1.思路 单词明显就是物品,字符串s明显就是背包,那么问题就变成了物品能不能把背…

Three 银河系

总体效果图 当然,这也只是银河系的一部分,要想知道全景视野下的银河系是什么样的,只有通过科学家依据观测结果所制作的绘图来实现,因为银河系实在是太大了,目前的技术水平还无法实现全景捕捉。绘制的这张三维立体图像…

记录:阿里云服务器网站搭建(4)

Docker安装Nginx 现阶段主要目的是做一些静态资源路径的转发代理,相当于一个web服务器,tomcat也可以设置凡访问静态资源。但考虑到后续还需要作为代理服务器对域名等进行代理转发,所以使用nginx。 准备好要挂载的nginx配置目录 mkdir -p /m…

React-RTK

​🌈个人主页:前端青山 🔥系列专栏:React篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来React篇专栏内容:React-RTK 目录 1、介绍 2、安装 3、编写RTK使用示例 4、官方提供项目包示例 创建 Redux …

ROS 2边学边练(33)-- 写一个静态广播(C++)

前言 通过这一篇我们将了解并学习到如何广播静态坐标变换到tf2(由tf2来转换这些坐标系)。 发布静态变换对于定义机器人底座与其传感器或非移动部件之间的关系非常有用。例如,在以激光扫描仪中心的坐标系中推理激光扫描测量数据是最简单的。 这…

基于人工智能的机动车号牌检测与推理系统v1.0

基于人工智能的机动车号牌检测与推理系统v1.0代码重构与实现。 目前整合3中现有算法,并完成阶段性改造,包括【传统方法检测车牌,SVM推理字符】、【YOLO方法检测车牌,SVM推理字符】、【YOLO方法检测车牌,CNN推理字符】&…

MapReduce案例-电影网站数据统计分析

本文适合大数据初学者学习MapReduce统计分析业务问题的步骤和基础的MapReduce编程方法,初步掌握Hadoop对计算任务的管理。 本文末尾有全部数据集和完整代码连接。 1.准备工作 安装Hadoop:Hadoop 3.3.2 离线安装-CSDN博客 按照好Hadoop之后要检查一下datanode运行情况…

Llama网络结构介绍

LLaMA现在已经是开源社区里炙手可热的模型了,但是原文中仅仅介绍了其和标准Transformer的差别,并没有一个全局的模型介绍。因此打算写篇文章,争取让读者不参考任何其他资料把LLaMA的模型搞懂。 结构 如图所示为LLaMA的示意图,由…

ESP32学习第一天-ESP32点亮LED,按键控制LED状态,LED流水灯

第一天使用到的函数: 函数第一个参数设置哪一个引脚,第二个参数设置引脚模式。 pinMode(led_pin,OUTPUT); //设置引脚模式 函数的第一个参数设置哪一个引脚,第二个参数设置是高电平还是低电平。 digitalWrite(led_pin,HIGH);//将引脚电平拉高 #incl…

电脑怎么拖动文件到想要的位置?电脑上拖拽没了的文件怎么找回

在日常的办公和学习中,电脑文件拖拽操作是每位用户都不可或缺的技能。然而,有时在拖动文件时,可能会因为误操作或其他原因,导致文件消失或移至未知位置。本文将详细解析如何在电脑上轻松拖动文件到指定位置,并为您提供…