Vektoren abfragen - Amazon Simple Storage Service

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.

Vektoren abfragen

Anmerkung

Amazon S3 Vectors befindet sich in der Vorschauversion für Amazon Simple Storage Service und kann sich ändern.

Sie können eine Ähnlichkeitsabfrage mit der QueryVectorsAPI-Operation ausführen, bei der Sie den Abfragevektor, die Anzahl der zurückzugebenden relevanten Ergebnisse (die obersten K nächsten Nachbarn) und den Index-ARN angeben. Darüber hinaus können Sie Metadatenfilter in einer Abfrage verwenden, um nur die Vektoren zu durchsuchen, die dem Filter entsprechen. Wenn Sie eine Anfrage zum Filtern nach einem nicht filterbaren Metadatenfeld stellen, gibt die Anfrage einen 400 Bad Request Fehler zurück. Weitere Informationen zur Metadatenfilterung finden Sie unter. Filterung von Metadaten

In der Antwort werden die Vektorschlüssel standardmäßig zurückgegeben. Sie können optional die Entfernung und die Metadaten in die Antwort einbeziehen.

Bei der Generierung des Abfragevektors sollten Sie dasselbe Vektoreinbettungsmodell verwenden, das für die Generierung der ursprünglichen Vektoren verwendet wurde, die im Vektorindex gespeichert sind. Wenn Sie beispielsweise das Modell Amazon Titan Text Embeddings V2 in Amazon Bedrock verwenden, um Vektoreinbettungen Ihrer Dokumente zu generieren, verwenden Sie dasselbe Einbettungsmodell, um eine Frage in einen Abfragevektor zu konvertieren. Darüber hinaus bietet Amazon Bedrock Knowledge Bases einen vollständig verwalteten end-to-end RAG-Workflow, bei dem Amazon Bedrock automatisch Daten aus Ihrer S3-Datenquelle abruft, Inhalte in Textblöcke konvertiert, Einbettungen generiert und sie in Ihrem Vektorindex speichert. Anschließend können Sie die Wissensdatenbank abfragen und Antworten auf der Grundlage von Blöcken generieren, die aus Ihren Quelldaten abgerufen wurden. Weitere Informationen zum Abfragen von Vektoren aus einer Amazon Bedrock-Wissensdatenbank in der Konsole finden Sie unter(Optional) Integrieren Sie S3-Vektoren in Amazon Bedrock Knowledge Bases.

Darüber hinaus bietet das Open-Source-CLI-Tool Amazon S3 Vectors Embed eine vereinfachte Möglichkeit, semantische Suchen von der Befehlszeile aus durchzuführen. Dieses Open-Source-Tool optimiert den Abfrageprozess, indem es sowohl die Generierung der Vektoreinbettung mit Amazon Bedrock Foundation-Modellen als auch die Ausführung semantischer Suchoperationen anhand Ihrer S3-Vektorindizes übernimmt. Weitere Informationen zur Verwendung dieses Tools für die Abfrage Ihrer Vektordaten finden Sie unter. Vektoreinbettungen erstellen und semantische Suchen durchführen mit s3vectors-embed-cli

S3 Vectors bietet Abfragelatenzzeiten von weniger als einer Sekunde. S3 Vectors nutzt den elastischen Durchsatz von Amazon S3, um Suchanfragen in Millionen von Vektoren abzuwickeln, und ist ideal für Workloads, bei denen Abfragen seltener sind. Bei der Durchführung von Ähnlichkeitsabfragen für Ihre Vektoreinbettungen können mehrere Faktoren die durchschnittliche Abrufleistung beeinflussen, darunter das Vektor-Einbettungsmodell, die Größe des Vektordatensatzes (die Anzahl der Vektoren und Dimensionen) und die Verteilung der Abfragen. S3 Vectors bietet bei den meisten Datensätzen einen durchschnittlichen Erinnerungswert von über 90%. Der durchschnittliche Abruf misst die Qualität der Abfrageergebnisse. Ein durchschnittlicher Erinnerungswert von 90% bedeutet, dass die Antwort 90% der tatsächlich nächstgelegenen Vektoren (Ground Truth) enthält, die im Vektorindex relativ zum Abfragevektor gespeichert sind. Da die tatsächliche Leistung jedoch je nach Ihren spezifischen Anwendungsfällen variieren kann, empfehlen wir, Ihre eigenen Tests mit repräsentativen Daten und Abfragen durchzuführen, um zu überprüfen, ob S3 Vectors Ihre Rückrufanforderungen erfüllt.

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))