Elasticsearch:什么是检索增强生成 - RAG?

news2024/10/6 18:34:54

在人工智能的动态格局中,检索增强生成(Retrieval Augmented Generation - RAG)已经成为游戏规则的改变者,彻底改变了我们生成文本和与文本交互的方式。 RAG 使用大型语言模型 (LLMs) 等工具将信息检索的能力与自然语言生成无缝结合起来,为内容创建提供了一种变革性的方法。

起源与演变

在 2020 年的关键论文中,Facebook 研究人员解决了大型预训练语言模型的局限性。 他们引入了 RAG,这是一种结合了两种类型记忆的方法:一种类似于模型的先验知识,另一种类似于搜索引擎,使其能够更智能地访问和使用信息。 RAG 令人印象深刻的是,它在需要大量知识的任务(例如回答问题)中表现优于其他模型,并且生成了更准确和多样化的文本。 这一突破已得到研究人员和从业者的认可和扩展,是构建生成式人工智能(Generative AI)应用程序的强大工具。

在这篇文章中,我们将深入研究 RAG 的世界。 阅读完本书后,你将对 RAG、其演变历程及其多样化的现实应用有更好的了解。 我们的目标是阐明 RAG 如何增强人工智能系统的能力,增强自然语言理解和生成能力,最终使它们能够制作上下文相关且信息丰富的内容。

无论你是经验丰富的 AI 专家还是该领域的新手,本指南都将为你提供利用 RAG 功能并保持在 AI 创新前沿所需的知识。

RAG 简介

RAG 一直在自然语言处理 (NLP) 领域掀起波澜。 RAG 的核心是一个混合框架,它集成了检索模型和生成模型,生成的文本不仅上下文准确,而且信息丰富。

RAG 在 NLP 中的重要性怎么强调都不为过。 传统的语言模型,尤其是早期的语言模型,可以根据训练的数据生成文本,但通常缺乏在生成过程中获取额外的特定信息的能力。 RAG 有效地填补了这一空白,在检索模型的广泛功能和生成模型(例如 LLMs)的文本生成过程之间架起了一座桥梁。 通过这样做,RAG 突破了 NLP 的可能性界限,使其成为问答、总结等任务不可或缺的工具。

检索和生成模型的协同作用

尽管我们将在下面深入探讨更多技术细节,但值得注意的是 RAG 如何将检索模型与生成模型结合起来。 简而言之,检索模型充当专门的 “图书馆员”,从数据库或文档语料库中提取相关信息。 然后,这些信息被输入生成模型(generative model),该模型充当 “作家”,根据检索到的数据制作连贯且内容丰富的文本。 两者协同工作,提供的答案不仅准确,而且上下文丰富。 

关键组件和优点

RAG 框架有两个主要组件:检索模型和生成模型。 这些组件可以根据应用进行不同的配置和微调。 它们共同使 RAG 模型成为极其灵活且强大的工具。

至于优点,RAG 的用途非常广泛。 它可用于各种应用,例如实时新闻摘要、自动化客户服务,甚至用于需要理解和集成多个来源信息的复杂研究任务。 此外,它的适应性使其能够融入不同类型的系统中,使其成为现代 NLP 任务中的宝贵资产。

总之,检索增强生成通过利用检索模型和生成模型的优势,正在彻底改变 NLP。 无论你是在学术、工业还是创业领域,了解 RAG 对于任何想要充分利用 NLP 力量的人来说都是至关重要的。

RAG 的关键组件

了解 RAG 的内部工作原理需要深入研究它的两个基本元素:检索模型和生成模型。 这两个组件是 RAG 卓越的获取、合成和生成信息丰富文本能力的基石。 让我们来分析一下每个模型带来的好处以及它们在 RAG 框架中带来的协同作用。

检索模型

检索模型充当 RAG 架构中的信息看门人。 它们的主要功能是搜索大量数据以查找可用于文本生成的相关信息。 将他们视为专业的图书馆员,当你提出问题时,他们确切地知道要从 “书架”上取下哪些 “书”。 这些模型使用算法来排序和选择最相关的数据,提供了一种将外部知识引入文本生成过程的方法。 通过这样做,检索模型为更明智、上下文丰富的语言生成奠定了基础,从而提升了传统语言模型的能力。

检索模型可以通过多种机制来实现。 最常见的技术之一是使用向量嵌入和向量搜索,但也常用的是采用 BM25(最佳匹配 25)和 TF-IDF(词频 - 逆文档频率)等技术的文档索引数据库。

生成模型

一旦检索模型找到了适当的信息,生成模型就开始发挥作用。 这些模型充当创意作家,将检索到的信息合成为连贯且上下文相关的文本。 生成模型通常建立在 LLMs 的基础上,能够创建语法正确、语义有意义且与初始查询或提示一致的文本。 他们采用检索模型选择的原始数据,并赋予其叙述结构,使信息易于理解和操作。 在 RAG 框架中,生成模型是拼图的最后一块,提供我们与之交互的文本输出。

为生成式人工智能制作即时三明治

为什么使用 RAG?

在不断发展的 NLP 领域,人们一直在寻求更智能、上下文感知的系统。 这就是 RAG 发挥作用的地方,它解决了传统生成模型的一些局限性。 那么,是什么推动了 RAG 的日益普及呢?

首先,RAG 提供了一种生成文本的解决方案,该文本不仅流畅,而且事实准确且信息丰富。 通过将检索模型与生成模型相结合,RAG 确保其生成的文本既消息灵通又编写良好。 检索模型带来 “什么” —— 事实内容 —— 而生成模型则贡献 “如何” —— 将这些事实组成连贯且有意义的语言的艺术。

其次,RAG 的双重性质在需要外部知识或上下文理解的任务中提供了固有的优势。 例如,在问答系统中,传统的生成模型可能难以提供精确的答案。 相比之下,RAG 可以通过其检索组件提取实时信息,使其响应更加准确和详细。

最后,需要多步骤推理或综合各种来源信息的场景才是 RAG 真正的亮点。 想想法律研究、科学文献评论,甚至复杂的客户服务查询。 RAG 搜索、选择和综合信息的能力使其在处理此类复杂任务方面无与伦比。

总之,RAG 的混合架构提供了卓越的文本生成功能,使其成为需要深度、上下文和事实准确性的应用程序的理想选择。

与 LLMs 一起探索 RAG 的技术实施

如果 RAG 的概念激起了你的兴趣,那么深入研究其技术实现将提供宝贵的见解。 RAG 以 LLMs 为骨干,采用从数据源到最终输出的复杂流程。 让我们层层揭开,揭开 RAG 的机制,并了解它如何利用 LLM 来执行其强大的检索和生成功能。

源数据

任何 RAG 系统的起点都是其源数据,通常由大量文本文档、网站或数据库组成。 这些数据充当检索模型扫描以查找相关信息的知识库。 拥有多样化、准确和高质量的源数据对于实现最佳功能至关重要。 管理和减少源数据中的冗余也很重要 - 例如,版本 1 和版本 1.1 之间的软件文档几乎彼此完全相同。

数据分块

在检索模型可以搜索数据之前,通常会将其划分为可管理的 “块 (chunk)” 或段。 这种分块过程确保系统可以有效地扫描数据并能够快速检索相关内容。 有效的分块策略可以极大地提高模型的速度和准确性:文档可能是它自己的块,但它也可以分为章节/部分、段落、句子,甚至只是 “单词块”。 请记住:目标是能够为生成模型提供增强其生成的信息。可以参考文章 “使用 LangChain 和 Elasticsearch 对私人数据进行人工智能搜索” 如何进行分块的。

文本到矢量的转换(嵌入)

下一步涉及将文本数据转换为模型可以轻松使用的格式。 使用向量数据库时,这意味着通过称为 “嵌入” 的过程将文本转换为数学向量。 这些几乎总是使用机器学习技术构建的复杂软件模型生成的。 这些向量封装了文本的语义和上下文,使检索模型更容易识别相关数据点。 许多嵌入模型可以进行微调以创建良好的语义匹配; 例如,Elasticsearch 可以很方便地将文本数据转换为向量。请参阅文章 “Elasticsearch:如何部署 NLP:文本嵌入和向量搜索”。

源数据和嵌入之间的链接

源数据和嵌入之间的链接是 RAG 架构的关键。 它们之间精心策划的匹配可确保检索模型获取最相关的信息,从而通知生成模型生成有意义且准确的文本。 从本质上讲,这种链接促进了检索组件和生成组件之间的无缝集成,使 RAG 模型成为一个统一的系统。

RAG 的示例和应用

RAG 拥有多种应用程序,跨越需要复杂 NLP 功能的多个领域。 其将检索和生成组件相结合的独特方法不仅使其有别于传统模型,而且还为无数 NLP 任务提供了全面的解决方案。 以下是一些引人注目的示例和应用程序,展示了 RAG 的多功能性。

文字摘要

如前所述,RAG 的杰出应用之一是文本摘要。 想象一下一个人工智能驱动的新闻聚合平台,它不仅可以获取最新新闻,还可以将复杂的文章总结为易于理解的片段。 通过利用 RAG,该平台可以生成简洁、连贯且与上下文相关的摘要,从而提供丰富的用户体验。

问答系统

RAG 在问答系统方面表现出了非凡的能力。 传统上,当查询需要深入了解多个文档或数据集时,QA 模型可能会失败。 然而,RAG 可以扫描广泛的语料库来检索最相关的信息并制定详细、准确的答案。 这使其成为为客户服务应用程序构建智能聊天机器人不可或缺的工具。

内容生成

在内容生成领域,RAG 提供了前所未有的灵活性。 无论是自动生成电子邮件、制作社交媒体帖子,甚至编写代码,RAG 的检索和生成双重方法都确保输出不仅语法正确,而且具有丰富的上下文和相关性。

应对 NLP 挑战

RAG 的架构使其能够应对从情感分析到机器翻译的各种 NLP 挑战。 它理解上下文、分析大型数据集和生成有意义的输出的能力使其成为任何依赖于语言理解的应用程序的基石技术。

要开始构建具有这些功能的应用程序,你可以详细阅读文章 

  • ChatGPT 和 Elasticsearch:OpenAI 遇见私有数据(一)
  • ChatGPT 和 Elasticsearch:分面、过滤和更多上下文

这些例子只是触及了表面。 RAG 的应用仅受我们的想象力和 NLP 领域持续呈现的挑战的限制。

RAG 的潜在挑战和局限性

尽管 RAG 具有诸多优势,但它也存在一些挑战和限制。 最明显的缺点之一是模型的复杂性。 鉴于 RAG 结合了检索和生成组件,整体架构变得更加复杂,需要更多的计算能力,并使调试更加复杂。

另一个困难在于数据准备:提供干净、非冗余的文本,然后开发和测试一种将文本分块为对生成模型有用的片段的方法,这并不是一项简单的活动。 完成所有这些工作后,你必须找到一个在潜在的大量且多样化的信息中表现良好的嵌入模型!

LLMs 通常需要 prompt 的工程设计 —— 虽然 RAG 能够更好地为生成模型提供高质量的检索信息,但该信息通常需要正确构建,以便 LLMs 能够生成高质量的响应。

最后,还有性能权衡。 RAG 的双重性质(检索然后生成文本)可能会增加实时应用程序中的延迟。 必须决定如何平衡检索深度和响应速度,尤其是在时间敏感的情况下。

RAG 实施的最佳实践

当冒险进入 RAG 领域时,从业者必须应对复杂的环境,以确保有效实施。 下面,我们概述了一些关键的最佳实践,作为通过 RAG 优化 LLMs 能力的指南。

数据准备

成功实施 RAG 的基石是数据质量。 必须投入时间和精力进行数据清理和预处理,以实现最佳模型性能。 这需要文本规范化,其中涉及标准化文本格式以及实体识别和解析,这有助于模型识别文本中的关键元素并将其置于上下文中。 此外,消除不相关或敏感信息(例如个人身份信息 (PII))对于符合隐私标准至关重要。

定期更新

RAG 依靠实时或频繁更新的信息而蓬勃发展。 建立强大的数据管道,允许定期更新数据源。 这些更新的频率可以从每天到每季度不等,具体取决于你的具体使用案例。 强烈建议使用自动化工作流程来处理此过程。 开源 Langstream 等框架可以将流媒体与嵌入模型结合起来,使这项任务变得更容易。

输出评估

这可能需要一个领域专家小组仔细审查模型输出的样本集。

连续的提高

人工智能的世界在不断发展,持续改进不仅是一种理想,而且是一种必然。 这可能意味着任何事情,从更新训练数据、修改模型参数,甚至根据最新的研究和性能指标调整架构设置。

端到端集成

为了获得流畅的操作体验,将 RAG 工作流程集成到现有的 MLOps 协议中至关重要。 这包括遵循持续集成和持续部署 (CI/CD) 方面的最佳实践、实施强大的监控系统以及进行定期模型审核。

通过遵循这些最佳实践,你不仅可以优化 RAG 模型的性能,还可以使其与更广泛的机器学习和数据管理生态系统保持一致。 这种整体方法可确保吗从 RAG 实施中获得最大效用。

使用 Elasticsearch 拥抱 RAG

RAG 是 NLP 领域的一项关键创新,它集成了检索模型和生成模型的功能,以生成连贯、上下文丰富的文本。

RAG 将检索模型(如我们上面所描述的)与生成模型相结合,检索模型充当 “图书馆员”,扫描大型数据库以获取相关信息,生成模型充当 “作家”,将这些信息合成为与任务更相关的文本。 它用途广泛,适用于实时新闻摘要、自动化客户服务和复杂研究任务等多种领域。

RAG 需要检索模型,例如跨嵌入的向量搜索,与通常基于 LLMs 构建的生成模型相结合,该模型能够将检索到的信息合成为有用的响应。

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

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

相关文章

LLVM(5)ORC实例分析

ORC实例总结 总结 因为API茫茫多,逻辑上的一些概念需要搞清,编码时会容易很多。JIT的运行实体使用LLVMOrcCreateLLJIT可以创建出来,逻辑上的JIT实例。JIT实例需要加入运行库(依赖库)和用户定义的context(…

HDMI协议介绍(五)--Audio

基础知识 I2S(inter-IC sound bus)飞利浦公司制定的标准,既规定了硬件接口规范,也规定了数字音频数据格式。 硬件接口规范 I2S接口有3个主要信号: 时钟信号 Serial Clock 串行时钟SCK,也叫位时钟(BCLK)&…

autohotkey 记录

https://www.autohotkey.com/ 记录 https://www.autohotkey.com/docs/v2/ https://www.autohotkey.com/docs/v2/lib/Send.htm https://www.autohotkey.com/boards/ #z::Run "https://www.autohotkey.com" ; WinZ #n::Run "mspaint" ; Winn^!n:: ; C…

【香橙派-OpenCV-Torch-dlib】TF损坏变成RAW格式解决方案及python环境配置

前言 本文将介绍在香橙派(Orange Pi)开发板上进行软件配置和环境搭建的详细步骤,以便运行Python应用程序。这涵盖了以下主要内容: 获取所需软件:提供了香橙派操作系统和balenaEtcher工具的下载链接,以确保…

Lumos-az/MiniSQL阅读笔记

文章目录 处理SQL创建创建表RecordManager部分CatalogManager部分 创建索引IndexManager::createIndex部分API::createNewIndex部分CatalogManager::createIndex部分 插入删除删除表删除记录? 查询B树gif演示B树增删:插入:删除: 项目源码&am…

Python字典全解析:从基础到高级应用

更多资料获取 📚 个人网站:涛哥聊Python 字典是一种强大而多才多艺的数据类型,它以键-值对的形式储存信息,让我们能够以惊人的效率处理和管理数据。 字典能够将键和值关联在一起,使得数据的存储和检索变得非常高效。…

信息系统项目管理师第四版学习笔记——项目整合管理

管理基础 项目整合管理由项目经理负责,项目经理负责整合所有其他知识领域的成果,并掌握项目总体情况。项目整合管理的责任不能被授权或转移,项目经理必须对整个项目承担最终责任。 项目管理过程中,会使用并产生两大类文件&#…

git常用命令和开发常用场景

git命令 git init 创建一个空的git仓库或者重新初始化已有仓库 git clone [url] 将存储库克隆到新目录 git add 添加内容到索引 git status 显示工作树状态 git commit -m "" 记录仓库的修改 git reset 重置当前HEAD到指定的状态 git reset –-soft:…

vmware虚拟机启动、使用ubuntu问题

安装Ubuntu时,无法连接虚拟设备sata0:1,因为主机上没有相应的设备 安装Ubuntu时,无法连接虚拟设备sata0:1,因为主机上没有相应的设备_无法连接虚拟设备 sata0:1,因为主机上没有相应的设备-CSDN博客 无法连接虚拟设备 sata0:1,因…

AI视频监控平台EasyCVR接入海康SDK出现异常,该如何解决?

安防监控系统/视频集中存储/云存储/视频监控管理平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,实现视频资源的鉴权管理、按需调阅、全网分发、智能分析等。 有用户反馈,在使用视频监控系统EasyCVR接入…

Android NFC开发详解:NFC读卡实例解析及总结

文章目录 前言一、什么是NFC?二、基础知识1.什么是NDEF?2.NFC技术的操作模式3.标签的技术类型4.实现方式的分类5.流程三、获取标签内容1.检查环境2.获取NFC标签2.1 Manifest中注册的方式获取Tag2.1 前台Activity捕获的方式获取Tag四、解析标签数据1. M1…

笔记37:全卷积网络FCN结构详解

本地笔记:D:\work_file\DeepLearning_Learning\03_个人笔记\FCN学习 a a a a a a a a a a a a a a a a a a a a a a a

五眼联盟指的是什么?台湾社会中的“特助”指的是什么?计算机组成原理人工智能

目录 五眼联盟指的是什么? 台湾社会中的“特助”指的是什么? 计算机组成原理 人工智能 落土八分命 「一部悲劇用喜劇呈現,那才是真正的悲劇。」 那个声音到底是什么呢? 被困在了大佛中 五眼联盟指的是什么? 五…

该选择什么行情时做上证50ETF期权?

期权交易概述 上证50ETF期权是基于上海证券交易所上证50ETF基金而衍生的金融衍生品,作为金融市场的重要工具,为投资者提供了丰富多样的交易机会,下文介绍该选择什么行情时做上证50ETF期权?本文来自:期权酱 随着全球经济的不断发展和资本市场的…

2024年研究生网上报名各类问题类似参考解答系列之—社保类疑问

研究生网上报名的流程看似简单,但由于考生众多,情况各异,也会出现各类在政策中并不能直接找到答案的问题。杭州达立易考教育通过2023届研究生网报过程中考生所反映的一些问题以及官方给予的参考答案和解决思路,帮助大家做个梳理&a…

css 写带三角形的对话框,空心的三角形边框

首先,我们要会先实现一个小三角形; 思路:利用元素的 border 属性,将其三个方向的 border-color 值设为透明色(或者和其父元素的背景色一致,形成视觉差,俗称障眼法),剩下…

C400/A8/1/1/1/00 MAX-4/11/03/128/99/1/0/00

C400/A8/1/1/1/00 MAX-4/11/03/128/99/1/0/00 MakerBot CloudPrint简化了3D打印工作流程,提高了生产率,同时减少了项目之间的打印机停机时间。主要特性包括: 打印准备:用户可以直接从浏览器切片和准备3D打印。全新的全功能打印准备视图允许轻松定位和预…

vue js 实现页面在浏览器全屏切换

需求&#xff1a; 在浏览器中点击按钮实现页面的全屏与非全屏的切换。 如图&#xff1a; 全屏前&#xff1a; 全屏后&#xff1a; 具体实现代码如下&#xff1a; html&#xff1a; <template><div class"development-history" id"echarts-wrap&quo…

vscode 调试使用 make 编译的项目

1、首先点击运行 --> 启动调试&#xff1a; 2、选择g或gcc生成和调试活动文件&#xff1a; 3、出现下面提示是正常的&#xff0c;点击仍要调试&#xff1a; 点击打开“launch.json”&#xff1a; 4、此时会在项目工作目录下生成tsak.josn和launch.json文件&#xff1a; 如…

支持多种格式照片处理软件Lightroom Classic 2022 mac中文功能特点

Lightroom Classic 2022 mac是一款专业级数字图像处理软件&#xff0c;主要用于数字照片的后期处理和管理。它提供了丰富的工具和功能&#xff0c;可以帮助用户对照片进行调整、修饰、管理和分享。 Lightroom Classic 2022 mac软件功能和特点 RAW格式支持&#xff1a;Lightroo…