超越 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 解决方案涉及解决三个主要领域:
- 成本管理:选择高效模型并优化向量搜索数据库以有效控制成本。成本分析和定期监控有助于确定需要优化的领域,确保解决方案保持成本效益。
- 安全性和可靠性:实施灾难恢复、服务级别目标,并采用站点可靠性工程 (SRE) 方法以确保强大的基础设施。这些措施有助于保持正常运行时间和可靠性,这对于生产环境至关重要。
- 持续分析:利用可观察性工具来监控和评估 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
相关文章:

超越 RAG 基础:AI 应用的高级策略
作者:来自 Elastic Elastic Platform Team 我们最近与 Cohere 举办的虚拟活动深入探讨了检索增强生成 (retrieval augmented generation - RAG) 的世界,重点讨论了在概念验证阶段之后构建 RAG 应用程序的关键注意事项。我们的演讲者是 Elastic 的首席解…...
[shader]【图形渲染】【unity】【游戏开发】 Shader数学基础2-认识点和矢量
在计算机图形学和Shader编程中,点和矢量是两种常见且基础的数学对象。它们在空间中的作用和性质是理解图形渲染的关键。本篇文章将深入探讨点(Point)和矢量(Vector)的定义、特性以及它们之间的关系。 1. 点(Point)的定义 在数学和计算机图形学中,**点(Point)**用于…...

微软开源Python Markdown转换工具
分享一个microsoft开源的Python工具——markitdown,轻松将各类文件转换为Markdown格式。 markitdown支持的文件格式 PDF(.pdf)PowerPoint(.pptx)Word(.docx)Excel(.xlsx)图片(支持EXIF元数据和OCR识别)音频(支持EXIF元数据和语音转录)HTML(包括对Wikipedia...
安装与配置MongoDB 6.0以支持远程连接
安装与配置MongoDB 6.0以支持远程连接 目录 安装curl工具下载并导入MongoDB 6.0 PGP密钥向APT导入MongoDB 6.0版软件包的资源链接安装MongoDB依赖libssl1.1安装MongoDB启动并检查MongoDB服务状态进入MongoDB Shell交互式执行环境设置MongoDB开机自启配置MongoDB允许远程连接 …...

零衍门户国际化:助力拓展全球视野
概述 零衍系统管理平台统一门户管理,支持门户看板灵活配置,同时提供场景化的门户模板,丰富的门户组件,可协助用户快速搭建企业专属门户。 随着零衍产品的不断成熟,国际化需求日益增多,客户期望零衍门户可…...

mysql免安装版配置教程
一、将压缩包解压至你想要放置的文件夹中,注意:绝对路径中要避免出现中文 二、在解压目录下新建my.ini文件,已经有的就直接覆盖 my.ini文件内容 [mysqld] # 设置3306端口 port3306 # 设置mysql的安装目录 basedirD:\\tools\\mysql-8.1.0-win…...

kafka的处理的一些问题 消费延迟
kafka的处理的一些问题 消费者客户端不但没有背压而且内存充足,但产生的消费延迟越来越大在Kafka的Leader副本宕机时 消费者客户端不但没有背压而且内存充足,但产生的消费延迟越来越大 比如我们这个kakfa集群一共有3个Broker节点 TOp1有5个分区…...
旅游创业,千益畅行,开启新的旅游模式!
在当今旅游市场蓬勃发展的时代,旅游卡项目如一颗新星闪耀登场,而千益畅行旅游卡服务更是其中的佼佼者,为广大旅游爱好者带来了全新的旅游体验与机遇。 一、旅游卡项目是如何运作的呢? 千益畅行旅游卡服务的运作模式犹如一部精心…...
集成自然语言理解服务,让应用 “听得懂人话”
如今,应用程序智能化已成趋势,开发者想要实现智能化,那么首先需要赋予应用理解自然语言的能力,使其能够准确地听懂人话,进而响应用户需求,并提供一系列智能化服务。比如用户语音控制应用程序帮忙订票&#…...

利用notepad++删除特定关键字所在的行
1、按组合键Ctrl H,查找模式选择 ‘正则表达式’,不选 ‘.匹配新行’ 2、查找目标输入 : ^.*关键字.*\r\n (不保留空行) ^.*关键字.*$ (保留空行)3、替换为:(空) 配置界面参考下图: …...
[HNOI2002] 营业额统计 STL - set集合
文章目录 [HNOI2002] 营业额统计题目描述样例输入 #1样例输出 #1 提示题解相关知识点set [HNOI2002] 营业额统计 STL - set解题 题目描述 Tiger 最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况。 Tiger 拿出…...
fastAPI接口(普通流式响应和大模型流式响应)
1. 流式输出和非流失输出: 大模型的流式输出(Streaming Output)和非流式输出(Non-streaming Output)是指在生成文本或其他输出时,如何将结果返回给用户或下游系统。 流式输出 (Streaming Output)…...
Linux系统安装node.js
一、node官网下载想要的node版本 https://nodejs.org/en/download/package-manager 二、将tar.xz文件解压 tar -xvf node-vxxx.tar.xz 三、改文件夹的名字,改成nodejs mv node-xxx nodejs 四、复制nodejs文件,并上传到linux 服务器 /usr/local 目录下…...
《解决两道有趣的编程问题:交替数字和与简单回文》
在编程的世界里,算法和逻辑的挑战无处不在。今天,我们将用 Python 来解决两道有趣的编程问题,分别是计算交替数字和以及生成简单回文。 一、交替数字和(Alternating Sum of Numbers) 1. 问题描述 给定一系列整数&am…...
2412d,d的8月会议
原文 总结 替换D的逃逸分析 Rikki说,他一个月前曾与Dennis讨论过简化D的逃逸分析,但没有结果.在BeerConf上,他再次提起了它,Dennis说他一直在考虑它. Rikki也与Walter谈过这件事,Walter曾说过DIP1000并没有完全如期工作,且有点太复杂了. 因此,Rikki想讨论按D逃逸分析方法替…...

WEB自动化测试(selenium工具)框架、面试题
一、什么是web自动化测试 让程序员代替人为去验证web项目功能的过程 二、什么web项目适合自动化测试 1)需求变动不频繁 测试脚本的稳定性决定了自动化测试的维护成本。如果软件需求变动过于频繁,测试人员需要根据变动的需求来更新测试用例以及相关的测试脚本&…...
前端自动化部署之ssh2和ssh2-sftp-client
ssh2-sftp-client 本身是一个专门用于处理 SFTP文件操作的库,它不直接提供执行远程命令的功能。但是可以通过它的底层依赖库 ssh2 实现执行命令的功能。 以下是实现方法和示例代码: 方法一:使用 ssh2 执行远程命令 ssh2 是 ssh2-sftp-client…...
python pandas 优化内存占用(一)
最近我用python处理excel,使用的是pandas库,我发现pandas库非常占用内存,一直想研究下如何优化pandas的内存占用,但一直没腾出空来,最近终于有时间研究一把了,我先把优化方法写上,如果你想了解更…...

FutureCompletableFuture实战
1. Callable&Future&FutureTask介绍 直接继承Thread或者实现Runnable接口都可以创建线程,但是这两种方法都有一个问题就是:没有返回值,也就是不能获取执行完的结果。因此java1.5就提供了Callable接口来实现这一场景,而Fu…...

Loki 微服务模式组件介绍
目录 一、简介 二、架构图 三、组件介绍 Distributor(分发器) Ingester(存储器) Querier(查询器) Query Frontend(查询前端) Index Gateway(索引网关)…...

铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...