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.
Verwendung von Nova Embeddings
Amazon Nova Multimodal Embeddings ist ein state-of-the-art multimodales Einbettungsmodell für agentische RAG- und semantische Suchanwendungen. Es handelt sich um das erste einheitliche Einbettungsmodell, das Text, Dokumente, Bilder, Videos und Audio über ein einziges Modell unterstützt, um eine modalitätsübergreifende Suche mit überragender Genauigkeit zu ermöglichen. Nova Multimodal Embeddings ordnet jeden dieser Inhaltstypen einem einheitlichen semantischen Raum zu, sodass Entwickler unimodale, modalübergreifende und multimodale Vektoroperationen durchführen können.
Die Nova-Embeddings-API kann in einer Vielzahl von Anwendungen genutzt werden, wie zum Beispiel:
-
Semantische Inhaltsabfrage und -empfehlung: Erstellen Sie Einbettungen für Ihre Inhalte und nutzen Sie diese, um ähnliche Elemente zu finden oder Ihren Benutzern personalisierte Empfehlungen zu geben.
-
Multimodale Suche: Kombinieren Sie Einbettungen aus verschiedenen Inhaltstypen, um leistungsstarke modalitätsü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.
Wichtigste Funktionen
-
Support für Text, Bilder, Dokumentbilder, Videos und Audiodateien in einer einheitlichen semantischen Umgebung. Die maximale Kontextlänge beträgt 8 000 Token oder 30 Sekunden Video und 30 Sekunden Audio.
-
Synchron und asynchron: Die API unterstützt sowohl die synchrone als auch die asynchrone Verwendung APIs.
-
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. Die API ermöglicht es Ihnen, festzulegen, ob Sie eine einzige Einbettung wünschen, die beide Modalitäten repräsentiert, oder zwei separate Einbettungen, die jeweils den Video- und den Audiostream repräsentieren.
-
Zweck der Einbettung: Mit Nova Multimodal Embeddings können Sie Ihre Einbettungen entsprechend der beabsichtigten nachgelagerten Anwendung optimieren. Zu den unterstützten Anwendungsfällen gehören Abruf (RAG/Search), Klassifizierung und Clustering. Die spezifischen Werte hängen von der Anwendung ab (siehe bewährte Methoden).
-
Größen: Vier Größen zur Abwägung zwischen Einbettungsgenauigkeit und Vektorspeicherkosten: 3 072, 1 024, 384, 256.
-
Eingabemethoden: Sie können Inhalte entweder durch Angabe einer S3-URI oder inline als Base64-Kodierung zum Einbetten übergeben.
Wie Nova Multimodal Embeddings funktioniert
-
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 beliebiger numerischer Werte, der dann für verschiedene Suchfunktionen verwendet werden kann. Ähnlichem Inhalt wird ein näherer Vektor zugewiesen als weniger ähnlichen Inhalten. Beispielsweise wird Inhalten, die als „glücklich“ beschrieben werden könnten, ein Vektor zugewiesen, der einem Vektor wie „freudig“ näher kommt als einem Vektor wie „Traurigkeit“.
Voraussetzungen
Um multimodale Einbettungen zu verwenden, benötigen Sie Folgendes:
-
Python muss installiert sein
-
Die AWS CLI ist installiert
-
Die AWS CLI ist mit den Zugangsdaten für Ihr AWS Konto konfiguriert
-
Das Modell Nova Multimodal Embeddings ist auf Ihrem Konto aktiviert AWS
Ist dies gegeben, können Sie entweder asynchrone oder synchrone Einbettungsanforderungen ausführen.
Einbettungen synchron generieren
Für kleinere Inhaltselemente können Sie die Bedrock Runtime API verwenden. InvokeModel Dies ist eine gute Option, um schnell Einbettungen für Text, Bilder oder kurze Dateien zu generieren. audio/video
Das folgende Beispiel generiert eine synchrone Einbettung für den Text „Hallo Welt!“
import json import boto3 # 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))
Die Ausgabe sieht etwa wie folgt aus:
Request ID: fde55db5-c129-423b-c62d-7a8b36cf2859 { "embeddings": [ { "embeddingType": "TEXT", "embedding": [ 0.031115104, 0.032478657, 0.10006265, ... ] } ] }
Einbettungen asynchron generieren
Bei größeren Inhaltsdateien können Sie die Bedrock StartAsyncInvoke Runtime-Funktion verwenden, um Einbettungen asynchron zu generieren. So können Sie einen Auftrag übermitteln und die Ergebnisse später abrufen, ohne die Ausführung der Anwendung zu blockieren. Die Ergebnisse werden in Amazon S3 gespeichert.
Im folgenden Beispiel wird ein asynchroner Auftrag zur Generierung von Einbettungen für eine Videodatei gestartet:
import boto3 # Create the Bedrock Runtime client. 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://amzn-s3-demo-bucket/path/to/video.mp4"} }, "segmentationConfig": { "durationSeconds": 15 # Segment into 15 second chunks }, }, }, } try: # Invoke the Nova Embeddings model. response = bedrock_runtime.start_async_invoke( modelId="amazon.nova-2-multimodal-embeddings-v1:0", modelInput=model_input, outputDataConfig={ "s3OutputDataConfig": { "s3Uri": "s3://amzn-s3-demo-bucket" } }, ) 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 invocation ARN. print("Invocation ARN:", response.get("invocationArn"))
Die Ausgabe sieht etwa wie folgt aus:
Request ID: 07681e80-5ce0-4723-cf52-68bf699cd23e Invocation ARN: arn:aws:bedrock:us-east-1:111122223333:async-invoke/g7ur3b32a10n
Nachdem Sie den asynchronen Job gestartet haben, verwenden Sie den InvocationARN, um den Jobstatus mit der Funktion zu überprüfen. GetAsyncInvoke Verwenden Sie die Funktion, um die letzten asynchronen Aufrufe und ihren Status anzuzeigen. ListAsyncInvokes
Wenn die Generierung asynchroner Einbettungen abgeschlossen ist, werden Artefakte in den S3-Bucket geschrieben, den Sie als Ausgabeziel angegeben haben. Die Dateien haben die folgende Struktur:
amzn-s3-demo-bucket/job-id/ segmented-embedding-result.json embedding-audio.jsonl embedding-image.json embedding-text.jsonl embedding-video.jsonl manifest.json