Vecteurs d'interrogation - Amazon Simple Storage 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.

Vecteurs d'interrogation

Note

Amazon S3 Vectors est en version préliminaire pour Amazon Simple Storage Service et est sujet à modification.

Vous pouvez exécuter une requête de similarité à l'aide de l'opération QueryVectorsAPI, dans laquelle vous spécifiez le vecteur de requête, le nombre de résultats pertinents à renvoyer (les K voisins les plus proches) et l'ARN de l'index. En outre, vous pouvez utiliser des filtres de métadonnées dans une requête pour rechercher uniquement les vecteurs correspondant au filtre. Si vous faites une demande de filtrage sur un champ de métadonnées non filtrable, la demande renverra une 400 Bad Request erreur. Pour plus d'informations sur le filtrage des métadonnées, consultezFiltrage des métadonnées.

Dans la réponse, les clés vectorielles sont renvoyées par défaut. Vous pouvez éventuellement inclure la distance et les métadonnées dans la réponse.

Lorsque vous générez le vecteur de requête, vous devez utiliser le même modèle d'intégration de vecteurs que celui utilisé pour générer les vecteurs initiaux stockés dans l'index vectoriel. Par exemple, si vous utilisez le modèle Amazon Titan Text Embeddings V2 dans Amazon Bedrock pour générer des intégrations vectorielles de vos documents, utilisez le même modèle d'intégration pour convertir une question en vecteur de requête. En outre, les bases de connaissances Amazon Bedrock fournissent un flux de travail end-to-end RAG entièrement géré dans lequel Amazon Bedrock récupère automatiquement les données de votre source de données S3, convertit le contenu en blocs de texte, génère des intégrations et les stocke dans votre index vectoriel. Vous pouvez ensuite interroger la base de connaissances et générer des réponses basées sur des fragments extraits de vos données sources. Pour plus d'informations sur la façon d'interroger des vecteurs à partir d'une base de connaissances Amazon Bedrock dans la console, consultez(Facultatif) Intégrez les vecteurs S3 aux bases de connaissances Amazon Bedrock.

En outre, l'outil open source Amazon S3 Vectors Embed CLI fournit un moyen simplifié d'effectuer des recherches sémantiques à partir de la ligne de commande. Cet outil open source rationalise le processus de requête en gérant à la fois la génération d'intégration vectorielle avec les modèles Amazon Bedrock Foundation et en exécutant des opérations de recherche sémantique sur vos index vectoriels S3. Pour plus d'informations sur l'utilisation de cet outil pour interroger vos données vectorielles, consultezCréation d'intégrations vectorielles et réalisation de recherches sémantiques avec s3vectors-embed-cli.

S3 Vectors fournit des temps de latence de requête inférieurs à une seconde. S3 Vectors utilise le débit élastique d'Amazon S3 pour gérer les recherches sur des millions de vecteurs et est idéal pour les charges de travail où les requêtes sont moins fréquentes. Lorsque vous effectuez des requêtes de similarité pour vos intégrations vectorielles, plusieurs facteurs peuvent affecter les performances de rappel moyennes, notamment le modèle d'intégration vectorielle, la taille du jeu de données vectorielles (le nombre de vecteurs et de dimensions) et la distribution des requêtes. S3 Vectors fournit un taux de rappel moyen supérieur à 90 % pour la plupart des ensembles de données. Le rappel moyen mesure la qualité des résultats des requêtes. Un rappel moyen de 90 % signifie que la réponse contient 90 % des vecteurs les plus proches réels (vérité fondamentale) qui sont stockés dans l'index vectoriel relatif au vecteur de requête. Cependant, étant donné que les performances réelles peuvent varier en fonction de vos cas d'utilisation spécifiques, nous vous recommandons d'effectuer vos propres tests avec des données et des requêtes représentatives afin de valider que les vecteurs S3 répondent à vos exigences de rappel.

SDK for Python
# Query a vector index with an embedding from Amazon Titan Text Embeddings V2. import boto3 import json # Create Bedrock Runtime and S3 Vectors clients in the AWS Region of your choice. bedrock = boto3.client("bedrock-runtime", region_name="us-west-2") s3vectors = boto3.client("s3vectors", region_name="us-west-2") # Query text to convert to an embedding. input_text = "adventures in space" # Generate the vector embedding. response = bedrock.invoke_model( modelId="amazon.titan-embed-text-v2:0", body=json.dumps({"inputText": input_text}) ) # Extract embedding from response. model_response = json.loads(response["body"].read()) embedding = model_response["embedding"] # Query vector index. response = s3vectors.query_vectors( vectorBucketName="media-embeddings", indexName="movies", queryVector={"float32": embedding}, topK=3, returnDistance=True, returnMetadata=True ) print(json.dumps(response["vectors"], indent=2)) # Query vector index with a metadata filter. response = s3vectors.query_vectors( vectorBucketName="media-embeddings", indexName="movies", queryVector={"float32": embedding}, topK=3, filter={"genre": "scifi"}, returnDistance=True, returnMetadata=True ) print(json.dumps(response["vectors"], indent=2))