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.
Enrichissement sémantique automatique pour Serverless
Introduction
La fonctionnalité d'enrichissement sémantique automatique peut aider à améliorer la pertinence de la recherche jusqu'à 20 % par rapport à la recherche lexicale. L'enrichissement sémantique automatique élimine le fardeau indifférencié lié à la gestion de votre propre infrastructure de modèles de ML (machine learning) et à l'intégration au moteur de recherche. La fonctionnalité est disponible pour les trois types de collection sans serveur : Search, Time Series et Vector.
Qu'est-ce que la recherche sémantique
Les moteurs de recherche traditionnels s'appuient sur la word-to-word correspondance (appelée recherche lexicale) pour trouver les résultats des requêtes. Bien que cela fonctionne bien pour des requêtes spécifiques telles que les numéros de modèles de téléviseurs, cela pose des difficultés pour les recherches plus abstraites. Par exemple, lorsque vous recherchez « chaussures pour la plage », une recherche lexicale fait simplement correspondre les mots « chaussures », « plage », « pour » et « le » dans les articles du catalogue, ce qui peut entraîner l'absence de produits pertinents tels que « sandales imperméables » ou « chaussures de surf » qui ne contiennent pas les termes de recherche exacts.
La recherche sémantique renvoie des résultats de requête qui intègrent non seulement la correspondance des mots clés, mais aussi l'intention et le sens contextuel de la recherche de l'utilisateur. Par exemple, si un utilisateur recherche « comment traiter un mal de tête », un système de recherche sémantique peut renvoyer les résultats suivants :
-
Remèdes contre la migraine
-
Techniques de gestion de la douleur
-
Over-the-counter analgésiques
Détails du modèle et indice de performance
Bien que cette fonctionnalité gère les complexités techniques en arrière-plan sans révéler le modèle sous-jacent, nous assurons la transparence grâce à une brève description du modèle et à des résultats de référence pour vous aider à prendre des décisions éclairées concernant l'adoption des fonctionnalités dans le cadre de vos charges de travail critiques.
L'enrichissement sémantique automatique utilise un modèle clairsemé pré-entraîné et géré par les services qui fonctionne efficacement sans nécessiter de réglage personnalisé. Le modèle analyse les champs que vous spécifiez et les développe en vecteurs épars basés sur des associations apprises à partir de diverses données d'entraînement. Les termes développés et leurs poids de signification sont stockés dans le format d'index Lucene natif pour une extraction efficace. Nous avons optimisé ce processus en utilisant le mode document uniquement, dans
Notre validation des performances lors du développement des fonctionnalités a utilisé le jeu de données de récupération de passages MS MARCO
-
Langue anglaise - Amélioration de la pertinence de 20 % par rapport à la recherche lexicale. Il a également réduit la latence de recherche P90 de 7,7 % par rapport à la recherche lexicale (BM25 26 ms et enrichissement sémantique automatique de 24 ms).
-
Multilingue : amélioration de la pertinence de 105 % par rapport à la recherche lexicale, tandis que la latence de recherche P90 a augmenté de 38,4 % par rapport à la recherche lexicale (BM25 26 ms et enrichissement sémantique automatique 36 ms).
Étant donné la nature unique de chaque charge de travail, nous vous encourageons à évaluer cette fonctionnalité dans votre environnement de développement en utilisant vos propres critères d'analyse comparative avant de prendre des décisions de mise en œuvre.
Langues prises en charge
La fonctionnalité prend en charge l'anglais. En outre, le modèle prend également en charge l'arabe, le bengali, le chinois, le finnois, le français, l'hindi, l'indonésien, le japonais, le coréen, le persan, le russe, l'espagnol, le swahili et le télougou.
Configurer un index d'enrichissement sémantique automatique pour les collections sans serveur
La configuration d'un index avec l'enrichissement sémantique automatique activé pour vos champs de texte est simple, et vous pouvez le gérer via la console et les CloudFormation modèles lors de la création d'un nouvel index. APIs Pour l'activer pour un index existant, vous devez recréer l'index en activant l'enrichissement sémantique automatique pour les champs de texte.
Expérience de console - La AWS console vous permet de créer facilement un index avec des champs d'enrichissement sémantique automatiques. Une fois que vous avez sélectionné une collection, vous trouverez le bouton de création d'index en haut de la console. Une fois que vous avez cliqué sur le bouton de création d'index, vous trouverez des options permettant de définir des champs d'enrichissement sémantique automatique. Dans un index, vous pouvez combiner l'enrichissement sémantique automatique pour l'anglais et le multilingue, ainsi que des champs lexicaux.
Expérience de l'API - Pour créer un index d'enrichissement sémantique automatique à l'aide de l'interface de ligne de AWS commande (AWS CLI), utilisez la commande create-index :
aws opensearchserverless create-index \ --id [collection_id] \ --index-name [index_name] \ --index-schema [index_body] \
Dans l'exemple de schéma d'index suivant, le champ title_semantic a un type de champ défini sur texte et le paramètre semantic_enrichment défini sur status ENABLED. La définition du paramètre semantic_enrichment active l'enrichissement sémantique automatique du champ title_semantic. Vous pouvez utiliser le champ language_options pour spécifier l'anglais ou le multilingue.
aws opensearchserverless create-index \ --id XXXXXXXXX \ --index-name 'product-catalog' \ --index-schema '{ "mappings": { "properties": { "product_id": { "type": "keyword" }, "title_semantic": { "type": "text", "semantic_enrichment": { "status": "ENABLED", "language_options": "english" } }, "title_non_semantic": { "type": "text" } } } }'
Pour décrire l'index créé, utilisez la commande suivante :
aws opensearchserverless get-index \ --id [collection_id] \ --index-name [index_name] \
Vous pouvez également utiliser des CloudFormation modèles (Type :AWS::OpenSearchServerless::CollectionIndex) pour créer une recherche sémantique pendant le provisionnement de la collection ainsi qu'après la création de la collection.
Ingestion et recherche de données
Une fois que vous avez créé un index avec l'enrichissement sémantique automatique activé, la fonctionnalité fonctionne automatiquement pendant le processus d'ingestion des données, aucune configuration supplémentaire n'est requise.
Ingestion des données : lorsque vous ajoutez des documents à votre index, le système :
-
Analyse les champs de texte que vous avez désignés pour l'enrichissement sémantique
-
Génère des codages sémantiques à l'aide du modèle clairsemé géré par le OpenSearch service
-
Stocke ces représentations enrichies aux côtés de vos données d'origine
Ce processus utilise OpenSearch les connecteurs ML et les pipelines d'ingestion intégrés, qui sont créés et gérés automatiquement en arrière-plan.
Recherche : les données d'enrichissement sémantique sont déjà indexées, de sorte que les requêtes s'exécutent efficacement sans invoquer à nouveau le modèle ML. Cela signifie que vous bénéficiez d'une pertinence de recherche améliorée sans surcoût de latence de recherche supplémentaire.
Configuration des autorisations pour l'enrichissement sémantique automatique
Avant de créer un index d'enrichissement sémantique automatique, vous devez configurer les autorisations requises. Cette section explique les autorisations nécessaires et explique comment les configurer.
Autorisations liées à la politique IAM
Utilisez la politique Gestion des identités et des accès AWS (IAM) suivante pour accorder les autorisations nécessaires à l'utilisation de l'enrichissement sémantique automatique :
- Autorisations de clés
-
-
Les
aoss:*Indexautorisations permettent la gestion des index -
L'
aoss:APIAccessAllautorisation autorise les opérations OpenSearch d'API -
Pour restreindre les autorisations à une collection spécifique, remplacez-la
"Resource": "*"par l'ARN de la collection
-
Configuration des autorisations d'accès aux données
Pour configurer un index pour un enrichissement sémantique automatique, vous devez disposer de politiques d'accès aux données appropriées autorisant l'accès aux ressources de collecte d'index, de pipeline et de modèles. Pour plus d'informations sur les politiques d'accès aux données, consultezContrôle d'accès aux données pour Amazon OpenSearch Serverless. Pour la procédure de configuration d'une politique d'accès aux données, consultezCréation de stratégies d'accès aux données (console).
Autorisations d'accès aux données
[ { "Description": "Create index permission", "Rules": [ { "ResourceType": "index", "Resource": ["index/collection_name/*"], "Permission": [ "aoss:CreateIndex", "aoss:DescribeIndex", "aoss:UpdateIndex", "aoss:DeleteIndex" ] } ], "Principal": [ "arn:aws:iam::account_id:role/role_name" ] }, { "Description": "Create pipeline permission", "Rules": [ { "ResourceType": "collection", "Resource": ["collection/collection_name"], "Permission": [ "aoss:CreateCollectionItems", "aoss:DescribeCollectionItems" ] } ], "Principal": [ "arn:aws:iam::account_id:role/role_name" ] }, { "Description": "Create model permission", "Rules": [ { "ResourceType": "model", "Resource": ["model/collection_name/*"], "Permission": ["aoss:CreateMLResource"] } ], "Principal": [ "arn:aws:iam::account_id:role/role_name" ] }, ]
Autorisations d'accès au réseau
Pour autoriser le service APIs à accéder aux collections privées, vous devez configurer des politiques réseau qui autorisent l'accès requis entre l'API du service et la collection. Pour plus d'informations sur les politiques réseau, consultez la section Accès réseau pour Amazon OpenSearch Serverless.
[ { "Description":"Enable automatic semantic enrichment in a private collection", "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/collection_name" ] } ], "AllowFromPublic":false, "SourceServices":[ "aoss.amazonaws.com" ], } ]
Pour configurer les autorisations d'accès réseau pour une collection privée
-
Connectez-vous à la console de OpenSearch service à la https://console.aws.amazon.com/aos/maison
. -
Dans le volet de navigation de gauche, sélectionnez Stratégies réseau. Ensuite, effectuez l’une des actions suivantes :
-
Choisissez un nom de politique existant et cliquez sur Modifier
-
Choisissez Créer une politique réseau et configurez les détails de la politique
-
-
Dans la zone Type d'accès, choisissez Privé (recommandé), puis sélectionnez Accès privé au AWS service.
-
Dans le champ de recherche, choisissez Service, puis aoss.amazonaws.com.
-
Dans la zone Type de ressource, cochez la case Activer l'accès au OpenSearch point de terminaison.
-
Pour Rechercher une ou plusieurs collections, ou saisir des termes de préfixes spécifiques, dans le champ de recherche, sélectionnez Nom de la collection. Entrez ou sélectionnez ensuite le nom des collections à associer à la politique réseau.
-
Choisissez Créer pour une nouvelle politique réseau ou Mettre à jour pour une politique réseau existante.
Réécritures de requêtes
L'enrichissement sémantique automatique convertit automatiquement vos requêtes « correspondantes » existantes en requêtes de recherche sémantique sans qu'il soit nécessaire de les modifier. Si une requête correspondante fait partie d'une requête composée, le système parcourt votre structure de requête, trouve les requêtes correspondantes et les remplace par des requêtes neuronales clairsemées. Actuellement, la fonctionnalité prend uniquement en charge le remplacement des requêtes « match », qu'il s'agisse d'une requête autonome ou d'une partie d'une requête composée. « multi_match » n'est pas pris en charge. En outre, cette fonctionnalité prend en charge toutes les requêtes composées pour remplacer leurs requêtes de correspondance imbriquées. Les requêtes composées incluent : bool, boosting, constant_score, dis_max, function_score et hybrid.
Limites de l'enrichissement sémantique automatique
La recherche sémantique automatique est particulièrement efficace lorsqu'elle est appliquée à des champs small-to-medium dimensionnés contenant du contenu en langage naturel, tels que des titres de films, des descriptions de produits, des critiques et des résumés. Bien que la recherche sémantique améliore la pertinence dans la plupart des cas d'utilisation, elle peut ne pas être optimale pour certains scénarios. Tenez compte des limites suivantes lorsque vous décidez d'implémenter l'enrichissement sémantique automatique pour votre cas d'utilisation spécifique.
-
Documents très longs — Le modèle clairsemé actuel ne traite que les 8 192 premiers jetons de chaque document en anglais. Pour les documents multilingues, il s'agit de 512 jetons. Pour les articles longs, pensez à implémenter le découpage des documents afin de garantir un traitement complet du contenu.
-
Charges de travail d'analyse des journaux : l'enrichissement sémantique augmente considérablement la taille de l'index, ce qui peut être inutile pour l'analyse des journaux où une correspondance exacte est généralement suffisante. Le contexte sémantique supplémentaire améliore rarement suffisamment l'efficacité de la recherche dans les journaux pour justifier les exigences de stockage accrues.
-
L'enrichissement sémantique automatique n'est pas compatible avec la fonctionnalité Source dérivée.
Tarification
OpenSearch L'enrichissement sémantique automatique des factures sans serveur est basé sur les unités de OpenSearch calcul (OCUs) consommées lors de la génération de vecteurs épars au moment de l'indexation. Vous n'êtes facturé que pour l'utilisation réelle lors de l'indexation. Vous pouvez surveiller cette consommation à l'aide de l' SemanticSearchOCU CloudWatch métrique Amazon. Pour obtenir des informations spécifiques sur les limites des jetons du modèle, le débit volumique par OCU et un exemple de calcul d'échantillon, consultez la section Tarification des OpenSearch services