检索扩充生成(RAG)是一种强大的技术,它将大型语言模型(LLM)与实时数据检索相结合,以生成更准确、up-to日期和上下文相关的响应。
此方法对于回答有关专有、经常更改或特定于域的信息的问题尤其有用。
什么是信息检索增强生成?
在最简单的形式下,RAG 代理执行以下工作:
- 检索:用户的请求用于查询外部知识库,例如矢量存储、关键字搜索或 SQL 数据库。 目标是获取 LLM 响应的支持数据。
- 扩充:支持数据与用户的请求相结合,通常使用模板和 LLM 的其他格式和说明来创建提示。
- 生成:提示将传递给 LLM 以生成对用户请求的响应。
RAG 优势
RAG 通过以下方式改进 LLM:
- 专有知识:RAG 可以包含最初未用于训练 LLM 的专有信息,例如备忘录、电子邮件和用于回答特定领域问题的文档。
- 最新信息: RAG 应用程序可以向 LLM 提供更新知识库中的信息。
- 引用来源:RAG 使 LLM 能够引用特定来源,从而允许用户验证响应的事实准确性。
- 数据安全和访问控制列表 (ACL):检索步骤可以设计为根据用户凭据有选择地检索个人或专有信息。
RAG 组件
典型的 RAG 应用程序涉及几个阶段:
数据管道:预处理和索引文档、表或其他数据,以便快速准确地检索。
RAG 链(检索、扩充、生成):调用一系列步骤(或称链)以:
- 了解用户的问题。
- 检索支持数据。
- 使用支持数据增强提示。
- 使用扩充提示从 LLM 生成响应。
评估和监视:评估 RAG 应用程序以确定其质量、成本和延迟,以确保它满足业务需求。
治理和 LLMOps:跟踪和管理每个组件的生命周期,包括数据世系和访问控制。
RAG 数据类型:结构化和非结构化数据
RAG 体系结构可以使用非结构化或结构化的支持数据。 在 RAG 中使用的数据取决于你的用例。
非结构化数据:没有特定结构或组织的数据。
- Google/Office 文档
- 维基
- 映像
- 视频
结构化数据:以特定架构按行和列排列的表格数据,例如数据库中的表。
- BI 或 Data Warehouse 系统中的客户记录
- 来自 SQL 数据库的交易数据
- 来自应用程序 API(例如 SAP、Salesforce 等)的数据
评估和监视
评估和监视有助于确定 RAG 应用程序是否满足质量、成本和延迟要求。 评估发生在开发过程中,监视则发生在应用程序部署到生产环境后。
非结构化数据的 RAG 有许多影响质量的组件。 例如,数据格式更改可能会影响检索的区块以及 LLM 生成相关响应的能力。 因此,除了整体应用程序外,还必须评估各个组件。
有关详细信息,请参阅什么是 Mosaic AI 代理评估?。
Databricks 上的 RAG
Databricks 提供用于 RAG 开发的端到端平台,包括:
- 包含 Delta Lake 和 DLT 的集成数据管道
- 使用 Databricks 矢量搜索进行可缩放矢量搜索
- 模型服务和编排工具
- 用于提高性能和质量的 Gen AI 评估
- 用于部署的 RAG 应用程序的 Gen AI 监控
- 内置治理和安全性,请参阅 安全和信任中心和AI 网关。
后续步骤
了解数据管道,这是 RAG 应用程序的关键组件。 请参阅 为 RAG 生成非结构化数据管道
使用 AI Playground 创建自己的 RAG 代理的原型。 请参阅 AI Playground 中的原型工具调用代理。
- 使用代理砖块:知识助手在文档上创建 RAG 代理作为聊天机器人,并作为可在下游应用程序中使用的终结点。 请参阅 使用代理砖块:知识助手以在您的文档之上创建高质量的聊天机器人。