

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 了解检索增强生成
<a name="what-is-rag"></a>

检索增强生成 (RAG) 是一种用于使用外部数据（例如公司的内部文档）增强大型语言模型 (LLM) 的技术。这为模型提供了为特定用例生成准确而有用的输出所需的上下文。RAG是一种在企业 LLMs 中使用的实用而有效的方法。下图简要概述了 RAG 方法的工作原理。



![协调器对自定义文档执行语义搜索，然后向 LLM 提供输入。](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/retrieval-augmented-generation-options/images/how-rag-works.png)


从广义上讲，RAG 流程分为四个步骤。第一步只完成一次，其他三个步骤根据需要多次完成：

1. 您可以创建嵌入以将内部文档摄取到矢量数据库中。*嵌入*是文档中文本的数字表示形式，用于捕捉数据的语义或上下文含义。*矢量数据库*本质上就是这些嵌入的数据库，它有时被称为*向量存储或向量**索引*。此步骤需要进行数据清理、格式化和分块，但这是一次性的前期活动。

1. 人类用自然语言提交查询。

1. 协调器在矢量数据库中执行相似度搜索并检索相关数据。协调器将检索到的数据（也称为*上下文*）添加到包含查询的提示中。

1. 协调器将查询和上下文发送给 LLM。LLM 使用其他上下文生成对查询的响应。

从用户的角度来看，RAG 看起来像与任何 LLM 互动。但是，该系统对相关内容的了解要多得多，并根据组织的知识库提供了经过微调的答案。

有关 RAG 方法的工作原理的更多信息，请参阅[网站上的 RAG 是什么](https://aws.amazon.com/what-is/retrieval-augmented-generation/)。 AWS 

## 生产级 RAG 系统的组件
<a name="components"></a>

构建生产级 RAG 系统需要仔细考虑 RAG 工作流程的几个不同方面。从概念上讲，无论具体实现如何，生产级 RAG 工作流程都需要以下功能和组件：
+ **连接器**-这些连接器将不同的企业数据源与矢量数据库连接起来。结构化数据源的示例包括交易数据库和分析数据库。非结构化数据源的示例包括对象存储、代码库和软件即服务 (SaaS) 平台。每个数据源可能需要不同的连接模式、许可证和配置。
+ **数据处理**-数据有多种形状和形式，例如扫描的图像 PDFs、文档、演示文稿和Microsoft SharePoint文件。必须使用数据处理技术来提取、处理和准备要编制索引的数据。
+ **嵌入**-要执行相关性搜索，必须将文档和用户查询转换为兼容的格式。通过使用嵌入语言模型，可以将文档转换为数字表示。这些基本上是基础模型的输入。
+ **矢量数据库**-矢量数据库是嵌入项、关联文本和元数据的索引。该索引针对搜索和检索进行了优化。
+ **Retriever** — 对于用户查询，检索器从矢量数据库中获取相关上下文，并根据业务需求对响应进行排名。
+ **基础模型** — RAG 系统的基础模型通常是 LLM。通过处理上下文和提示，基础模型为用户生成并格式化响应。
+ **Guardrails** — Guardrails旨在确保查询、提示、检索到的上下文以及法学硕士的响应是准确、负责任、合乎道德的，并且没有幻觉和偏见。
+ **Orchestrat** or — 协调器负责安排和管理工作流程。 end-to-end
+ **用户体验** — 通常，用户与对话聊天界面进行交互，该界面具有丰富的功能，包括显示聊天记录和收集用户对回复的反馈。
+ **身份和用户管理**-精细控制用户对应用程序的访问至关重要。在中 AWS Cloud，策略、角色和权限通常通过 [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) 进行管理。

显然，规划、开发、发布和管理 RAG 系统还有大量工作要做。[完全托管的服务](rag-fully-managed.md)，例如Amazon Bedrock或Amazon Q Business，可以帮助您管理一些无差别的繁重工作。但是，[自定义 RAG 架构](rag-custom.md)可以提供对组件的更多控制，例如检索器或矢量数据库。