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

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

从 OpenSearch 版本 2.9 开始,您可以使用带有语义搜索的远程推理来托管自己的机器学习 (ML) 模型。远程推理使用 机器学习 Commons 插件

通过远程推理功能,您可以在 Amazon SageMaker AI 和 Amazon Bedrock 等机器学习服务上远程托管模型推理,并通过机器学习连接器将其连接至 Amazon OpenSearch Service。

为了简化远程推理的设置,Amazon OpenSearch Service 在控制台中提供了一个 Amazon CloudFormation 模板。CloudFormation 是一个 Amazon Web Services 服务,您可以在其中通过将基础设施视为代码来建模、预调配和管理 Amazon 以及第三方资源。

OpenSearch CloudFormation 模板可自动完成模型预置过程,让您可以轻松地在 OpenSearch Service 域中创建模型,然后使用模型 ID 来摄取数据和运行神经搜索查询。

在 OpenSearch Service 2.12 及更高版本中使用神经稀疏编码器时,我们建议在本地使用分词器模型,而不是在远程部署该模型。有关更多信息,请参阅 OpenSearch 文档中的 Sparse encoding models

可用 Amazon CloudFormation 模板

以下 Amazon CloudFormation 机器学习(ML)模板可供使用:

Amazon Bedrock 模板
Amazon Titan 文本嵌入集成

连接至 Amazon Bedrock 托管的机器学习模型,无需单独部署模型,并使用预先确定的 Amazon Bedrock 端点。有关更多信息,请参阅《Amazon Bedrock 用户指南》中的 Amazon Titan 文本嵌入

Cohere Embed 集成

提供对 Cohere Embed 模型的访问权限,并针对特定文本处理工作流程进行优化。有关更多信息,请参阅 Cohere 文档网站上的嵌入

Amazon Titan 多模态嵌入

同时支持文本和图像嵌入,并实现多模态搜索功能。有关更多信息,请参阅《Amazon Bedrock 用户指南》中的 Amazon Titan 多模态嵌入

MCP 服务器集成模板
MCP 服务器集成

部署 Amazon Bedrock AgentCore 运行时,提供代理端点,处理入站和出站身份验证,并支持 OAuth 进行企业身份验证。

Amazon SageMaker 模板
通过 Amazon SageMaker 与文本嵌入模型集成

在 Amazon SageMaker 运行时部署文本嵌入模型,创建用于模型构件访问的 IAM 角色,并建立用于语义搜索的机器学习连接器。

通过 SageMaker 与稀疏编码器集成

为神经搜索设置稀疏编码模型,创建用于连接器管理的 Amazon Lambda 函数,并返回可立即使用的模型 ID。

先决条件

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

设置 OpenSearch Service 域

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

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

  1. 导航到 OpenSearch Service 域的 OpenSearch 控制面板插件。您可以在 OpenSearch Service 控制台的域控制面板中找到控制面板端点。

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

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

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

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

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

启用您的 Amazon Web Services 账户 权限

Amazon Web Services 账户 必须有权访问 CloudFormation 和 Lambda,以及您为模板选择的任何 Amazon Web Services 服务,无论是 SageMaker Runtime 还是 Amazon Bedrock。

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

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

语义突出显示模板的远程推理

语义突出显示是一项高级搜索功能,可通过分析查询的含义和上下文提高结果的相关性,而非仅依赖于精确的关键词匹配。此功能运用机器学习模型评估搜索查询与文档内容之间的语义相似度,从而识别并突出显示文档中与上下文最相关的句子或段落。与传统突出显示方法侧重精确词汇匹配不同,语义突出显示借助人工智能模型,通过查询与上下文文本的语境信息综合评测每句话,即使突出显示的段落中未出现确切的搜索词,语义突出显示也能精准呈现相关信息。这种方法对人工智能驱动的搜索实施尤为重要,因为用户更重视语义含义而非字面词汇匹配。这使搜索管理员能够提供更智能、更具上下文感知能力的搜索体验,突出显示有意义的内容片段,而非仅仅呈现关键词的出现位置。有关更多信息,请参阅 Using semantic highlighting

使用以下步骤打开并运行 Amazon CloudFormation 模板,该模板会自动配置 Amazon SageMaker 模型,以实现语义突出显示。

使用语义突出显示 CloudFormation 模板
  1. https://console.aws.amazon.com/aos/home 打开 Amazon OpenSearch Service 控制台。

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

  3. 通过 Amazon SageMaker 集成启用语义突出显示下,选择配置域配置公共域

  4. 按照提示设置模型。

注意

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