正在加载

RAG

Elastic Stack Serverless

🍿 喜欢视频介绍?

观看 Elastic Snackable 系列中的这个短视频

检索增强生成 (RAG) 是一种通过使用额外的、可验证的信息源来支持语言模型的技术,从而改进语言模型响应。它的工作原理是首先从外部数据存储中检索相关上下文,然后将其添加到模型的上下文窗口中。

RAG 是一种上下文学习形式,模型从中推断时提供的信息中学习。与微调或持续预训练相比,RAG 的实现更快、更便宜,并且具有多个优点。

RAG sits at the intersection of information retrieval and generative AI

RAG 位于信息检索和生成式 AI 的交汇点。 Elasticsearch 是实现 RAG 的一个绝佳工具,因为它提供了各种检索功能,例如全文搜索、向量搜索和混合搜索,以及其他工具,如过滤、聚合和安全功能。

使用 Elasticsearch 实现 RAG 具有以下几个优点

  • 改进的上下文: 支持使用额外的、最新的和/或私有数据来支持语言模型。
  • 减少幻觉: 通过允许模型引用权威来源,帮助最大限度地减少事实错误。
  • 成本效益: 与微调或持续预训练模型相比,所需的维护更少。
  • 内置安全性: 通过利用 Elasticsearch 的用户授权功能(例如基于角色的访问控制和字段/文档级别安全性)来控制数据访问。
  • 简化的响应解析: 通过让语言模型处理 Elasticsearch 响应的解析和格式化检索到的上下文,从而无需自定义解析逻辑。
  • 灵活的实现: 可与基本的全文搜索配合使用,并且可以逐步更新以添加更高级和计算密集型的语义搜索功能。

下图说明了一个使用 Elasticsearch 的简单 RAG 系统。

Components of a simple RAG system using Elasticsearch

工作流程如下

  1. 用户提交查询。
  2. Elasticsearch 使用全文搜索、向量搜索或混合搜索来检索相关文档。
  3. 语言模型处理上下文并生成响应,使用自定义指令。自定义指令的示例包括“引用来源”或“以 markdown 格式提供 content 字段的简洁摘要。”
  4. 模型将最终响应返回给用户。
提示

更高级的设置可能包括在步骤 1 和 2 之间进行查询重写。此中间步骤可以使用一个或多个具有不同指令的附加语言模型来重新制定查询,以获得更具体和详细的响应。

使用 Playground 快速开始构建 RAG 应用程序,该程序可将 Elasticsearch 与语言模型提供程序无缝集成。 Playground UI 使您能够在 Elasticsearch 索引之上构建、测试和部署 RAG 界面。

Playground 会自动为您的数据选择最佳检索方法,同时完全控制最终的 Elasticsearch 查询和语言模型指令。您还可以下载底层的 Python 代码以与您现有的应用程序集成。

Playground 文档中了解更多信息,并通过交互式实验室获得实践经验。

在这些博客文章中了解更多关于使用 Elasticsearch 构建 RAG 系统的信息

© . All rights reserved.