生产中的 RAG:使你的生成式 AI 项目投入运营

news2024/11/28 5:45:34

作者:来自 Elastic Tim Brophy

检索增强生成 (RAG) 为组织提供了一个采用大型语言模型 (LLM) 的机会,即通过将生成式人工智能 (GenAI) 功能应用于其自己的专有数据。使用 RAG 可以降低固有风险,因为我们依赖受控数据集作为模型答案的基础,而不是依赖可能不可靠、与我们的用例无关或完全不正确的训练数据。但是,你必须不断管理 RAG 管道,以确保答案有根据且准确。本博客将探讨在生产中部署 RAG 功能的关键注意事项,并展示 Elastic Search AI 平台如何为你提供所需的洞察力,让你安心运行 RAG 管道。

定义 RAG 管道

典型的 RAG 实现包括将用户提供的问题连同附带的上下文一起发送到 LLM。上下文需要提供相关信息,以告知 LLM 的答案。上下文由搜索结果生成,搜索结果是通过对用户问题与向量存储的内容进行评估而返回的,以确保结果在语义上与问题相匹配。在 Elastic Search AI 平台的情况下,上下文也可以是混合搜索的结果,其中包括词汇搜索、文档过滤和访问控制规则。通过一次谨慎的动作执行混合搜索操作的能力,开发人员可以通过结合语义轴和词汇搜索轴的结果,为 LLM 构建尽可能相关的上下文。此外,过滤器和访问控制规则限制了将要搜索的数据语料库,以符合 RBAC 规则,既提高了性能,又维护了数据安全。

LLM 接收问题,解释上下文,然后给出答案,该答案通常是上下文的摘要或来自上下文的相关陈述的综合。问题和上下文的组合被称为提示(prompt),提示还为 LLM 提供了有关其角色的说明和定义其应如何回答的护栏。开发人员创建了一个称为提示模板的工件,该工件以逻辑方式将所有这些值组合在一起,可以重复使用和微调以确保正确的结果。

因此,RAG 实现可以看作是由以下元素组成的管道:

  1. 用户提供的问题
  2. 搜索生成的上下文
  3. 提示模板
  4. LLM 生成的答案

生产注意事项

在实施 RAG 管道时,需要考虑许多操作和性能注意事项,以确保提供的体验符合最终用户和在其应用程序中构建 LLM 功能的团队的期望。

  1. 与任何应用程序一样,需要跟踪指标,以确保 RAG 管道在 SLO 和 SLI 目标范围内运行。
  2. 问题和答案不应被丢弃,因为它们包含有关系统行为和用户偏好的宝贵信息。
  3. 成本应不断跟踪和审查。
  4. 需要持续评估 RAG 管道,以确保 LLM 响应准确,并为它们提供足够的背景信息来回答这些问题。

那么,究竟如何实现这一点?将 RAG 管道投入生产时需要考虑哪些模式和实践?可以理解,这是一个非常广泛的主题,但我们将从高层次介绍这些考虑因素,以鼓励进一步阅读和探索。

RAG 性能和监控

在构建 RAG 管道时,确定适合你用例的正确提示技术至关重要,因为它可能是真实而有价值的答案与误导性和令人沮丧的答案之间的区别。因此,快速开发需要对基础数据和基准测试框架有充分的了解,该框架可以客观地衡量 LLM 答案并严格根据事实对其进行测试。选择基准测试框架不仅依赖于了解哪些指标很重要,而且还依赖于了解这些指标需要如何衡量。一旦投入生产,记录所有 LLM 交互就成为 RAG 管道的强制性方面,以确保管理和控制数据点,例如成本、延迟和响应质量。

RAG 基准测试和评估

我们从基准测试和评估开始,因为这必须在交付生产之前进行,以减轻服务质量差或破坏性的风险。有许多基准测试框架可用,所有这些框架通常都围绕来自底层知识体系的问题和基本答案数据集进行调整,这些知识体系将用于 RAG 上下文。选择正确的框架归结为几个关键因素:

  1. 该框架应与你团队的技能、你的应用程序代码和你的组织策略兼容。这是一种跨职能集成,应与你的决策保持一致。例如,如果你选择专门利用本地托管的 LLM,那么框架应该适应这一点。
  2. 你需要灵活地选择对你来说很重要的评估指标。
  3. 生成的评估输出应该易于集成到你现有的可观察性或安全性工具中,因为 LLM 是它们所用应用程序的关键功能,不应被视为单独的系统。

这些问题/答案对代表对数据和用例的基本理解,并将用于评估整个管道的性能。重要的是,问题集应包含用户最有可能提出的相关问题,或者至少是用户最有可能提出的问题类型。答案不应是简单地从文档中剪切和粘贴,而应是一个或多个事实的总结,这些事实足以回答问题,因为这正是 LLM 可能在回答问题时生成的。

基准问题将通过 RAG 管道传递,并生成两个输出以告知任何评估指标:LLM 响应和上下文。在大多数情况下,除了测量答案的语义相似性之外,框架还会根据基准数据集中的答案评估 LLM 响应的准确性或正确性。还可以将答案与上下文进行比较,以确保其包含的任何陈述都可以基于问题得出的搜索结果。可以通过考虑基准、上下文和问题来计算答案的相关性,从而应用进一步的指标。

尽管 RAG 基准旨在出于功能原因衡量答案的质量,但实施预生产阶段可以显著降低幻觉、偏见甚至训练数据中毒的风险,因为基准数据集代表绝对真实并将突出显示 LLM 输出中的不规则之处。

RAG 日志记录

LLM 可能确实不会生成有关其如何生成内容的日志文件,但这并不意味着无法记录与 LLM 交互的宝贵细节。决定需要记录什么取决于对你的业务而言什么是重要的,但至少应该捕获以下数据:

  1. 用户提供的推动交互的问题(例如,我每年可以获得多少 PTO?)
  2. LLM 生成的答案(例如“...根据政策,你每年有权获得 23 天的 PTO,来源:人力资源政策,第 10 页。”)
  3. 提交给 LLM、第一次回复和 LLM 完成回复的时间戳。
  4. 提交和第一次响应之间的延迟
  5. LLM 模型名称、版本和提供商
  6. 调用时配置的 LLM 模型温度(用于调试幻觉)
  7. 端点或实例(用于区分生产和开发)

此外,你可能会发现以下字段很有用:

  1. 提示和答案的成本,以代币为单位衡量,并基于模型提供商提供的单位成本
  2. 正在促进的业务工作流程(客户支持、工程知识库等)
  3. 提交给 LLM 的提示(带或不带上下文,因为你可能希望将上下文提取到单独的字段中,这有助于调试或排除答案语气、幻觉和准确性故障。)
  4. LLM 响应的情绪(这可以通过运行情绪模型来实现)

即使在你的 RAG 管道达到生产状态之前,记录运营数据也至关重要,以消除任何潜在的盲点,充分管理成本和客户满意度,并验证基准测试中观察到的结果是否在现实世界中得到复制。

创建统一的 RAG 数据平台

新兴技术中最常见的模式之一是针对每个细微需求使用多种工具。单点解决方案往往能满足系统的一项需求,但需要系统所有者或架构师为其余需求寻找解决方案。这本身并不坏,因为试图满足太多不同的目标可能会导致无法完全满足其中任何一个目标。然而,当你考虑到数据是任何系统中最有价值的资产时,将数据集中到一个统一的平台确实会让你的最宝贵资产更易于使用和管理。当使用来自大型系统其他部分的数据提供的上下文来分析数据时,就会出现新的见解和意义。

适用于 RAG 的 Elastic Search AI 框架

Elastic 可以作为基础数据层,在单一平台上解决 RAG 管道的所有数据输入和输出问题,包括性能和监控框架生成的数据。下面是一个功能架构,代表了 Elastic 如何促进 RAG 管道的每个步骤。

Elastic Search AI 平台的独特之处在于,它能够通过利用以下功能满足管道的功能需求:

  1. Elastic 是用于 GenAI 上下文构建的最佳存储和检索引擎。可以在单个 API 端点内灵活地使用词汇和语义搜索功能,允许 RBAC 实施和复杂的重新排名功能,以实现有效的上下文窗口。
  2. Elastic 是全球无数项目和团队的事实标准日志记录平台,并作为 Elastic Observability 和 Elastic Security 解决方案的底层数据平台。添加 LLM 日志记录数据只需利用此本机功能即可。
  3. Elastic Search AI 平台能够托管将内容向量化所需的转换器模型,以便使其在语义上可搜索,而无需外部模型托管工具和服务。这是通过利用 Elastic 提供的 ELSER 稀疏向量模型以及启用自定义模型导入来实现的。
  4. Elastic 可以用作基准测试设置数据的内容存储,包括问题、答案和基本事实 - 允许使用与 RAG 管道相同的库来实现评估框架,从而进一步降低复杂性并确保测试框架与应用程序实现保持一致。
  5. Elastic 作为基准测试数据目标,可以进行细粒度分析和全面可视化结果。这些基准测试结果还可以与实时日志数据相结合,以表示整体管道健康状况并识别功能偏差,这可以进一步利用 Elastic 的警报功能来确保不会遗漏任何异常。
  6. 最后,Elastic 可以轻松汇总常见问题,以更好地告知基准测试配置,使其与现实世界数据紧密结合。鉴于基准测试实际上是一种回归活动,这一步对于确保其可信和相关至关重要。了解用户最常问的问题还可以缓存这些答案以获得即时响应,从而无需参考 LLM。

由于所有数据都记录在 Elastic 中,因此可视化、仪表板和警报的配置都简单且快捷,为你的团队提供了顺利且主动地运行管道所需的可视性。

结论

经过深思熟虑和深思熟虑地实施 RAG 可以获得很多好处,但如果不考虑 RAG 管道的持续管理生命周期,许多好处都可能被抵消。Elastic Search AI 平台简化了强大且安全的 RAG 管道的部署,支持 GenAI 的采用,同时最大限度地降低与这些早期技术相关的风险。请务必立即注册 Elastic Cloud 的免费试用版,以使用 Elastic Search AI 平台将你的 GenAI 想法尽快、轻松地投入生产。

准备好自己尝试了吗?开始免费试用。
希望将 RAG 构建到你的应用程序中?想要尝试使用向量数据库的不同 LLMs?
查看我们在 Github 上针对 LangChain、Cohere 等的示例笔记本,并立即加入 Elasticsearch Relevance Engine 培训。

原文:Retrieval Augmented Generation in production: Operationalize your GenAI project — Elastic Search Labs

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

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

相关文章

建筑八大员证报名一寸彩色照片要求及手机自拍方法解读

在建筑行业,八大员证的持有者是广受尊重的专业人士。然而,要成为一名合格的八大员,首先必须通过资格审核和报名流程。其中重要的一步就是提交一寸彩色照片,以确保个人信息准确无误。那么,你是否清楚报名时照片的要求以…

【Nacos 2.3.3支持Postgre SQL数据源配置】

Nacos 2.3.3支持Postgre SQL数据源配置 1、Nacos下载2、 插件下载:3、SQL脚本获取、nacos数据库创建、插件编译4、Nacos 集群搭建方式: 1、Nacos下载 下载地址: https://download.nacos.io/nacos-server/nacos-server-2.3.2.zip 或者自行在官…

sprintboot容器功能

容器 容器功能Spring注入组件的注解Component,Controller,Service,Repository案例演示 Configuration应用实例传统方式使用Configuration 注意事项和细节 Import应用实例 ConditionalConditional介绍应用实例 ImportResource应用实例 配置绑定…

图论(一)之概念介绍与图形#matlab

图论(一)之概念介绍与图形目录 前言 一、图论介绍 二、基本概念 2.1图的概念 2.2图形分类 2.3邻接矩阵 2.3.1无向图 2.3.2有向图 2.3.3有向赋权图 2.4出度(Outdegree) 2.5入度(Indegree) 3.四种…

【微信小程序开发实战项目】——如何去申请腾讯地图账号和在微信公众平台,配置request路径和添加地图插件

👨‍💻个人主页:开发者-曼亿点 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 曼亿点 原创 👨‍💻 收录于专栏&#xff1a…

Day03 链表概念与单向不循环链表的实现

目录 1、顺序表的优缺点 2、链式存储的线性表 3、单向不循环链表实现 1、顺序表的优缺点 顺序表的优点是: 由于顺序表数据元素的内存地址都是连续的,所以可以实现随机访问,而且不需要多余的信息来描述相关的数据,所以存储密度高。 顺序表的缺点是: 顺序表的数据在进行…

windows下的eclipse按Ctrl+Shift+F格式化代码不起作用的处理

1、先上张图: 上面Format:CtrlShiftF,按了以后不起作用。 2、这个快捷键不起作用的原因:可能是快捷键冲突了。 机器上装了Sougou输入法,将输入法切换为英文模式是起作用的。 那么应该就是这个原因了。 3、解决方法…

甄嬛传熹贵妃上户口:如果让他陪你过冬天,那朕能不能睡中间?贝叶斯模型推导爸爸去哪儿

关注微信公众号 数据分析螺丝钉 免费领取价值万元的python/java/商业分析/数据结构与算法学习资料 背景 《甄嬛传》是大家耳熟能详的宫廷剧,其中复杂的宫斗情节和深刻的人物刻画让人津津乐道。甄嬛因为与皇帝(四郎)闹翻了,去甘露寺待了一段时间&#x…

【数据结构】遍历二叉树(递归思想)-->赋源码

欢迎来到我的Blog,点击关注哦💕 前言 二叉树遍历是指按照一定的顺序访问二叉树中的每个节点,使得每个节点恰好被访问一次。遍历是二叉树上最重要的运算之一,是二叉树上进行其他运算的基础。 一、二叉树遍历概念 二叉树遍历分类 …

【机器学习】LightGBM: 优化机器学习的高效梯度提升决策树

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 LightGBM: 优化机器学习的高效梯度提升决策树引言一、LightGBM概览二、核心技术…

微服务开发与实战Day08 - Elasticsearch

一、初始Elasticsearch 高性能分布式搜索引擎 1. 认识和安装 1.1 认识 Lucene是一个Java语言的搜索引擎类库,是Apache公司的顶级项目,由DougCutting于1999年研发。官网地址:Apache Lucene - Welcome to Apache Lucene Lucene的优势&…

誉天教育近期开班计划(6月15日更新)

云计算HCIP 周末班 2024/6/15 田老师 售前IP-L3 周末班 2024/6/15 陈老师 RHCA442 晚班 2024/6/17邹老师 数通HCIE 晚班 2024/6/24阮老师 云计算HCIE直通车晚班 2024/6/25 曾老师 售前IT-L3 周末班 2024/6/29 伍老师 数通HCIP 晚班 2024/7/1杨老师 存储直通车 晚班 2024/7/1 高…

【ARMv8/ARMv9 硬件加速系列 3 -- SVE 指令语法及编译参数详细介绍】

文章目录 SVE 汇编语法SVE 单通道谓词SVE 测试代码 SVE 软件和库支持SVE 编译参数配置-marcharmv8-alseprofilememtagsve2-aessve2-bitpermcryptosve2sve2-sha3sve2-sm4 SVE 汇编语法 在介绍 SVE 汇编指令语法之前,先介绍下如何判断自己所使用的芯片是否实现了SVE功…

算法01 递推算法及相关问题详解【C++实现】

目录 递推的概念 训练:斐波那契数列 解析 参考代码 训练:上台阶 参考代码 训练:信封 解析 参考代码 递推的概念 递推是一种处理问题的重要方法。 递推通过对问题的分析,找到问题相邻项之间的关系(递推式&a…

践行国产化替代,优刻得私有云勇当先锋

编辑:阿冒 设计:沐由 阳泉,十万火急! 位于太行山西麓的山西省阳泉市,是一座历史悠久、底蕴深厚、资源丰富的名城,拥有超百万常住人口,国内生产总值在2022年成功跨越千亿元大关。然而&#xff0c…

leetcode 56合并区间

思路 合并就是首先应该按照left左边界排序,排完序以后,如果i的左边界小于等于i-1的右边界,说明有重合,此时这两个可以合并,右边界应该取最大值。 代码 排序 我是定义了一个类,存储左右边界,先将数组转化…

传输层udp和tcp协议格式

UDP协议 UDP协议端格式 udp的前八个字节是报头,后面部分就是有效载荷。而目的端口号就保证了udp向应用层交付的问题。 而针对于报头和有效载荷分离是根据固定八字结的报头长度。数据的长度就是取决于报头中udp长度字段的大小来确定udp报文长度,因此也可…

【Matlab编程学习】 | matlab语言编程基础:常用图形绘制基础学习

🎩 欢迎来到技术探索的奇幻世界👨‍💻 📜 个人主页:一伦明悦-CSDN博客 ✍🏻 作者简介: C软件开发、Python机器学习爱好者 🗣️ 互动与支持:💬评论 &…

C++面向对象程序设计 - 函数库

C语言程序中各种功能基本上都是由函数来实现的,在C语言的发展过程中建立了功能丰富的函数库,C从C语言继承了些函数功能。如果要用函数库中的函数,就必须在程序文件中包含文件中有关的头文件,在不同的头文件中,包含了不…

解决Unity-2020 安卓异形屏黑边

背景 Unity 2020.3.17 版本开发的游戏,打apk包,发现两个问题 如图下午所示,实体白色导航栏,阻挡了整个安卓UI界面,难看还影响美观。 安卓系统 12-13 版本手机,异形屏。一侧安全区黑边遮挡,占空间…