Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verwenden von Amazon Nova-Einbettungen
Amazon Nova Multimodal Embeddings ist ein multimodales Einbettungsmodell für agentische RAG- und semantische Suchanwendungen. Es unterstützt Text, Dokumente, Bilder, Video und Audio über ein einziges Modell und ermöglicht so einen modalübergreifenden Abruf. Nova Multimodal Embeddings ordnet jeden dieser Inhaltstypen einem einheitlichen semantischen Raum zu, sodass Sie unimodale, modalübergreifende und multimodale Vektoroperationen durchführen können.
Wenn ein Inhalt durch Nova-Einbettungen geführt wird, wandelt das Modell diesen Inhalt in ein universelles numerisches Format um, das als Vektor bezeichnet wird. Ein Vektor ist ein Satz numerischer Werte, der für verschiedene Suchfunktionen verwendet werden kann. Ähnlichem Inhalt wird ein näherer Vektor zugewiesen als weniger ähnlichen Inhalten.
Anwendungen:
-
Semantischer Inhaltsabruf und Empfehlung: Generieren Sie Einbettungen für Ihre Inhalte und verwenden Sie sie dann, um ähnliche Artikel zu finden oder personalisierte Empfehlungen abzugeben.
-
Multimodale Suche: Kombinieren Sie Einbettungen aus verschiedenen Inhaltstypen, um modalübergreifende Suchfunktionen zu ermöglichen.
-
RAG: Generieren Sie Einbettungen aus multimodalen Inhalten wie Dokumenten mit verschachtelten Texten und Bildern, um Ihren Abruf-Workflow für GenAI-Anwendungen zu optimieren.
Schlüssel-Features
Diese Hauptmerkmale zeichnen Nova Embeddings aus:
-
Support für Text, Bild, Dokumentbild, Video und Audio in einem einheitlichen semantischen Raum. Die maximale Kontextlänge beträgt 8.000 Token oder 30 Sekunden Video und 30 Sekunden Audio.
-
Synchron und asynchron APIs: Die API unterstützt sowohl die synchrone als auch die asynchrone Verwendung.
-
Segmentierung großer Dateien: Die asynchrone API erleichtert die Arbeit mit großen Eingaben, indem sie eine API-basierte Segmentierung für lange Texte, Videos und Audiodateien bereitstellt, die durch benutzerdefinierte Parameter gesteuert wird. Das Modell generiert für jedes Segment eine einzige Einbettung.
-
Video mit Audio: Video und Audio gleichzeitig verarbeiten. Geben Sie an, ob Sie eine einzelne Einbettung, die beide Modalitäten repräsentiert, oder zwei separate Einbettungen wünschen.
-
Zweck der Einbettung: Optimieren Sie Ihre Einbettungen je nach der beabsichtigten Downstream-Anwendung (, Klassifizierung, Clustering). retrieval/RAG/Search
-
Größen: Vier Größen zur Abwägung zwischen Einbettungsgenauigkeit und Vektorspeicherkosten: 3 072, 1 024, 384, 256.
-
Eingabemethoden: Übergeben Sie den einzubettenden Inhalt, indem Sie eine S3-URI oder eine Inline-Version als Base64-Kodierung angeben.
Einbettungen werden generiert
Gehen Sie wie folgt vor, um Einbettungen zu generieren.
Synchrone Einbettung von Text:
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))
versuche:
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))
Asynchrone Einbettung für Video:
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 }, }, }, }
versuche:
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'))
Batch-Inferenz
Mit Batch-Inferenz können Sie mehrere Anfragen einreichen und Einbettungen asynchron generieren. Batch-Inferenz hilft Ihnen, viele Anfragen effizient zu verarbeiten, indem sie eine einzige Anfrage senden und Antworten in einem Amazon S3 S3-Bucket generieren.
-
Nachdem Sie Modelleingaben in von Ihnen erstellten Dateien definiert haben, laden Sie die Dateien in einen S3-Bucket hoch.
-
Anschließend übermitteln Sie eine Batch-Inferenzanforderung und geben den S3-Bucket an.
-
Nachdem der Auftrag abgeschlossen ist, können Sie die Ausgabedateien von S3 abrufen.
-
Sie können Batch-Inferenz verwenden, um die Leistung der Modellinferenz bei großen Datensätzen zu verbessern.
Formatieren Sie Ihre Batch-Inferenzdaten und laden Sie sie hoch
Sie müssen Ihre Batch-Inferenzdaten zu einem S3-Speicherort hinzufügen, den Sie auswählen oder angeben, wenn Sie einen Auftrag zum Aufruf eines Modells übermitteln. Der S3-Standort muss die folgenden Elemente enthalten:
Mindestens eine JSONL-Datei, die die Modelleingaben definiert. Eine JSONL-Datei enthält Zeilen mit JSON-Objekten. Ihre JSONL-Datei muss die Erweiterung .jsonl sowie folgendes Format aufweisen:
{ "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" } } } }
Unterstützte Eingabedateitypen
-
Bildformate: PNG, JPEG, WEBP, GIF
-
Audioformate: WAV MP3, OGG
-
Videoformate: MOV MP4, MKV, WEBM, FLV, MPEG, MPG, WMV, 3GP