大语言模型RAG-技术概览 (一)

news2024/12/25 12:48:21

大语言模型RAG-技术概览 (一)

一 RAG概览

检索增强生成(Retrieval-AugmentedGeneration, RAG)。即大模型在回答问题或生成问题时会先从大量的文档中检索相关的信息,然后基于这些信息进行回答。RAG很好的弥补了传统搜索方法和大模型两类技术的短板。个人认为RAG的核心在于将LLM的底座模型与上层应用进行解耦。 举个例子:GPT的知识停留在模型训练完成的那一刻(GPT4,2023年),但上层应用不得不使用新鲜的数据。RAG就很好的解决了这个问题。
请添加图片描述

借用Langchain-Chatchat项目的图了解朴素RAG流程的全貌:

请添加图片描述

总结如下:

  • RAG接受本地文档和来自用户(或系统)的query作为input,将两类input向量化,通过向量相似度(Vector Similarity)实现召回。

  • 基于input的向量库进行提示词工程。一般使用langchain框架。

  • 提示词工程输出的prompt作为LLM的输入,最终给出回答。

以上是朴素RAG(Naive RAG)的流程,以此为基础,衍生了Advanced RAGModular RAG

  • Advanced RAGNaive RAG的基础上增加了检索前优化(对query进行路由、重写、扩展等,在上图箭头10的位置)和检索后优化(对检索到的本地知识排序、总结、融合等,在上图箭头7或11、12的位置)。

  • Modular RAG之所以称为Modular,是因为增加了更多功能的模块。这些模块包括了预测、感知、优化、记忆等等功能。可以把Modular RAG看作是一种更灵活的集成学习,它以LLM为核心提取用户的意图,然后基于意图自动组织各种模型(模块)实现检索问答。

到这里,可以引入Chain的概念了:它是LLM应用的一种方法,允许模型按照一定顺序逐步处理信息或任务,将前一步的输出作为下一步的输入。这种方法有时也被称为“链式推理”或“步骤式推理”。比如用户输入了一张写满了数据的图片,并询问含义。Modular RAG就会分析用户意图,确定了以下流程:OCR算法提取图片数据 -> 代码解释器处理上一步数据 -> 通过知识库解释数据结论 -> 最终给出回答。

Chain强大且灵活,但缺点也不能忽视:首先长链可能需要更多的计算资源,其次是容错率很低,中间步骤的错误可能会影响后续计算。

今年是LLM开源元年,私有化部署的开源RAG模型是人工智能赋能产业发展最有希望的方向之一。它不但极大的提高了企业的生产力,私有化部署还解决了数据安全的问题。在企业中,新来的工程师再也不需要对着厚厚业务手册抓耳挠腮,技术领导也再也不用为了一个数据半夜给员工打电话了。

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

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

相关文章

java-单列集合-set系列

set集合继承collection,所以API都差不多,我就不多加介绍 直接见图看他们的特点 我们主要讲述的是set系列里的HashSet、LinkedHashSet、TreeSet HashSet HashSet它的底层是哈希表 哈希表由数组集合红黑树组成 特点:增删改查都性能良好 哈希表具体是…

使用endnote插入引用文献导致word英文和数字变成符号的解决方案

使用endnote插入引用文献导致word英文和数字变成符号的解决方案 如图使用endnote插入引用文献导致word英文和数字变成符号字体Wingdings Wingdings 是一个符号字体系列,它将许多字母渲染成各式各样的符号,用途十分广泛。 **解决方法:**直接通…

混合云构建-VPN打通阿里云和Azure云

要在阿里云和Azure云之间通过VPN打通网络,您需要在两边分别设置VPN网关,并配置相应的连接和路由规则以确保两个云环境之间的网络流量可以互通。以下是一个基本的步骤指南: 为了更具体地说明如何在阿里云和Azure之间通过VPN打通网络,我们将通过一个简化的示例来演示整个过程…

SublimeText4 安装

Sublime Text 可以编写html,css,js,php等等,是一个轻量、简洁、高效、跨平台的编辑器。 图1:SublimeText官网 Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件&#…

面向IoT物联网的时间序列引擎

1、背景 随着近年来业务的发展,尤其是机器产生的数据占比越来越高的趋势下,时序数据因为其业务价值越来越被更多地关注,也因而催生了专用的时间序列数据库,简称时序数据库(TimeSeries Database,TSDB&#x…

【项目】C++ 基于多设计模式下的同步异步日志系统

前言 一般而言,业务的服务都是周而复始的运行,当程序出现某些问题时,程序员要能够进行快速的修复,而修复的前提是要能够先定位问题。 因此为了能够更快的定位问题,我们可以在程序运行过程中记录一些日志,通…

垃圾清理软件大全免费 磁盘空间不足?注册表不敢乱动怎么办?ccleaner官方下载

在日常的工作中,面对重要文件时往往都会备份一份;在下载文件时,有时也会不小心把一份文件下载好多次。这些情况会导致电脑中出现重复的文件,删除这些重复文件,可以节省电脑空间,帮助提高电脑运行速度。那么…

【敬伟ps教程】视频动画

文章目录 视频文档视频时间轴帧动画视频文档 工作区需由[基本功能]切换为[动感] 可以看到我们需从时间的维度来编辑动态视觉图像 时间轴:从时间的维度来编辑动态视觉图像 PS提供的时间轴有两种:1、视频时间轴;2、动画时间轴 新建视频文档,点击新建或Ctrl+N,预设选择“胶…

Docker自建蜜罐系统【失陷检测、外网威胁感知、威胁情报】

项目地址: https://hfish.net Hfish是一款基于Docker的网络钓鱼平台,它能够帮助安全团队模拟各种网络钓鱼攻击,以测试和提高组织的安全防御能力。 Hfish的优点 为什么选择Hfish? 蜜罐通常被定义为具有轻量级检测能力、低误报率…

学生护眼台灯应该怎么选?揭秘央视推荐护眼台灯清单

大家都知道现在的学生学业压力都不比从前,不仅多了许多需要学习的科目,作业和功课也增加了许多,这样导致越来越多学生过早出现近视的现象。作为父母的我们能为孩子做的就是挑选一款光源舒适的台灯,以便孩子在夜晚学习时也能得到充…

MySQL进阶45讲【33】join语句怎么优化?

1 前言 在上一篇文章中,介绍了join语句的两种算法,分别是IndexNested-Loop Join(NLJ)和Block Nested-Loop Join(BNL)。 我们发现在使用NLJ算法的时候,其实效果还是不错的,比通过应用层拆分成多个语句然后再拼接查询结果更方便&a…

CVE-2023-38836 BoidCMSv.2.0.0 后台文件上传漏洞

漏洞简介 BoidCMS是一个免费的开源平面文件 CMS,用于构建简单的网站和博客,使用 PHP 开发并使用 JSON 作为数据库。它的安装无需配置或安装任何关系数据库(如 MySQL)。您只需要一个支持PHP 的Web服务器。在 BoidCMS v.2.0.0 中存…

《JAVA与模式》之适配器模式

系列文章目录 文章目录 系列文章目录前言一、适配器模式的用途二、适配器模式的结构三、类适配器模式四、对象适配器模式五、适配器模式的优缺点前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,…

抗生素净化提纯大孔吸附树脂

一、介绍 ADS-800级吸附树脂 ADS-800是一款功能强大的,大孔,湿润的球形交联聚合物吸附型树脂。 ADS-800 具有优良的物理特性,化学和热稳定性。它的特定的多孔性和其表面积使的本产品适合于分离技术的应用。 ADS-800 是为了流程工业中的专业…

3.1_2 覆盖与交换

3.1_2 覆盖与交换 (一)覆盖技术 早期的计算机内存很小,比如IBM 推出的第一台PC机最大只支持1MB大小的内存。因此经常会出现内存大小不够的情况。 后来人们引入了覆盖技术,用来解决“程序大小超过物理内存总和”的问题。 覆盖技术的…

springboot267大学生科创项目在线管理系统的设计与实现

# 大学生科创项目在线管理系统设计与实现 摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装大学生科创项目在…

制作图片马:二次渲染(upload-labs第17关)

代码分析 $im imagecreatefromjpeg($target_path);在本关的代码中这个imagecreatefromjpeg();函数起到了将上传的图片打乱并重新组合。这就意味着在制作图片马的时候要将木马插入到图片没有被改变的部分。 gif gif图的特点是无损,我们可以对比上传前后图片的内容…

MySQL--彻底解决Navicat备份时的报错

原文网址:MySQL--彻底解决Navicat备份时的报错_IT利刃出鞘的博客-CSDN博客 简介 本文介绍彻底解决Navicat备份时的报错。 正确的方法 见:MySQL命令--使用mysqldump导出导入数据库_IT利刃出鞘的博客-CSDN博客 错误的方法 方法1.转储SQL文件 这种方…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的障碍物检测系统(深度学习代码+UI界面+训练数据集)

摘要:开发障碍物检测系统对于道路安全性具有关键作用。本篇博客详细介绍了如何运用深度学习构建一个障碍物检测系统,并提供了完整的实现代码。该系统基于强大的YOLOv8算法,并对比了YOLOv7、YOLOv6、YOLOv5,展示了不同模型间的性能…

TypeScript编译选项

编译单个文件:终端 tsc 文件名 自动编译单个文件:终端 tsc 文件名 -w 编译整个项目:tsc 前提是得有ts的配置文件tsconfig.json 自动编译整个项目:tsc --w tsconfig.json默认文件内容: tsconfig.json是ts编译器的配…