大模型从入门到实战——RAG理解

大模型从入门到实战之RAG

1. 什么是 RAG

检索增强生成(RAG, Retrieval-Augmented Generation) 是一种创新的模型架构,旨在提升大型语言模型(LLM)的性能和输出质量。尽管 LLM 在许多自然语言处理任务中表现出色,但它们仍然可能在某些情况下提供不准确或不充分的答案。为了解决这一问题,RAG 架构将信息检索与文本生成结合起来,通过从庞大的知识库中检索相关信息来增强模型的生成能力。

RAG 架构通过将信息检索与文本生成的能力结合在一起,解决了大型语言模型在生成文本时面临的一些挑战,如知识不足和幻觉问题。通过动态检索并利用外部信息,RAG 不仅增强了模型的知识覆盖范围,还提高了生成内容的准确性和相关性。这使得 RAG 成为提升自然语言处理系统性能的重要工具,广泛应用于问答系统、知识提取和个性化推荐等领域。

1.1 RAG 的工作机制

RAG 的核心思想是将传统的检索系统和生成模型进行整合。其工作流程可以分为以下几个关键步骤:

  1. 查询生成:用户提出问题或输入查询,模型将其转换为一个查询向量,这个向量代表了输入内容的语义。

  2. 信息检索:RAG 使用这个查询向量从一个庞大的知识库(如 Wikipedia、数据库或预定义的文档集合)中检索出与查询最相关的信息片段。检索到的内容通常是文本段落、句子或其他相关信息。

  3. 生成增强:在检索到的相关信息的基础上,RAG 将这些信息作为上下文,输入到大型语言模型中,用于指导其生成更加准确和信息丰富的回答。这样,生成的文本不仅依赖于模型原有的语言知识,还结合了外部的检索信息,从而提高了生成结果的准确性和相关性。

1.2 RAG 的优势

RAG 架构通过结合检索和生成的优点,在以下几个方面表现出明显的优势:

  • 增强知识覆盖:LLM 的知识是通过预训练获得的,因此对特定领域或最新信息可能不够准确或全面。RAG 通过实时检索相关信息,可以动态补充模型的知识库,显著提升了回答的深度和准确性。

  • 减少幻觉(hallucination):LLM 有时会生成不真实或虚假的信息(即所谓的“幻觉”)。RAG 通过依赖于真实的检索信息,减少了幻觉现象的发生,从而生成更加可靠的内容。

  • 适应性强:RAG 可以适应不同领域和任务,只需调整检索知识库的内容,就能在不需要大量重新训练模型的情况下,应用于新的任务或领域。

1.3 RAG 的应用场景

RAG 在多个应用场景中展现了其潜力,以下是几个主要的应用领域:

  • 问答系统:在构建智能问答系统时,RAG 可以通过检索相关文档内容来提供更加准确和深入的答案,特别是在涉及具体事实和详细信息的问题上。

  • 知识提取与总结:RAG 可以从大量文献中提取出相关信息,并生成概括性的总结,这在法律、医学、学术研究等领域具有重要应用价值。

  • 个性化推荐:在个性化内容推荐系统中,RAG 可以通过检索用户历史行为或兴趣相关的内容,并生成符合用户需求的推荐信息。

1.4 RAG存在背景

在实际应用中,单独依赖 LLM 并不足够,而需要引入 RAG 来增强模型的性能。RAG 通过结合信息检索和文本生成的优势,有效地解决了 LLM 的局限性,提升了模型在准确性、实时性、可信度、专业性、推理能力、适应性和长文本处理能力等方面的表现。这使得 RAG 成为一种重要的技术框架,在各种复杂的自然语言处理任务中得到了广泛的应用。

目前 LLM 面临的主要问题有:

  • 信息偏差/幻觉: LLM 有时会产生与客观事实不符的信息,导致用户接收到的信息不准确。RAG 通过检索数据源,辅助模型生成过程,确保输出内容的精确性和可信度,减少信息偏差。
  • 知识更新滞后性: LLM 基于静态的数据集训练,这可能导致模型的知识更新滞后,无法及时反映最新的信息动态。RAG 通过实时检索最新数据,保持内容的时效性,确保信息的持续更新和准确性。
  • 内容不可追溯: LLM 生成的内容往往缺乏明确的信息来源,影响内容的可信度。RAG 将生成内容与检索到的原始资料建立链接,增强了内容的可追溯性,从而提升了用户对生成内容的信任度。
  • 领域专业知识能力欠缺: LLM 在处理特定领域的专业知识时,效果可能不太理想,这可能会影响到其在相关领域的回答质量。RAG 通过检索特定领域的相关文档,为模型提供丰富的上下文信息,从而提升了在专业领域内的问题回答质量和深度。
  • 推理能力限制: 面对复杂问题时,LLM 可能缺乏必要的推理能力,这影响了其对问题的理解和回答。RAG 结合检索到的信息和模型的生成能力,通过提供额外的背景知识和数据支持,增强了模型的推理和理解能力。
  • 应用场景适应性受限: LLM 需在多样化的应用场景中保持高效和准确,但单一模型可能难以全面适应所有场景。RAG 使得 LLM 能够通过检索对应应用场景数据的方式,灵活适应问答系统、推荐系统等多种应用场景。
  • 长文本处理能力较弱: LLM 在理解和生成长篇内容时受限于有限的上下文窗口,且必须按顺序处理内容,输入越长,速度越慢。RAG 通过检索和整合长文本信息,强化了模型对长上下文的理解和生成,有效突破了输入长度的限制,同时降低了调用成本,并提升了整体的处理效率。

2. RAG 的工作流程

RAG(检索增强生成)系统的工作流程可以分为四个主要阶段:数据处理、检索、增强和生成。每个阶段都有其特定的功能和处理步骤。通过将数据处理、信息检索、内容增强和答案生成这四个阶段紧密结合起来,构建了一个强大的系统,能够有效地解决大型语言模型在单独使用时面临的一些挑战。通过这个流程,RAG 能够生成更准确、更可靠、更信息丰富的回答,广泛应用于问答系统、信息检索、知识管理等领域。

2.1 数据处理阶段

1. 数据清洗和处理
在这个阶段,系统首先需要对原始数据进行清洗和处理。清洗的目的是去除噪音、错误或不完整的信息,以确保数据的质量。处理步骤可能包括数据格式转换、去除重复项、标准化文本格式等。这一步是为了确保后续的检索和生成阶段有高质量的数据支撑。

2. 数据格式转换
处理后的数据需要转换成检索模型能够使用的格式。这通常涉及将文本数据转化为嵌入(embeddings)或向量表示,这些向量将被用于快速有效地检索相关信息。

3. 数据存储
处理和转换后的数据被存储在一个高效的数据库或索引结构中,如向量数据库(如 FAISS)或文档数据库。这些数据库允许快速检索并返回与用户查询最相关的内容。

2.2 检索阶段

1. 查询输入
当用户输入一个问题或查询时,系统首先将这个输入转换为查询向量。这个向量捕捉了用户输入的语义信息,便于与数据库中的数据进行匹配。

2. 信息检索
系统使用查询向量在预先存储的数据库中检索与之最相关的信息片段。检索模型会返回一组文本段落、句子或其他形式的相关信息,这些信息是后续生成阶段的基础。

2.3 增强阶段

1. 信息处理和增强
在生成答案之前,检索到的信息可能需要进一步处理和增强。这一步可能包括过滤掉不相关的内容、合并多个信息片段、重新组织信息顺序,或者根据上下文调整信息的表达方式。目的是让生成模型能够更好地理解这些信息,并有效利用它们来生成准确的答案。

2.4 生成阶段

1. 信息输入
增强后的信息被输入到生成模型中。生成模型(如大型语言模型)将这些信息作为上下文,结合自身的语言理解能力,生成符合用户查询的回答。

2. 答案生成
生成模型根据输入的增强信息生成最终的答案。这个答案不仅依赖于模型本身的语言知识,还借助了从外部检索到的相关信息,从而提高了回答的准确性和深度。

3. RAG 与 FINETUNE

在提升大语言模型效果中,RAG 和 微调(Finetune)是两种主流的方法。

微调: 通过在特定数据集上进一步训练大语言模型,来提升模型在特定任务上的表现。

RAG 和 微调的对比参考:

特征比较RAG微调
知识更新直接更新检索知识库,无需重新训练。信息更新成本低,适合动态变化的数据。通常需要重新训练来保持知识和数据的更新。更新成本高, 适合静态数据。
外部知识擅长利用外部资源,特别适合处理文档或其他结构化/非结
构化数据库。
将外部知识学习到 LLM内部。
数据处理对数据的处理和操作要求极低。依赖于构建高质量的数据集,有限的数据集可能无法显著提高性能。
模型定制侧重于信息检索和融合外部知识,但可能无法充分定制模型
行为或写作风格。
可以根据特定风格或术语调整LLM行为、写作风格或特定领域知识。
可解释性可以追溯到具体的数据来源, 有较好的可解释性和可追踪
性。
黑盒子, 可解释性相对较低。
计算资源需要额外的资源来支持检索机制和数据库的维护。依赖高质量的训练数据集和微调目标,对计算资源的要求较高。
推理延迟增加了检索步骤的耗时单纯 LLM 生成的耗时
降低幻觉通过检索到的真实信息生成回答,降低了产生幻觉的概率。模型学习特定领域的数据有助于减少幻觉,但面对未见过的输
入时仍可能出现幻觉。
伦理隐私检索和使用外部数据可能引发伦理和隐私方面的问题。训练数据中的敏感信息需要妥善处理,以防泄露。

参考

DataWhale-动手学大模型应用开发

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

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

相关文章

Linux阿里云服务器,利用docker安装EMQX

第一步,给云服务器docker进行加速 阿里云搜索“镜像加速器”,找到下面这个菜单,点进去 然后找到镜像工具下的镜像加速器 把这个加速器地址复制 然后在自己的云服务器中,找到docker的文件夹 点击json配置文件 把地址修改为刚刚…

如何将LaTeX数学公式嵌入到PowerPoint中

如何将LaTeX数学公式嵌入到PowerPoint中 简介 在学术演示或技术报告中,清晰且专业地展示数学公式是至关重要的。PowerPoint虽然提供了一些基本的公式编辑功能,但如果你需要更复杂或格式严格的公式,使用LaTeX生成公式并嵌入到PPT中是一个极佳…

Python酷库之旅-第三方库Pandas(092)

目录 一、用法精讲 391、pandas.Series.hist方法 391-1、语法 391-2、参数 391-3、功能 391-4、返回值 391-5、说明 391-6、用法 391-6-1、数据准备 391-6-2、代码示例 391-6-3、结果输出 392、pandas.Series.to_pickle方法 392-1、语法 392-2、参数 392-3、功能…

KT来袭,打造沉浸式体验的聚合性web3应用平台

随着步入 2024,漫长的区块链熊市即将接近尾声。纵观产业发展,逆流而上往往会是彰显品牌市场影响力和技术实力的最佳证明。在这次周期中,一个名为KT的web3.0聚合平台吸引了市场关注,无论在市场层面还是技术层面,都广泛赢…

听劝❗用AI做职场思维导图仅仅需要几秒钟啊

本文由 ChatMoney团队出品 嘿,各位职场朋友们 是不是常常对着密密麻麻的笔记感到焦虑呢? 想整理却无从下手? 别怕,ChatmoneyAI知识库来拯救你的整理困难症啦! 咱们都知道,思维导图是职场中必备的神器 …

zoom 会议机器人web例子

一、需要创建zoom app,创建及配置参考:Zoom会议机器人转写例子-CSDN博客 这里直接使用zoom-recall的配置。 二、需要生成签名,参数为:zoom-recall中的Client ID和Client Secret 1、git clone https://github.com/zoom/meetings…

【PHP入门教程】PHPStudy环境搭建+composer创建项目

文章目录 PHP 的历史PHP 的用途PHP 的特点和优势PHP 环境搭建环境准备安装window 安装CentOS / Ubuntu / Debian 安装 第一个Hello World使用Apache服务运行命令行运行代码 Composer安装 Composer:安装途中报错解决:初始化项目创建文件最终文件目录Compo…

微服务:配置管理和配置热更新

参考:黑马程序员之微服务 💥 该系列属于【SpringBoot基础】专栏,如您需查看其他SpringBoot相关文章,请您点击左边的连接 目录 一、引言 二、配置共享 1. 添加共享配置到nacos (1)jdbc的共享配置 shared…

设计模式之Decorator装饰者、Facade外观、Adapter适配器(Java)

装饰者模式 设计模式的基本原则,对内关闭修改。 Decorator Pattern,装饰者模式,也叫包装器模式(Wrapper Pattern):将一个对象包装起来,增加新的行为和责任。一定是从外部传入,并且可以没有顺序&#xff0…

望繁信科技入选2024年第3批上海市高新技术成果转化项目名单

近日,上海望繁信科技有限公司(以下简称“望繁信科技”)凭借其自主研发的“数字北极星流程挖掘分析软件”项目,成功入选2024年第3批上海市高新技术成果转化项目名单。这一殊荣根据《上海市高新技术成果转化项目认定办法》&#xff…

Keil Error-Flash Download failed Cortex-M4 擦除芯片还不好使的方案!!!

点击魔术棒-Debug-Settings后看到SWDIO可以正常识别,但是点击Reset下拉只有三个选项。 此时点击Pack,将Enable勾去掉。 回到Reset,此时多了Autodetet选项,选择这个选项后,即可正常烧录。

CLI举例:通过ISAKMP方式建立GRE over IPsec隧道

配置安全策略,允许私网指定网段进行报文交互,放行IKE协商报文。配置静态路由,保证两端路由可达。配置GRE Tunnel接口以及Tunnel口的转发路由。配置基于ACL的IPsec策略。GRE over IPsec中IPsec需要保护的数据流以GRE的起点为源、终点为目的。 …

初始C++(类与对象)

感谢大佬的光临各位,希望和大家一起进步,望得到你的三连,互三支持,一起进步 个人主页:LaNzikinh-CSDN博客 文章目录 前言一.引用二.内联函数三.类和对象总结 前言 之前讲c的命令空间和第一个程序的运行,继…

Aixos食用指南,超全面详细讲解!

前言:axios是目前最流行的ajax封装库之一,用于很方便地实现ajax请求的发送。特意花费了两个小时为大家准备了一份全面详细的Aixos食用指南,需要的小伙伴点个关注 哦~💕 🌈🌈文章目录 Axios 简介 Axios 特…

vue实现卡片遮罩层交互式功能

前言 在前端开发中&#xff0c;卡片遮罩层是一种常见的交互设计元素&#xff0c;用于强调某个区域或内容&#xff0c;并提供用户操作的入口。本文将带大家在 vue 中结合实际案例实现此功能。 实现效果 完整代码 html <template><!-- 主容器 --><div class&quo…

ctfshow WEB刷题

web1 直接右键打开&#xff0c;在源代码里 web2 ctrlu查看源码 web3 打开bp抓包发送直接就得到了 web4 用dirsearch扫描发现txt文件 访问 接着访问得到flag web5 用dirbuster扫描看看有没有phps源码泄露&#xff0c;发现存在 访问下载文件打开就是flag web6 用dirsearch扫…

ES6笔记总结(Xmind格式):第三天

Xmind鸟瞰图&#xff1a; 简单文字总结&#xff1a; ES6知识总结&#xff1a; Promise的使用: 1.使用 new Promise() 构造函数来创建一个 promise 对象 2.接受两个函数作为参数&#xff1a;resolve 和 reject ①resolve 函数在异步操作成功完成时调用&#xf…

python构建一个web程序

from flask import Flaskapp Flask(__name__)app.route(/) def hello_world():return 欢迎来到我的Python Web程序!if __name__ __main__:app.run(debugTrue)1、安装flask D:\Users\USER\PycharmProjects\pythonProject1\p01>pip install flask WARNING: Ignoring invalid…

服务器五大关键组件拆解分析

拆解服务器五大关键组件 "AI服务器五大硬件揭秘&#xff1a;深入剖析PCB构造&#xff0c;揭示内部真实面貌。本文通过一步步拆解PCB,为读者呈现了一台服务器的内部世界&#xff0c;力求让您对服务器升级的潜在价值有更深的理解和把握。" 1、五大硬件部分可归纳为——…

自定义开屏启动广告页

自定义开屏启动广告页 文章目录 自定义开屏启动广告页效果图简单版轮播方式css 效果图 简单版 图片 倒计时 <template><view class"guide fcc" :style"{ background: url(${ imgUrl }) no-repeat}"><view class"skip_btn" cli…