检索生成(RAG) vs 长文本大模型:实际应用中如何选择?

编者按:大模型的上下文理解能力直接影响到 LLMs 在复杂任务和长对话中的表现。本期内容聚焦于两种主流技术:长上下文(Large Context Windows)和检索增强生成(RAG)。这两种技术各有何优势?在实际应用中,我们又该如何权衡选择?

文章不仅详细阐述了这两种技术的工作原理,还深入分析了它们在效率、准确性和实施成本等方面的差异。文章特别提到了在执行重复性任务时使用 Context Caching 优化长上下文的优势,然而,缓存策略的效果很大程度上取决于提示词的可预测性。如果用户输入变化无常,缓存的效果可能会大打折扣。

本文可供各位读者进行技术选型时参考,期待未来看到更多提升 LLMs 上下文理解能力的创新方案。

大语言模型(Large Language Models ,LLMs)技术正飞速发展,尤其是模型在生成文本时能够处理的上下文信息量极速提升。尽管 LLMs 在文本的处理和生成等方面表现出色,但它们却面临一个固有的挑战:难以捕捉信息背景全貌,尤其是在应对冗长对话或涉及多重细节的复杂任务时。为了解决这一问题,研究人员引入了长上下文(Large context windows)和检索增强生成(Retrieval-Augmented Generation ,RAG)两种技术。这两种技术各有千秋,选择哪种取决于具体的应用需求。下面,我们将探讨为何提升模型的上下文理解能力如此重要。

上下文(Context)的重要性:

让我们设想一下日常生活中的对话场景。要理解对方此刻的话语,我们需要回顾之前的对话内容。如若大语言模型(LLMs)缺乏必要的上下文理解能力,在这方面可能会“头疼”。本文认为上下文非常重要,有如下几点理由:

  • 能够保持对话的连贯性:在日常对话交谈中,如果有人突然提到“那只狗🐶”,我们能立即明白他指的是之前讨论过的那只狗🐶,而不是凭空出现的一只新狗。长上下文(Large context windows)或检索增强生成(RAG)技术能够帮助 LLMs 在交互过程中保持这种语义连贯性。
  • 理解复杂信息及其复杂关系:某些任务需要理解信息之间错综复杂的关系。比如,要准确总结一篇学术论文,就需要理解研究方法与实验结果之间的联系。长上下文或 RAG 使 LLMs 能够全面考虑所有相关内容,从而更深入地把握整体信息。
  • 减少"幻觉"现象:LLMs 在缺乏足够的上下文信息时,可能会自行编造数据或内容来填补认知空白,导致输出错误荒谬或毫无意义的信息。这种现象在人工智能领域被称为"幻觉(Hallucinations)"。长上下文或 RAG 技术通过提供更多的背景信息,能够有效地将 LLMs 的生成内容锚定在现实基础之上,使其生成内容更符合实际情况。

图片

01 长上下文(Large Context Windows)

长上下文让大语言模型(LLMs)在生成响应前能处理更多的文本信息。这说明 LLMs 可以一次性掌握大量的数据和信息,从而更好地把握全局,生成的模型响应也更能贴合对话主题。这对于那些需要深度理解对话历史或背景信息的任务尤其有用。不过,处理海量文本会带来较高的计算成本,同时也会影响处理速度。

02 利用缓存优化长上下文技术的好处

在处理长上下文带来的计算负担时,采用缓存策略是一种有效的成本优化途径。缓存机制会保存已处理过的上下文信息,以便在遇到类似提示词时能迅速调用,这一举措能够大幅缩短模型响应时间,尤其在执行重复性工作时效果显著。

实例解析:设想一个专门用于总结学术论文的大语言模型。借助缓存功能,LLMs 能够存储之前分析过的论文段落(如引言、实验方法等)。当接收到一篇新论文,且其结构与以往处理过的论文类似时,模型便能直接调用缓存中的相关上下文,仅需集中精力分析创新部分的内容(如实验结果和结论)。

不过,启用缓存也会给系统引入额外的复杂度。决策者必须权衡哪些信息值得缓存以及缓存期多长时间。此外,缓存是否有效直接取决于提示词的可预测性(predictability) 。若用户的提示词内容变化无常,缓存的效果可能会大打折扣。

03 RAG:检索增强生成技术

RAG 技术能够显著提升大语言模型(如 GPT-3 等)的准确度与可靠性。其核心在于将 LLMs 与外部知识库(如维基百科或企业内部文档)连接,使得模型在生成响应前,能够先从这些知识库中检索并使用最相关的信息。相较于单纯依赖缓存长上下文的方法,RAG 的优势如下:

  • 效率提升:RAG 只检索最相关的关键信息,因此速度更快,成本效益更高。
  • 准确性增强:聚焦于最相关的信息有效降低了大模型出现幻觉的风险,确保了叙述的事实更为准确。

然而,RAG 技术的引入虽开辟了一条新路径,却也伴随着较高的前期工作成本。RAG 系统的搭建与运维,需依托于一套复杂的检索机制,该机制依赖向量搜索(vector search)及嵌入(embeddings)技术,以确保 LLM 能够高效获取最为契合的信息资源。

04 RAG 对比长上下文:权衡与选择

长上下文(Large context windows)赋予 LLMs 直接处理海量历史信息的能力,尤其适用于需要进行深度分析的复杂任务。然而,这种全面覆盖的方式计算成本较高,执行效率相对低下。RAG 则另辟蹊径,利用检索系统,从庞大的知识库中精挑细选出最相关的信息片段供给 LLM 使用。此举不仅能够提速增效,还可以大幅节省成本,并有效降低出错的风险。但需要注意的是,RAG 的高效运行需仰仗一套完善的数据检索体系,且初期部署较为繁琐。综上所述,这个问题的最优解应基于决策者对深度分析能力、系统运行效率的要求。

决策指南概览:

  • 带缓存的长上下文:当面对需深度剖析的大数据集,并且提示词具有一定的可预测性,利于缓存机制发挥效能时,此选项值得考虑。
  • RAG:如若信奉效率至上,追求事实的准确性,或使用场景的提示词内容变化莫测,此时缓存机制的作用有限,则 RAG 可成为优选方案。

总体而言,理想的技术策略应紧密结合项目特性和可利用的资源数量。进行决策时,务必综合考虑使用成本、准确性、部署运维难度以及提示词内容的可预测性。希望本文能够帮助各位读者准确理解 RAG 技术与长上下文技术间的本质区别,敬请关注本博客,不要错过后续精彩内容哦~

Thanks for reading!

Priyanka Vergadia

topmate.io/pvergadia

Head of North America Developer Advocacy @Google | Author | Technical Storyteller | Cloud Computing & AI | bio.link/pvergadia

读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

资源分享

图片

大模型AGI学习包

图片

图片

资料目录

  1. 成长路线图&学习规划
  2. 配套视频教程
  3. 实战LLM
  4. 人工智能比赛资料
  5. AI人工智能必读书单
  6. 面试题合集

人工智能\大模型入门学习大礼包》,可以扫描下方二维码免费领取

1.成长路线图&学习规划

要学习一门新的技术,作为新手一定要先学习成长路线图方向不对,努力白费

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

图片

2.视频教程

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩

图片

3.LLM

大家最喜欢也是最关心的LLM(大语言模型)

图片

人工智能\大模型入门学习大礼包》,可以扫描下方二维码免费领取

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

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

相关文章

数据质量管理-可访问性管理

前情提要 根据GB/T 36344-2018《信息技术 数据质量评价指标》的标准文档,当前数据质量评价指标框架中包含6评价指标,在实际的数据治理过程中,存在一个关联性指标。7个指标中存在4个定性指标,3个定量指标; 定性指标&am…

【Windows】draw.io(免费的开源跨平台绘图软件)软件介绍

软件介绍 draw.io 是一款免费且易于使用的在线流程图绘图软件,后来更名为 diagrams.net。它最初作为一个基于 Web 的应用程序提供,支持用户创建各种类型的图表、流程图、网络图、组织结构图、UML 图等。它是完全免费的、强大的、专业的、易于使用的和高…

C++使用Poco库封装一个HTTP客户端类--Query参数

0x00 概述 我们使用Poco库的 Poco::Net::HTMLForm 类可以轻松实现表单数据的提交。 0x01 ApiPost提交表单数据 0x02 HttpClient类 #ifndef HTTPCLIENT_H #define HTTPCLIENT_H#include <string> #include <map> #include <Poco/URI.h> #include <Poco/N…

引领视觉基础模型新纪元! | 微软宣布开源Florence-2

01 模型介绍 &#x1f389;重大突破&#xff01;微软宣布开源Florence-2视觉基础模型&#xff0c;引领AI新纪元&#xff01;&#x1f680; Florence-2这一创新力作&#xff0c;以统一的提示为基础&#xff0c;跨越式地解决了计算机视觉与视觉语言领域的多样任务难题。从字幕生…

Hyper-V虚拟机固定IP地址(手把手教设置)

链接虚拟机修改网络配置文件 输入指令 sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0 然后 输入 按 i 键 再按回车 (enter) 进入编辑模式 修改配置(这几项)其中 IPADDR 就是你想给虚拟机固定的 IP 地址 多台的话只需要修改这个IP 就行其他不变 BOOTPROTO=static…

半导体划片研磨废水的处理效果

半导体划片研磨废水处理是一个复杂而关键的过程&#xff0c;因为这类废水中含有大量颗粒物、有机物、重金属等有害物质&#xff0c;具有浓度高、毒性大、难以处理等特点。以下是对半导体划片研磨废水处理过程的详细阐述&#xff0c;结合相关数字和信息进行归纳&#xff1a; 一、…

【Java集合类】ArrayList

方法 subList(int fromIndex, int toIndex) 可以看一下subList源码片段 public List<E> subList(int fromIndex, int toIndex) {subListRangeCheck(fromIndex, toIndex, size);return new SubList<>(this, fromIndex, toIndex);} private static class SubList…

nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链

一、nginx网络服务器&#xff1a; 1. nginx是开源的&#xff0c;是一款高性能&#xff0c;轻量级的web服务软件&#xff1b;稳定性高&#xff0c;而且版本迭代比较快&#xff1b;修复bug速度比较快&#xff0c;安全性高&#xff1b;消耗资源低&#xff0c;http的请求并发连接&…

My sql 安装,环境搭建

以下以MySQL 8.0.36为例。 一、下载软件 1.下载地址官网&#xff1a;https://www.mysql.com 2. 打开官网&#xff0c;点击DOWNLOADS 然后&#xff0c;点击 MySQL Community(GPL) Downloads 3. 点击 MySQL Community Server 4.点击Archives选择合适版本 5.选择后下载第二个…

bWAPP靶场安装

bWAPP安装 下载 git地址&#xff1a;https://github.com/raesene/bWAPP 百度网盘地址&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1Y-LvHxyW7SozGFtHoc9PKA 提取码&#xff1a;4tt8 –来自百度网盘超级会员V5的分享 phpstudy中打开根目录&#xff0c;并将下载的文…

【C++知识点总结全系列 (06)】:STL六大组件详细总结与分析- 配置器、容器、迭代器、适配器、算法和仿函数

STL六大组件目录 前言1、配置器(1)What(2)Why(3)HowA.调用new和delete实现内存分配与销毁B.STL Allocator (4)allocator类A.WhatB.HowC.allocator的算法 2、容器(1)What(2)Which&#xff08;有哪些容器&#xff09;(3)序列容器&#xff08;顺序容器&#xff09;A.WhichB.array&…

Unity编辑器工具---版本控制与自动化打包工具

Unity - 特殊文件夹【作用与是否会被打包到build中】 Unity编辑器工具—版本控制与自动化打包工具&#xff1a; 面板显示&#xff1a;工具包含一个面板&#xff0c;用于展示软件的不同版本信息。版本信息&#xff1a;面板上显示主版本号、当前版本号和子版本号。版本控制功能…

音视频开发35 FFmpeg 编码- 将YUV 和 pcm合成一个mp4文件

一 程序的目的 /*** *该程序的目的是: * 将 一个pcm文件 和 一个 yuv文件&#xff0c;合成为一个 0804_out.mp4文件 * pcm文件和yuv文件是从哪里来的呢&#xff1f;是从 sound_in_sync_test.mp4 文件中&#xff0c;使用ffmpeg命令 抽取出来的。 * 这样做的目的是为了对比前…

【C语言】文件的顺序读写

©作者:末央&#xff06; ©系列:C语言初阶(适合小白入门) ©说明:以凡人之笔墨&#xff0c;书写未来之大梦 目录 前言字符输入输出函数 - fgetc和fputc文本行输入输出函数 - fgets和fputs格式化输入输出函数 - fscanf和fprintf 前言 对文件数据的读写可以分为顺序…

【Elasticsearch】一、概述,安装

文章目录 概述全文搜索引擎概述ES&#xff08;7.x&#xff09; 安装ES&#xff08;Docker&#xff09;测试&#xff0c;是否启动成功 可视化工具配置中文 客户端Postman下载 概述 ES是开源的高扩展的分布式全文搜索引擎&#xff0c;实时的存储、检索数据&#xff1b;本身扩展性…

function-calling初体验

课程地址&#xff1a;https://learn.deeplearning.ai/courses/function-calling-and-data-extraction-with-llms/lesson/1/introduction github notebook地址&#xff1a;https://github.com/kingglory/LLMs-function-calling/tree/main Function-Calling 介绍 函数调用(Funct…

Linux Centos7部署Zookeeper

目录 一、下载zookeeper 二、单机部署 1、创建目录 2、解压 3、修改配置文件名 ​4、创建保存数据的文件夹 ​5、修改配置文件保存数据的地址 ​6、启动服务 7、api创建节点 一、下载zookeeper 地址&#xff1a;Index of /dist/zookeeper/zookeeper-3.5.7 (apache.org…

Python23 使用Tensorflow实现线性回归

TensorFlow 是一个开源的软件库&#xff0c;用于数值计算&#xff0c;特别适用于大规模的机器学习。它由 Google 的研究人员和工程师在 Google Brain 团队内部开发&#xff0c;并在 2015 年首次发布。TensorFlow 的核心是使用数据流图来组织计算&#xff0c;使得它可以轻松地利…

【Python画图-驯化seaborn】一文搞懂seaborn中的箱线图实践技巧

【Python画图-驯化seaborn】一文搞懂seaborn中的箱线图实践技巧 本次修炼方法请往下查看 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合&#xff0c;智慧小天地&#xff01; &#x1f387; 免费获取相关内容文档关注&a…

05 docker 镜像

目录 1. 镜像 2. 联合文件系统 3. docker镜像加载原理 4. 镜像分层 镜像分层的优势 5. 容器层 1. 镜像 镜像是一种轻量级、可执行的独立软件包&#xff0c;它包含运行某个软件所需的所有内容&#xff0c;我们把应用程序和配置依赖打包好行程一个可交付的运行环境&#xf…