使用 AWS CloudFormation 設定語意搜尋的遠端推論 - Amazon OpenSearch Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 AWS CloudFormation 設定語意搜尋的遠端推論

從 2.9 OpenSearch 版開始,您可以使用遠端推論搭配語意搜尋來託管您自己的機器學習 (ML) 模型。遠端推論使用 ML Commons 外掛程式,可讓您在 ML 服務上遠端託管模型推論,例如 Amazon SageMaker AI 和 Amazon BedRock,並使用 ML 連接器將其連接至 Amazon OpenSearch Service。

為了簡化遠端推論的設定,Amazon OpenSearch Service 在 主控台中提供AWS CloudFormation範本。 CloudFormation 是一種 AWS 服務 ,可讓您將基礎設施視為程式碼,以建立模型、佈建和管理 AWS 和第三方資源。

OpenSearch CloudFormation 範本會為您自動化模型佈建程序,讓您可以輕鬆地在 OpenSearch 服務網域中建立模型,然後使用模型 ID 擷取資料並執行神經搜尋查詢。

當您搭配 OpenSearch Service 2.12 版及更新版本使用神經稀疏編碼器時,建議您在本機使用權杖器模型,而不是從遠端部署。如需詳細資訊,請參閱 OpenSearch 文件中的稀疏編碼模型

必要條件

若要搭配 OpenSearch Service 使用 CloudFormation 範本,請完成下列先決條件。

設定 OpenSearch 服務網域

您必須先設定 Amazon OpenSearch Service 網域並啟用 2.9 版或更新版本,並啟用精細存取控制,才能使用 CloudFormation 範本。建立 OpenSearch 服務後端角色,以授予 ML Commons 外掛程式為您建立連接器的許可。

CloudFormation 範本會為您建立預設名稱為 的 Lambda IAM角色LambdaInvokeOpenSearchMLCommonsRole,如果您想要選擇不同的名稱,可以覆寫此角色。範本建立此IAM角色後,您需要授予 Lambda 函數許可,才能呼叫您的 OpenSearch Service 網域。若要這麼做,請使用下列步驟將名為 的角色映射ml_full_access至您的 OpenSearch 服務後端角色:

  1. 導覽至 OpenSearch 服務網域的 OpenSearch Dashboards 外掛程式。您可以在 OpenSearch 服務主控台的網域儀表板上找到儀表板端點。

  2. 從主選單選擇安全性角色,然後選取 ml_full_access 角色。

  3. 選擇 Mapped users (已映射的使用者)、Manage mapping (管理映射)。

  4. 後端角色下,新增需要呼叫網域許可ARN的 Lambda 角色的 。

    arn:aws:iam::account-id:role/role-name
  5. 選擇 Map (映射),並確認使用者或角色顯示在 Mapped users (已映射的使用者) 中。

映射角色後,導覽至網域的安全組態,並將 Lambda IAM角色新增至您的 OpenSearch 服務存取政策。

在您的 上啟用許可 AWS 帳戶

您的 AWS 帳戶 必須具有存取 CloudFormation 和 Lambda 的許可,以及 AWS 服務 您選擇的範本 – SageMaker 執行期或 Amazon BedRock。

如果您使用的是 Amazon Bedrock,您還必須註冊模型。請參閱《Amazon Bedrock 使用者指南》中的模型存取,以註冊您的模型。

如果您使用自己的 Amazon S3 儲存貯體來提供模型成品,則必須將 CloudFormation IAM角色新增至 S3 存取政策。如需詳細資訊,請參閱IAM《 使用者指南》中的新增和移除IAM身分許可

Amazon SageMaker AI 範本

Amazon SageMaker AI CloudFormation 範本會定義多個 AWS 資源,以便為您設定神經外掛程式和語意搜尋。

首先,透過 Amazon 範本使用與文字內嵌模型的整合 SageMaker,在 SageMaker 執行期中部署文字內嵌模型做為伺服器。如果您不提供模型端點, 會 CloudFormation 建立IAM角色,允許 SageMaker 執行期從 Amazon S3 下載模型成品,並將其部署到伺服器。如果您提供端點, 會 CloudFormation 建立允許 Lambda 函數存取 OpenSearch 服務網域IAM的角色,或者,如果角色已存在, 會更新和重複使用角色。端點提供遠端模型,用於具有 ML Commons 外掛程式的 ML 連接器。

接著,透過 Amazon Sagemaker 範本使用與 Sparse Encoder 整合,建立 Lambda 函數,讓您的網域設定遠端推論連接器。在 OpenSearch 服務中建立連接器後,遠端推論可以使用 SageMaker 執行時間中的遠端模型執行語意搜尋。範本會將網域中的模型 ID 傳回給您,以便開始搜尋。

使用 Amazon SageMaker AI CloudFormation 範本
  1. https://console.aws.amazon.com/aos/在家中開啟 Amazon OpenSearch Service 主控台。

  2. 在左側導覽中,選擇整合

  3. 在每個 Amazon SageMaker AI 範本下,選擇設定網域設定公有網域

  4. 遵循 CloudFormation 主控台中的提示來佈建堆疊並設定模型。

注意

OpenSearch 服務也提供單獨的範本來設定VPC網域。如果您使用此範本,則需要提供 Lambda 函數的 VPC ID。

Amazon Bedrock 範本

與 Amazon SageMaker AI CloudFormation 範本類似,Amazon Bedrock CloudFormation 範本提供在 OpenSearch Service 和 Amazon Bedrock 之間建立連接器所需的 AWS 資源。

首先,範本會建立IAM角色,允許未來的 Lambda 函數存取您的 OpenSearch 服務網域。範本接著會建立 Lambda 函數,讓網域使用 ML Commons 外掛程式建立連接器。 OpenSearch 服務建立連接器後,遠端推論設定即完成,您可以使用 Amazon Bedrock API操作執行語意搜尋。

請注意,由於 Amazon Bedrock 託管自己的 ML 模型,因此您不需要將模型部署至 SageMaker 執行期。反之,範本會使用 Amazon Bedrock 的預先定義端點,並略過端點佈建步驟。

使用 Amazon Bedrock CloudFormation 範本
  1. https://console.aws.amazon.com/aos/在家中開啟 Amazon OpenSearch Service 主控台。

  2. 在左側導覽中,選擇整合

  3. 透過 Amazon Bedrock 與 Amazon Titan Text Embeddings 模型整合下,選擇設定網域設定公有網域

  4. 按照提示設定模型。

注意

OpenSearch 服務也提供單獨的範本來設定VPC網域。如果您使用此範本,則需要提供 Lambda 函數的 VPC ID。

此外, OpenSearch Service 提供下列 Amazon Bedrock 範本來連線至 Cohere 模型和 Amazon Titan 多模式內嵌模型:

  • Integration with Cohere Embed through Amazon Bedrock

  • Integrate with Amazon Bedrock Titan Multi-modal