超越 RAG 基础:AI 应用的高级策略

作者:来自  Elastic Elastic Platform Team

我们最近与 Cohere 举办的虚拟活动深入探讨了检索增强生成 (retrieval augmented generation - RAG) 的世界,重点讨论了在概念验证阶段之后构建 RAG 应用程序的关键注意事项。我们的演讲者是 Elastic 的首席解决方案架构师 Lily Adler 和 Cohere 的高级产品经理 Maxime Voisin,他们就这一不断发展的自然语言处理 (natural language processing - NLP) 领域的挑战、解决方案和最佳实践分享了宝贵的见解。

为什么要构建一堆解决方案来补充大型语言模型?

大型语言模型 (Large language models - LLM) 功能强大,但远非完美。它们经常会犯一些荒谬的错误,例如建议在披萨上涂胶水或吃石头 —— 这些错误源于它们的训练数据,没有内在的逻辑层。这就是 RAG 的作用所在,它增加了一个关键的控制层和上下文,以帮助从 LLM 中得出响应。RAG 的全部目的是将相关信息检索系统与 LLMs 集成,以增强文本生成。通过将 LLMs 置于上下文相关数据中,RAG 不仅可以提高响应准确性,而且在降低成本和总体控制方面也具有显著优势。它有助于利用外部知识来源,使 AI 输出更加可靠和相关。

你的 RAG 的好坏取决于你的检索引擎。没有灵丹妙药可以让它变得完美。但有一些最佳实践。

- Maxime Voisin,Cohere 高级产品经理 (RAG)

了解 RAG 架构

基本的 RAG 架构从用户问题开始,使用向量数据库检索相关数据,例如文档、图像和音频。然后,这些数据为 LLM 生成更准确的响应提供了必要的背景信息。

但是,高级 RAG 设置涉及多个层,每个层都发挥着关键作用:

  • 数据层:确定信息的类型(结构化或非结构化)和存储。有效的数据管理对于高质量的信息检索至关重要。
  • 模型层:结合基础 LLM 和嵌入模型。微调这些模型对于处理特定任务和提高文本生成的性能至关重要。
  • 应用层:管理检索、提示和应用程序逻辑,确保将相关文档无缝集成到工作流中。
  • 分析和部署层:确保解决方案适合用途并高效部署。持续分析有助于改进模型性能并适应新数据。

战略数据层管理

有效的 RAG 解决方案始于对数据格局的彻底了解。在处理图像或文档等非结构化数据或数据库等结构化数据时,强大的分块策略必不可少:

  • 大块与小块:平衡上下文丰富性和精确性。大块提供更多上下文,但可能会降低精确度,而小块更精确,但可能缺乏完整的信息。
  • 标记重叠:确保各个块之间的上下文连续,这有助于维持检索到的信息的一致性。
  • 折叠相关块:保持精确度,同时始终引用来源进行验证,确保所提供信息的可靠性。

安全和法律考虑也至关重要。必须谨慎管理访问控制机制(LDAP、Active Directory)和隐私问题,例如使用命名实体识别编辑敏感信息,以确保合规性和用户信任。这些措施对于防止数据泄露和未经授权访问敏感信息至关重要。

评估模型层

使用人工标记的数据集和适当的指标选择(召回率与精确度)是有效信息检索的基础。此外,成本和速度也是关键因素,需要在以下要素之间进行权衡:

  • 召回率:确保检索到所有相关文档。高召回率在法律或合规场景中至关重要,因为缺少相关信息可能会产生严重后果。
  • 精确度:确保检索到的文档与查询高度相关。高精度在消费者应用中很重要,可以避免用户沮丧。

有效微调 LLMs 对于优化这些指标和提高 RAG 系统的整体性能至关重要。

解决生成模型中的挑战

为了提高生成模型的可验证性并减少幻觉,请使用提供引用的模型,选择幻觉率较低的模型,并提高上下文窗口利用率。这将增强生成文本的连贯性。此外,专门针对 RAG 应用训练的模型可以显著降低不准确的可能性并提高系统的整体可靠性。

LLMs 会犯错,人类也会犯错,不过 LLM 会犯一些更愚蠢的错误,因为 LLM 没有那层逻辑。

- Lily Alder,Elastic 首席解决方案架构师

观看网络研讨会

高级 RAG 技术

  • 并行查询:使用并行搜索查询处理多部分问题可显著提高 RAG 系统的响应准确性,使其能够熟练处理复杂的用户请求。此技术使系统能够同时分解和处理查询的不同部分,从而确保全面准确的响应。
  • 带工具的 RAG:通过集成工具来处理复杂数据类型(例如电子表格和 SaaS 应用程序)来扩展 RAG 功能,为工作场所助手等 AI 应用程序开辟了新的可能性。这种整合使 RAG 系统能够与外部知识源交互,提供更全面的答案。例如,查询数据库或电子表格以提供数据驱动的响应可以增强系统在业务和生产力应用程序中的实用性。
  • Agentic RAG:为 RAG 系统配备 Agentic 功能可实现顺序推理和动态规划,使其能够应对更复杂的查询。 Agentic RAG 系统可以利用多种工具并根据收集的结果调整计划。这种灵活性允许更复杂的问题解决能力,并可以处理需要多个步骤和逻辑推理的复杂任务。

大规模部署检索增强生成

扩展 RAG 解决方案涉及解决三个主要领域:

  1. 成本管理:选择高效模型并优化向量搜索数据库以有效控制成本。成本分析和定期监控有助于确定需要优化的领域,确保解决方案保持成本效益。
  2. 安全性和可靠性:实施灾难恢复、服务级别目标,并采用站点可靠性工程 (SRE) 方法以确保强大的基础设施。这些措施有助于保持正常运行时间和可靠性,这对于生产环境至关重要。
  3. 持续分析:利用可观察性工具来监控和评估 LLM 响应,适应变化并确保一致的性能。持续评估有助于保持信息检索的质量并适应任何不断变化的需求。

实用的实施策略

LangChain、LlamaIndex、Autogen 和 Cohere 的 API 等多种工具和框架提供了开箱即用的解决方案,可有效实施高级 RAG 系统。利用这些工具可以帮助你避免从头开始,加快部署速度并减少开销。它们为信息检索和自然语言处理任务提供了预构建的组件,从而实现了更快、更可靠的实施。

例如,LangChain 可以通过链接不同的流程来帮助构建复杂的工作流程,而 LlamaIndex 则提供了高效的索引解决方案以实现快速检索。另一方面,Autogen 通过提供一系列预配置的设置和模板来简化响应的生成。

协作和资源

Elastic 和 Cohere 一直处于信息检索和 RAG 研究与开发的前沿。以下是深入了解 RAG 的方法:

  • 观看完整的网络研讨会:超越 RAG 基础知识:实施 RAG 的策略和最佳实践。
  • 使用 AI Playground 测试最新的 AI 搜索功能,这是一个免费的动手实验室,涵盖如何构建 RAG 系统。
  • 如需进一步阅读和动手研讨会,请访问 Elastic Search Labs。此资源提供与各种 RAG 用例相关的宝贵信息、教程和代码示例,包括将 Elastic 与 Cohere 结合使用的教程。
  • 开始免费试用,开始使用搜索 AI 构建应用程序。

通过了解 RAG 的复杂性并实施自然语言处理的最佳实践,你可以构建强大的 AI 应用程序,利用外部知识源获得更准确、更可靠的响应。无论你专注于简单的 RAG 系统还是更高级的实现,目标都是创建可扩展、经济高效并通过精确的信息检索和文本生成提供价值的解决方案。

Elastic AI 生态系统

Cohere 是 Elastic AI 生态系统中的重要合作伙伴,它为开发人员提供来自业界领先 AI 公司可信网络的预构建 Elasticsearch 向量数据库集成,从而实现对跨 AI 模型、云基础设施、MLOps 框架、数据准备和提取平台以及 AI 安全和运营的 GenAI 应用程序关键组件的无缝访问。

这些集成可帮助开发人员:

  • 通过 RAG 提供更相关的体验
  • 准备和提取来自多个来源的数据
  • 试验和评估 AI 模型
  • 利用 GenAI 开发框架
  • 观察并安全部署 AI 应用程序

在这篇博文中,我们可能使用或提及了第三方生成式 AI 工具,这些工具由其各自的所有者拥有和运营。Elastic 对第三方工具没有任何控制权,我们对其内容、操作或使用不承担任何责任,也不对吧使用此类工具可能产生的任何损失或损害承担任何责任。在使用 AI 工具处理个人、敏感或机密信息时,请谨慎行事。你提交的任何数据都可能用于 AI 培训或其他目的。我们无法保证你提供的信息将得到安全或保密。在使用任何生成式 AI 工具之前,你应该熟悉其隐私惯例和使用条款。

Elastic、Elasticsearch、ESRE、Elasticsearch Relevance Engine 和相关标志是 Elasticsearch N.V. 在美国和其他国家/地区的商标、徽标或注册商标。所有其他公司和产品名称均为其各自所有者的商标、徽标或注册商标。

原文:Beyond RAG Basics: Advanced strategies for AI applications | Elastic Blog

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

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

相关文章

音频开发中常见的知识体系

在 Linux 系统中,/dev/snd 目录包含与声音设备相关的文件。每个文件代表系统中的一部分音频硬件或音频控制接口。以下是你列出的文件及其含义: 一.基本术语 样本长度(sample):样本是记录音频数据最基本的单位,计算机对每个通道采…

修改ubuntu apt 源及apt 使用

视频教程:修改ubuntu apt 源和apt 使用方法_哔哩哔哩_bilibili 1 修改apt源 1.1 获取阿里云ubuntu apt 源 https://developer.aliyun.com/mirror/ubuntu?spma2c6h.13651102.0.0.3e221b11mqqLBC 1.2 修改apt 源 vim /etc/apt/sources.list deb https://mirrors.aliyun.com/ub…

贪心算法 part01

class Solution { public:int maxSubArray(vector<int>& nums) {int result INT32_MIN;int count 0;for (int i 0; i < nums.size(); i) {count nums[i];if (count > result) { // 取区间累计的最大值&#xff08;相当于不断确定最大子序终止位置&#xff…

Ubuntu 安装texstudio sty与texlive

手动安装需要的包 访问CTAN网站&#xff08;Comprehensive TeX Archive Network&#xff09;并下载enumitem宏包&#xff1a; enumitem CTAN页面下载后&#xff0c;将宏包解压到/usr/share/texmf/tex/latex/下。 可打开texstudio/帮助/宏包帮助下载。 如果不想手动安装一个个…

Moretl安全日志采集工具

永久免费: 至Gitee下载 使用教程: Moretl使用说明 使用咨询: 用途 定时全量或增量采集工控机,电脑文件或日志. 优势 开箱即用: 解压直接运行.不需额外下载.管理设备: 后台统一管理客户端.无人值守: 客户端自启动,自更新.稳定安全: 架构简单,兼容性好,通过授权控制访问. 架…

计算机网络信息系统安全问题及解决策略

目 录 摘 要 前 言 一、计算机网络信息系统研究现状及安全技术 &#xff08;一&#xff09;计算机网络信息系统研究现状 &#xff08;二&#xff09;计算机网络信息系统全技术概述 二、计算机网络信息系统安全问题 &#xff08;一&#xff09;环境危害引发的安全问…

FFMPEG视频转图片

用FFMPEG视频转图片&#xff0c;并且for循环 import os import subprocess# 输入文件夹和输出文件夹路径 input_folder r"I:\xxx" output_base_folder r"D:\xxx\YOLO\data\video" output_subfolder_name "20240609"# 创建输出子文件夹 output…

银河麒麟桌面操作系统添加WPS字体

【使用场景】 银河麒麟桌面操作系统支持添加WPS字体。在银河麒麟桌面操作系统中使用WPS软件编辑文档时存在需要添加WPS字体的情况,例如字体缺失或者需要特殊字体时,需要添加WPS字体。 【操作方法】 步骤一:在互联网上搜索并下载.ttf格式的字体文件。 步骤二:下载完成后,在…

skywalking 搭建 备忘录

基础环境 apache-skywalking-apm-9.6.0.tar.gz apache-skywalking-java-agent-9.1.0.tgz elasticsearch 7.14.1 采用dockers搭建 或者手动部署 kibana 可视化 应用 微服务版 consumer.jar eureka.jar 注册中心 provider.jar skywalking 地址 https://skywalkin…

CAN配置---波特率中断引脚等---autochips-AC7811-ARM-M3内核

1、配置工具 虽然不怎么好用&#xff0c;但比没有强多了。具体看图&#xff1a; 时钟选着 NVIC配置 GPIO配置 2、生成的具体配置信息 NXP的配置工具里面&#xff0c;具体的波特率可以直接显示&#xff0c;这个工具没有&#xff0c;怎么办&#xff1f; 它放到了生成的代码里面…

【ETCD】ETCD 架构揭秘:内部各组件概览

ETCD 的主要组件及它们之间的关联关系如下&#xff1a; 目录 1. Client&#xff08;客户端&#xff09;2. gRPC 接口3. Etcd Server Main Loop&#xff08;ETCD 主循环&#xff09;4. Raft&#xff08;共识模块&#xff09;5. Peer Etcd Nodes&#xff08;ETCD 集群节点&#x…

使用 imageio 库轻松处理图像与视频

使用 imageio 库轻松处理图像与视频 imageio 是一个 Python 库&#xff0c;用于读取和写入多种图像和视频格式。它功能强大、易于使用&#xff0c;广泛应用于图像处理、视频编辑和数据可视化等领域。本篇文章将介绍 imageio 的基础功能、常见用法以及高级操作。 一、安装 imag…

乐凡信息智能安全管控方案:助力油气田行业安全管控多方位升级

我国油田地域广阔&#xff0c;分布着大量各种油井&#xff0c;油井开采设备的连续稳定运行是保证石油开采的首要条件。然而&#xff0c;由于油田多位于特殊地理环境中&#xff0c;因而实现油井之间的通信首要问题就是要克服地理环境所带来的限制&#xff0c;传统通信系统的建设…

windows 使用python共享网络给另外一个网卡

# -*- coding: utf-8 -*- import subprocessdef open_share(to_shared_adapter, from_shared_adapter):"""打开以太网的网络共享:return: None"""powershell_script f"""# Register the HNetCfg library (once)# regsvr32 hnetc…

DAOBase 推出 DAO POP:赋能创作者与社区,畅享链上未来

随着时代快速发展&#xff0c;链上生态也在飞速扩张。DAOBase 致力于为社区、创作者和品牌提供赋能&#xff0c;帮助他们充分挖掘去中心化技术的潜力。今天&#xff0c;我们很高兴为大家带来 DAO POP —— 一款彻底改变玩法的功能&#xff0c;让社区代币的发行和管理变得前所未…

用vscode,进行vue开发

使用Visual Studio Code&#xff08;VSCode&#xff09;进行Vue.js开发是一个很好的选择&#xff0c;因为VSCode提供了强大的编辑功能以及丰富的插件生态。以下是使用VSCode进行Vue开发的基本步骤&#xff1a; 1. 安装Node.js和npm 首先&#xff0c;确保你的计算机上安装了No…

java-使用druid sqlparser将SQL DDL脚本转化为自定义的java对象

java-使用druid sqlparser将SQL DDL脚本转化为自定义的java对象 一、引言二、环境三、待解析的DDL四、解析后的对象结构五、完整的UT类六、控制台输出总结 一、引言 在日常开发中&#xff0c;有些需要对SQL进行解析的场景&#xff0c;比如读取表结构信息&#xff0c;生成文档、…

深度学习实战智能交通计数

本文采用YOLOv8作为核心算法框架&#xff0c;结合PyQt5构建用户界面&#xff0c;使用Python3进行开发。YOLOv8以其高效的实时检测能力&#xff0c;在多个目标检测任务中展现出卓越性能。本研究针对车辆目标数据集进行训练和优化&#xff0c;该数据集包含丰富的车辆目标图像样本…

rebase ‘A‘ onto ‘master‘ 和 merge ‘master‘ into ‘A‘有什么区别

在Git版本控制系统中&#xff0c;rebase 和 merge 是两种不同的操作&#xff0c;用于合并分支。rebase A onto master 和 merge master into A 虽然最终目的都是将两个分支的更改合并在一起&#xff0c;但它们在处理方式和结果上有所不同。 rebase ‘A’ onto ‘master’ 含义…

前端的Python应用指南(一):快速构建 Web 服务器 - Flask vs Node.js 对比

随着前端开发技术的不断发展&#xff0c;前端开发者的技术栈也在不断扩展。如今&#xff0c;前端开发者不仅要掌握 HTML、CSS、JavaScript&#xff0c;还要掌握后端技术&#xff0c;成为全栈开发者。而在后端技术的选择上&#xff0c;Python 和 Node.js 是两种非常流行的选择。…