Utilisation AWS CloudFormation pour configurer l'inférence à distance pour la recherche sémantique - Amazon OpenSearch Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation AWS CloudFormation pour configurer l'inférence à distance pour la recherche sémantique

À partir de OpenSearch la version 2.9, vous pouvez utiliser l'inférence à distance avec la recherche sémantique pour héberger vos propres modèles d'apprentissage automatique (ML). L'inférence à distance utilise le plugin ML Commons pour vous permettre d'héberger vos inférences de modèles à distance sur des services ML, tels qu' Amazon SageMaker Amazon BedRock, et de les connecter à Amazon OpenSearch Service à l'aide de connecteurs ML.

Pour faciliter la configuration de l'inférence à distance, Amazon OpenSearch Service fournit un AWS CloudFormationmodèle dans la console. CloudFormation est un outil Service AWS qui vous permet de modéliser, de provisionner et de gérer AWS des ressources tierces en traitant l'infrastructure comme du code.

Le OpenSearch CloudFormation modèle automatise le processus de mise en service du modèle pour vous, afin que vous puissiez facilement créer un modèle dans votre domaine de OpenSearch service, puis utiliser l'ID du modèle pour ingérer des données et exécuter des requêtes de recherche neuronale.

Lorsque vous utilisez des encodeurs neuronaux épars avec les versions 2.12 et ultérieures du OpenSearch Service, nous vous recommandons d'utiliser le modèle tokenizer localement plutôt que de le déployer à distance. Pour plus d'informations, consultez la section Modèles de codage épars dans la OpenSearch documentation.

Prérequis

Pour utiliser un CloudFormation modèle avec OpenSearch Service, remplissez les conditions préalables suivantes.

Configuration d'un domaine OpenSearch de service

Avant de pouvoir utiliser un CloudFormation modèle, vous devez configurer un domaine Amazon OpenSearch Service avec la version 2.9 ou ultérieure et activer le contrôle d'accès détaillé. Créez un rôle OpenSearch de backend de service pour autoriser le plugin ML Commons à créer votre connecteur pour vous.

Le CloudFormation modèle crée pour vous un rôle Lambda IAM avec le nom par défautLambdaInvokeOpenSearchMLCommonsRole, que vous pouvez remplacer si vous souhaitez en choisir un autre. Une fois que le modèle a créé ce rôle IAM, vous devez autoriser la fonction Lambda à appeler OpenSearch votre domaine de service. Pour ce faire, associez le rôle nommé ml_full_access à votre rôle OpenSearch principal de service en procédant comme suit :

  1. Accédez au plugin OpenSearch Dashboards correspondant à votre domaine OpenSearch de service. Vous pouvez trouver le point de terminaison Dashboards sur le tableau de bord de votre domaine sur la console OpenSearch de service.

  2. Dans le menu principal, choisissez Sécurité, Rôles, puis sélectionnez le rôle ml_full_access.

  3. Choisissez Mapped users (Utilisateurs mappés), Manage mapping (Gérer le mappage).

  4. Sous Rôles principaux, ajoutez l'ARN du rôle Lambda qui a besoin d'une autorisation pour appeler votre domaine.

    arn:aws:iam::account-id:role/role-name
  5. Sélectionnez Mapper et vérifiez que l'utilisateur ou le rôle s'affiche sous Utilisateurs mappés.

Après avoir mappé le rôle, accédez à la configuration de sécurité de votre domaine et ajoutez le rôle Lambda IAM à OpenSearch votre politique d'accès au service.

Activez les autorisations sur votre Compte AWS

Vous Compte AWS devez être autorisé à accéder CloudFormation à Lambda, ainsi qu'à celui que Service AWS vous choisissez pour votre modèle ( SageMaker Runtime ou Amazon). BedRock

Si vous utilisez Amazon Bedrock, vous devez également enregistrer votre modèle. Consultez la section Accès aux modèles dans le guide de l'utilisateur d'Amazon Bedrock pour enregistrer votre modèle.

Si vous utilisez votre propre compartiment Amazon S3 pour fournir des artefacts de modèle, vous devez ajouter le rôle CloudFormation IAM à votre politique d'accès S3. Pour plus d’informations, consultez la rubrique Ajout et suppression d’autorisations basées sur l’identité IAM du Guide de l’utilisateur IAM.

Amazon SageMaker modèles

Les SageMaker CloudFormation modèles Amazon définissent plusieurs AWS ressources afin de configurer le plugin neuronal et la recherche sémantique pour vous.

Tout d'abord, utilisez le modèle Intégration aux modèles d'intégration de texte via Amazon pour déployer un SageMaker modèle d'intégration de texte dans SageMaker Runtime en tant que serveur. Si vous ne fournissez pas de point de terminaison modèle, CloudFormation crée un rôle IAM qui permet à SageMaker Runtime de télécharger les artefacts du modèle depuis Amazon S3 et de les déployer sur le serveur. Si vous fournissez un point de terminaison, CloudFormation créez un rôle IAM qui permet à la fonction Lambda d'accéder OpenSearch au domaine de service ou, si le rôle existe déjà, le met à jour et le réutilise. Le point de terminaison sert le modèle distant utilisé pour le connecteur ML avec le plugin ML Commons.

Ensuite, utilisez le modèle Integration with Sparse Encoders through Amazon Sagemaker pour créer une fonction Lambda qui permet à votre domaine de configurer des connecteurs d'inférence à distance. Une fois le connecteur créé dans OpenSearch Service, l'inférence à distance peut exécuter une recherche sémantique à l'aide du modèle distant dans SageMaker Runtime. Le modèle vous renvoie l'ID du modèle de votre domaine afin que vous puissiez commencer la recherche.

Pour utiliser les SageMaker CloudFormation modèles Amazon
  1. Ouvrez la console Amazon OpenSearch Service à l'adresse https://console.aws.amazon.com/aos/home.

  2. Dans le volet de navigation de gauche, sélectionnez Intégrations.

  3. Sous chacun des SageMaker modèles Amazon, choisissez Configurer le domaine, Configurer le domaine public.

  4. Suivez les instructions de la CloudFormation console pour approvisionner votre stack et configurer un modèle.

Note

OpenSearch Le service fournit également un modèle distinct pour configurer le domaine VPC. Si vous utilisez ce modèle, vous devez fournir l'ID VPC de la fonction Lambda.

Modèles Amazon Bedrock

À l'instar des SageMaker CloudFormation modèles Amazon, le CloudFormation modèle Amazon Bedrock fournit les AWS ressources nécessaires pour créer des connecteurs entre OpenSearch Service et Amazon Bedrock.

Tout d'abord, le modèle crée un rôle IAM qui permet à la future fonction Lambda d'accéder à OpenSearch votre domaine de service. Le modèle crée ensuite la fonction Lambda, qui permet au domaine de créer un connecteur à l'aide du plugin ML Commons. Une fois que OpenSearch Service a créé le connecteur, la configuration de l'inférence à distance est terminée et vous pouvez exécuter des recherches sémantiques à l'aide des opérations de l'API Amazon Bedrock.

Notez qu'Amazon Bedrock héberge ses propres modèles de ML, il n'est pas nécessaire de déployer un modèle dans SageMaker Runtime. Au lieu de cela, le modèle utilise un point de terminaison prédéterminé pour Amazon Bedrock et ignore les étapes de fourniture du point de terminaison.

Pour utiliser le modèle Amazon Bedrock CloudFormation
  1. Ouvrez la console Amazon OpenSearch Service à l'adresse https://console.aws.amazon.com/aos/home.

  2. Dans le volet de navigation de gauche, sélectionnez Intégrations.

  3. Sous Intégrer au modèle Amazon Titan Text Embeddings via Amazon Bedrock, choisissez Configurer le domaine, Configurer le domaine public.

  4. Suivez les instructions pour configurer votre modèle.

Note

OpenSearch Le service fournit également un modèle distinct pour configurer le domaine VPC. Si vous utilisez ce modèle, vous devez fournir l'ID VPC de la fonction Lambda.

En outre, OpenSearch Service fournit les modèles Amazon Bedrock suivants pour se connecter au modèle Cohere et au modèle d'intégration multimodale Amazon Titan :

  • Integration with Cohere Embed through Amazon Bedrock

  • Integrate with Amazon Bedrock Titan Multi-modal