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 des intégrations Amazon Nova
Amazon Nova Multimodal Embeddings est un modèle d'intégration multimodale pour les applications AGENTIC RAG et de recherche sémantique. Il prend en charge le texte, les documents, les images, la vidéo et l'audio via un modèle unique, permettant une récupération intermodale. Nova Multimodal Embeddings mappe chacun de ces types de contenu dans un espace sémantique unifié, ce qui vous permet de réaliser des opérations vectorielles unimodales, intermodales et multimodales.
Lorsqu’un contenu est transmis via les vectorisations Nova, le modèle convertit ce contenu en un format numérique universel, appelé vecteur. Un vecteur est un ensemble de valeurs numériques qui peuvent être utilisées pour différentes fonctionnalités de recherche. Les contenus similaires se voient attribuer un vecteur plus proche que les contenus moins similaires.
Applications :
-
Récupération de contenu sémantique et recommandation : générez des intégrations pour votre contenu, puis utilisez-les pour rechercher des éléments similaires ou fournir des recommandations personnalisées.
-
Recherche multimodale : combinez les intégrations de différents types de contenu pour activer les fonctionnalités de recherche intermodale.
-
RAG : générez des vectorisations à partir de contenu multimodal, tel que des documents contenant du texte et des images entrelacés, afin d’optimiser votre flux de travail de recherche pour les applications GenAI.
Fonctions principales
Les principales caractéristiques de Nova Embeddings sont les suivantes :
-
Support du texte, de l'image, de l'image du document, de la vidéo et de l'audio dans un espace sémantique unifié. La longueur maximale du contexte est de 8 000 jetons ou 30 s de vidéo et 30 s d'audio.
-
Synchrone et asynchrone APIs : l'API prend en charge l'utilisation synchrone et asynchrone.
-
Segmentation de fichiers volumineux : l’API asynchrone facilite le traitement de données d’entrée volumineuses en fournissant une segmentation créée à l’API pour les textes, vidéos et fichiers audio longs, contrôlée par des paramètres définis par l’utilisateur. Le modèle générera une seule vectorisation pour chaque segment.
-
Vidéo avec audio : traitez simultanément la vidéo et l’audio. Spécifiez si vous souhaitez une intégration unique représentant les deux modalités ou deux intégrations distinctes.
-
Objectif de l'intégration : optimisez vos intégrations en fonction de l'application en aval prévue (classificationretrieval/RAG/Search, clustering).
-
Tailles des dimensions : 4 tailles de dimensions pour trouver un compromis entre la précision de la vectorisation et le coût de stockage des vecteurs : 3072 ; 1024 ; 384 ; 256.
-
Méthodes de saisie : transmettez le contenu à intégrer en spécifiant un URI S3 ou en ligne sous forme de codage base64.
Génération d'intégrations
Procédez comme suit pour générer des intégrations.
Intégration synchrone pour le texte :
import boto3 import json # Create the Bedrock Runtime client. bedrock_runtime = boto3.client( service_name='bedrock-runtime', region_name='us-east-1', ) # Define the request body. request_body = { 'taskType': 'SINGLE_EMBEDDING', 'singleEmbeddingParams': { 'embeddingPurpose': 'GENERIC_INDEX', 'embeddingDimension': 3072, 'text': {'truncationMode': 'END', 'value': 'Hello, World!'}, }, } try: # Invoke the Nova Embeddings model. response = bedrock_runtime.invoke_model( body=json.dumps(request_body, indent=2), modelId='amazon.nova-2-multimodal-embeddings-v1:0', accept='application/json', contentType='application/json', ) except Exception as e: # Add your own exception handling here. print(e) # Print the request ID. print('Request ID:', response.get('ResponseMetadata').get('RequestId')) # Print the response body. response_body = json.loads(response.get('body').read()) print(json.dumps(response_body, indent=2))
essayez :
response = bedrock_runtime.invoke_model( body=json.dumps(request_body, indent=2), modelId='amazon.nova-2-multimodal-embeddings-v1:0', accept='application/json', contentType='application/json', ) except Exception as e: print(e) print('Request ID:', response.get('ResponseMetadata').get('RequestId')) response_body = json.loads(response.get('body').read()) print(json.dumps(response_body, indent=2))
Intégration asynchrone pour les vidéos :
import boto3 bedrock_runtime = boto3.client( service_name='bedrock-runtime', region_name='us-east-1', ) model_input = { 'taskType': 'SEGMENTED_EMBEDDING', 'segmentedEmbeddingParams': { 'embeddingPurpose': 'GENERIC_INDEX', 'embeddingDimension': 3072, 'video': { 'format': 'mp4', 'embeddingMode': 'AUDIO_VIDEO_COMBINED', 'source': { 's3Location': {'uri': 's3://my-bucket/path/to/video.mp4'} }, 'segmentationConfig': { 'durationSeconds': 15 # Segment into 15 second chunks }, }, }, }
essayez :
response = bedrock_runtime.start_async_invoke( modelId='amazon.nova-2-multimodal-embeddings-v1:0', modelInput=model_input, outputDataConfig={ 's3OutputDataConfig': { 's3Uri': 's3://my-bucket' } }, ) except Exception as e: print(e) print('Request ID:', response.get('ResponseMetadata').get('RequestId')) print('Invocation ARN:', response.get('invocationArn'))
Inférence par lots
L'inférence par lots vous permet de soumettre plusieurs demandes et de générer des intégrations de manière asynchrone. L'inférence par lots vous permet de traiter efficacement de nombreuses demandes en envoyant une seule demande et en générant des réponses dans un compartiment Amazon S3.
-
Après avoir défini les entrées du modèle dans les fichiers que vous créez, vous chargez les fichiers dans un compartiment S3.
-
Vous soumettez ensuite une demande d’inférence par lots et spécifiez le compartiment S3.
-
Une fois la tâche terminée, vous pouvez extraire les fichiers de sortie depuis S3.
-
Vous pouvez utiliser l’inférence par lots pour améliorer les performances de l’inférence des modèles sur les jeux de données volumineux.
Formatez et téléchargez vos données d'inférence par lots
Vous devez ajouter vos données d’inférence par lots à un emplacement S3 que vous choisirez ou spécifierez lors de la soumission d’un modèle de tâche d’invocation. L'emplacement S3 doit contenir les éléments suivants :
Au moins un fichier JSONL qui définit les entrées du modèle. Un ficher JSONL contient des lignes d’objets JSON. Votre format JSONL doit se terminer par l’extension .jsonl et être au format suivant :
{ "recordId": "record001", "modelInput": { "taskType": "SINGLE_EMBEDDING", "singleEmbeddingParams": { "embeddingPurpose": "GENERIC_INDEX", "embeddingDimension": 3072, "text": { "source": { "s3Location": { "uri": "s3://batch-inference-input-bucket/text_001.txt", "bucketOwner": "111122223333" } }, "truncationMode": "END" } } } }
Types de fichiers d'entrée pris en charge
-
Formats d'image : PNG, JPEG, WEBP, GIF
-
Formats audio : WAV MP3, OGG
-
Formats vidéo : MOV MP4, MKV, WEBM, FLV, MPEG, MPG, WMV, 3GP