用于 Amazon CloudFormation 为语义搜索设置远程推理 - 亚马逊 OpenSearch 服务
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

用于 Amazon CloudFormation 为语义搜索设置远程推理

从 2.9 OpenSearch 版开始,您可以使用带有语义搜索的远程推理来托管自己的机器学习 (ML) 模型。远程推理使用 ML Commons 插件允许您在机器学习服务(例如和 Amazon SageMaker Amazon)上远程托管模型推理 BedRock,并使用机器学习连接器将它们连接到亚马逊 OpenSearch 服务。

为了简化远程推理的设置,Amazon S OpenSearch ervice 在控制台中提供了一个Amazon CloudFormation模板。 CloudFormation 是一 Amazon Web Service 款允许您通过将基础设施视为代码来建模、配置 Amazon 和管理第三方资源的工具。

该 OpenSearch CloudFormation 模板可自动执行模型配置过程,因此您可以轻松地在 OpenSearch 服务域中创建模型,然后使用模型 ID 来摄取数据并运行神经搜索查询。

先决条件

要在 S OpenSearch ervice 中使用 CloudFormation 模板,请完成以下先决条件。

设置 OpenSearch 服务域

在使用 CloudFormation 模板之前,您必须设置一个版本 2.9 或更高版本的 Amazon Serv OpenSearch ice 域并启用精细访问控制。创建 OpenSearch 服务后端角色以授予 ML Commons 插件为您创建连接器的权限。

该 CloudFormation 模板使用默认名称为您创建一个 Lambda IAM 角色LambdaInvokeOpenSearchMLCommonsRole,如果您想选择其他名称,则可以覆盖该名称。模板创建此 IAM 角色后,您需要授予 Lambda 函数调用您的 OpenSearch 服务域的权限。为此,请按照以下步骤ml_full_access将名为的角色映射到您的 OpenSearch 服务后端角色:

  1. 导航到您的 OpenSearch 服务域的 OpenSearch 仪表板插件。您可以在 OpenSearch 服务控制台的域控制面板上找到控制面板终端节点。

  2. 从主菜单中选择安全角色,然后选择 ml_full_access 角色。

  3. 选择映射的用户管理映射

  4. 后端角色下,添加需要权限才能调用您的域名的 Lambda 角色的 ARN。

    arn:aws:iam::account-id:role/role-name
  5. 选择映射并确认在映射的用户下显示的用户或角色。

映射角色后,导航到您的域的安全配置,然后将 Lambda IAM 角色添加到您的 OpenSearch 服务访问策略中。

启用您的 Amazon Web Services 账户权限

您 Amazon Web Services 账户 必须拥有访问 CloudFormation 和 Lambda 的权限,以及 Amazon Web Service 您为模板选择的任何内容(Runtime SageMaker 或 Amazon)的权限。 BedRock

如果您使用的是 Amazon Bedrock,则还必须注册您的模型。要注册您的模型,请参阅 Amazon BedRock 用户指南中的模型访问权限

如果您使用自己的 Amazon S3 存储桶来提供模型项目,则必须将 CloudFormation IAM 角色添加到您的 S3 访问策略中。有关更多信息,请参阅《 IAM 用户指南》中的添加和删​​除 IAM 身份权限

Amazon SageMaker 模板

Amazon SageMaker CloudFormation 模板定义了多种 Amazon 资源,以便为您设置神经插件和语义搜索。

首先,使用通过 Amazon SageMaker 模板与文本嵌入模型集成,在 SageMaker 运行时中将文本嵌入模型部署为服务器。如果您不提供模型终端节点,则 CloudFormation 创建一个 IAM 角色以允许 SageMaker Runtime 从 Amazon S3 下载模型工件并将其部署到服务器。如果您提供终端节点,则 CloudFormation 会创建一个允许 Lambda 函数访问 OpenSearch 服务域的 IAM 角色,或者,如果该角色已经存在,则更新和重复使用该角色。该端点通过 ML Commons 插件为用于机器学习连接器的远程模型提供服务。

接下来,使用通过 Amazon Sagemaker 与稀疏编码器集成模板创建一个 Lambda 函数,让您的域设置远程推理连接器。在 S OpenSearch ervice 中创建连接器后,远程推理可以在 Runtime 中 SageMaker 使用远程模型运行语义搜索。模板会将您网域中的模型 ID 返回给您,这样您就可以开始搜索了。

使用 Amazon SageMaker CloudFormation 模板
  1. 打开亚马逊 OpenSearch 服务控制台,网址为 https://console.aws.amazon.com/aos/home

  2. 在左侧导航窗格中,选择集成

  3. 在每个 Amazon SageMaker 模板下,选择配置域名配置公共域

  4. 按照 CloudFormation 控制台中的提示配置堆栈并设置模型。

注意

OpenSearch 服务还提供了一个单独的模板来配置 VPC 域。如果您使用此模板,则需要提供 Lambda 函数的 VPC ID。

亚马逊 Bedrock 模板

与亚马逊 SageMaker CloudFormation 模板类似,Amazon Bedrock CloudFormation 模板预配置了在 OpenSearch 服务和亚马逊 Bedrock 之间创建连接器所需的 Amazon 资源。

首先,该模板创建一个 IAM 角色,允许 future 的 Lambda 函数访问您的 OpenSearch 服务域。然后,该模板创建 Lambda 函数,该函数让域使用 ML Commons 插件创建连接器。 OpenSearch 服务创建连接器后,远程推理设置就完成了,您可以使用 Amazon Bedrock API 操作运行语义搜索。

请注意,由于 Amazon Bedrock 托管自己的机器学习模型,因此您无需将模型部署到 SageMaker 运行时。相反,该模板使用了 Amazon Bedrock 的预先确定的终端节点,并跳过了终端节点配置步骤。

使用 Amazon Bedrock 模板 CloudFormation
  1. 打开亚马逊 OpenSearch 服务控制台,网址为 https://console.aws.amazon.com/aos/home

  2. 在左侧导航窗格中,选择集成

  3. 在 “通过 Amazon Bedrock 与 Amazon Titan 文本嵌入集成” 模型下,选择 “配置域”、“配置公共域”。

  4. 按照提示设置模型。

注意

OpenSearch 服务还提供了一个单独的模板来配置 VPC 域。如果您使用此模板,则需要提供 Lambda 函数的 VPC ID。

此外, OpenSearch 服务还提供以下 Amazon Bedrock 模板,用于连接 Cohere 模型和 Amazon Titan 多式联运嵌入模型:

  • Integration with Cohere Embed through Amazon Bedrock

  • Integrate with Amazon Bedrock Titan Multi-modal