Automatische semantische Anreicherung für Serverless - OpenSearch Amazon-Dienst

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.

Automatische semantische Anreicherung für Serverless

Einführung

Die automatische Funktion zur semantischen Anreicherung kann dazu beitragen, die Suchrelevanz gegenüber der lexikalischen Suche um bis zu 20% zu verbessern. Durch die automatische semantische Anreicherung entfällt der undifferenzierte Aufwand, der mit der Verwaltung Ihrer eigenen ML-Modellinfrastruktur (maschinelles Lernen) und der Integration in die Suchmaschine verbunden ist. Die Funktion ist für alle drei serverlosen Erfassungstypen verfügbar: Search, Time Series und Vector.

Was ist semantische Suche

Herkömmliche Suchmaschinen verlassen sich auf word-to-word Matching (auch lexikalische Suche genannt), um Ergebnisse für Suchanfragen zu finden. Diese Methode eignet sich zwar gut für spezifische Suchanfragen wie Modellnummern von Fernsehgeräten, hat jedoch Probleme mit abstrakteren Suchanfragen. Wenn Sie beispielsweise nach „Schuhen für den Strand“ suchen, werden bei einer lexikalischen Suche lediglich einzelne Wörter wie „Schuhe“, „Strand“, „für“ und „der“ in Katalogartikeln gefunden, sodass möglicherweise relevante Produkte wie „wasserfeste Sandalen“ oder „Surfschuhe“ fehlen, die nicht die genauen Suchbegriffe enthalten.

Die semantische Suche gibt Abfrageergebnisse zurück, die nicht nur die Suche nach Schlüsselwörtern, sondern auch die Absicht und die kontextuelle Bedeutung der Suche des Benutzers berücksichtigen. Wenn ein Benutzer beispielsweise nach „Wie behandelt man Kopfschmerzen“ sucht, gibt ein semantisches Suchsystem möglicherweise die folgenden Ergebnisse zurück:

  • Mittel gegen Migräne

  • Techniken zur Schmerzbehandlung

  • Over-the-counter Schmerzmittel

Modelldetails und Leistungsbenchmark

Diese Funktion kümmert sich zwar um die technische Komplexität hinter den Kulissen, ohne das zugrundeliegende Modell preiszugeben, aber wir bieten Transparenz durch eine kurze Modellbeschreibung und Benchmark-Ergebnisse, damit Sie fundierte Entscheidungen über die Einführung von Funktionen bei Ihren kritischen Workloads treffen können.

Bei der automatischen semantischen Anreicherung wird ein vom Service verwaltetes, vorab trainiertes Sparse-Modell verwendet, das effektiv funktioniert, ohne dass eine individuelle Feinabstimmung erforderlich ist. Das Modell analysiert die von Ihnen angegebenen Felder und erweitert sie auf der Grundlage von erlernten Assoziationen aus verschiedenen Trainingsdaten zu spärlichen Vektoren. Die erweiterten Begriffe und ihre Signifikanzgewichte werden für einen effizienten Abruf im systemeigenen Lucene-Indexformat gespeichert. Wir haben diesen Prozess für den Modus „Nur Dokumente“ optimiert, bei dem die Kodierung nur während der Datenaufnahme erfolgt. Suchanfragen werden lediglich tokenisiert und nicht nach dem Sparse-Modell verarbeitet, wodurch die Lösung sowohl kostengünstig als auch leistungsstark ist.

Bei unserer Leistungsvalidierung während der Feature-Entwicklung wurde der MS MARCO-Passage-Retrieval-Datensatz verwendet, der Passagen mit durchschnittlich 334 Zeichen enthielt. Für die Bewertung der Relevanz haben wir den durchschnittlichen Normalized Discounted Cumulative Gain (NDCG) für die ersten 10 Suchergebnisse (ndcg @10) auf dem BEIR-Benchmark für englische Inhalte und den durchschnittlichen NDCG @10 -Wert auf MIRACL für mehrsprachige Inhalte gemessen. Wir haben die Latenz anhand von Messungen zum 90. Perzentil (p90) auf Kundenseite und anhand von Werten für die Suchantwort mit p90 bewertet. Diese Benchmarks liefern grundlegende Leistungsindikatoren sowohl für die Relevanz der Suche als auch für die Antwortzeiten. Hier sind die wichtigsten Benchmark-Zahlen -

  • Englische Sprache — Verbesserung der Relevanz um 20% gegenüber der lexikalischen Suche. Außerdem wurde die Latenz bei der P90-Suche gegenüber der lexikalischen Suche um 7,7% gesenkt (BM25 26 ms und die automatische semantische Anreicherung 24 ms).

  • Mehrsprachig — Verbesserung der Relevanz gegenüber der lexikalischen Suche um 105%, wohingegen die Latenz bei der P90-Suche gegenüber der lexikalischen Suche um 38,4% zunahm (26 ms und die automatische semantische Anreicherung 36 BM25 ms).

Angesichts der Einzigartigkeit der einzelnen Workloads empfehlen wir Ihnen, diese Funktion in Ihrer Entwicklungsumgebung anhand Ihrer eigenen Benchmarking-Kriterien zu bewerten, bevor Sie Entscheidungen zur Implementierung treffen.

Unterstützte Sprachen

Die Funktion unterstützt Englisch. Darüber hinaus unterstützt das Modell auch Arabisch, Bengali, Chinesisch, Finnisch, Französisch, Hindi, Indonesisch, Japanisch, Koreanisch, Persisch, Russisch, Spanisch, Swahili und Telugu.

Richten Sie einen automatischen semantischen Anreicherungsindex für serverlose Sammlungen ein

Das Einrichten eines Indexes mit aktivierter automatischer semantischer Anreicherung für Ihre Textfelder ist einfach. Sie können ihn während der Erstellung eines neuen Indexes über die Konsole und CloudFormation Vorlagen verwalten. APIs Um ihn für einen vorhandenen Index zu aktivieren, müssen Sie den Index mit aktivierter automatischer semantischer Anreicherung für Textfelder neu erstellen.

Konsolenerfahrung: Mit der AWS Konsole können Sie auf einfache Weise einen Index mit Feldern zur automatischen semantischen Anreicherung erstellen. Sobald Sie eine Sammlung ausgewählt haben, finden Sie oben in der Konsole die Schaltfläche Index erstellen. Sobald Sie auf die Schaltfläche „Index erstellen“ klicken, finden Sie Optionen zum Definieren von Feldern für die automatische semantische Anreicherung. In einem Index können Sie Kombinationen aus automatischer semantischer Anreicherung für Englisch und Mehrsprachigkeit sowie lexikalische Felder verwenden.

API-Erfahrung — Verwenden Sie den Befehl create-index, um mithilfe der AWS Befehlszeilenschnittstelle (AWS CLI) einen automatischen Index zur semantischen Anreicherung zu erstellen:

aws opensearchserverless create-index \ --id [collection_id] \ --index-name [index_name] \ --index-schema [index_body] \

Verwenden Sie den folgenden Befehl, um den erstellten Index zu beschreiben:

aws opensearchserverless get-index \ --id [collection_id] \ --index-name [index_name] \

Sie können auch CloudFormation Vorlagen (Type:AWS::OpenSearchServerless::CollectionIndex) verwenden, um eine semantische Suche sowohl während der Sammlungsbereitstellung als auch nach der Erstellung der Sammlung zu erstellen.

Datenaufnahme und Suche

Sobald Sie einen Index mit aktivierter automatischer semantischer Anreicherung erstellt haben, funktioniert die Funktion während der Datenaufnahme automatisch, ohne dass eine zusätzliche Konfiguration erforderlich ist.

Datenaufnahme: Wenn Sie Dokumente zu Ihrem Index hinzufügen, geht das System automatisch wie folgt vor:

  • Analysiert die Textfelder, die Sie für die semantische Anreicherung vorgesehen haben

  • Generiert semantische Kodierungen mithilfe OpenSearch des vom Service verwalteten Sparse-Modells

  • Speichert diese angereicherten Repräsentationen zusammen mit Ihren Originaldaten

Bei diesem Prozess werden OpenSearch die integrierten ML-Konnektoren und Ingest-Pipelines verwendet, die im Hintergrund automatisch erstellt und verwaltet werden.

Suche: Die Daten zur semantischen Anreicherung sind bereits indexiert, sodass Abfragen effizient ausgeführt werden können, ohne das ML-Modell erneut aufrufen zu müssen. Das bedeutet, dass Sie eine verbesserte Suchrelevanz ohne zusätzlichen Aufwand für die Suchlatenz erhalten.

Konfiguration von Berechtigungen für die automatische semantische Anreicherung

Bevor Sie einen automatisierten Index für die semantische Anreicherung erstellen, müssen Sie die erforderlichen Berechtigungen konfigurieren. In diesem Abschnitt werden die benötigten Berechtigungen und deren Einrichtung erläutert.

IAM-Richtlinienberechtigungen

Verwenden Sie die folgende AWS Identity and Access Management (IAM-) Richtlinie, um die erforderlichen Berechtigungen für die Arbeit mit der automatischen semantischen Anreicherung zu gewähren:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AutomaticSemanticEnrichmentPermissions", "Effect": "Allow", "Action": [ "aoss:CreateIndex", "aoss:GetIndex", "aoss:UpdateIndex", "aoss:DeleteIndex", "aoss:APIAccessAll" ], "Resource": "*" } ] }
Wichtige Berechtigungen
  • Die aoss:*Index Berechtigungen ermöglichen die Indexverwaltung

  • Die aoss:APIAccessAll Erlaubnis ermöglicht OpenSearch API-Operationen

  • Um die Berechtigungen auf eine bestimmte Sammlung zu beschränken, "Resource": "*" ersetzen Sie sie durch den ARN der Sammlung

Konfigurieren Sie Datenzugriffsberechtigungen

Um einen Index für die automatische semantische Anreicherung einzurichten, benötigen Sie entsprechende Datenzugriffsrichtlinien, die Berechtigungen für den Zugriff auf Index-, Pipeline- und Modellerfassungsressourcen gewähren. Weitere Informationen zu Datenzugriffsrichtlinien finden Sie unter. Datenzugriffskontrolle für Amazon OpenSearch Serverless Das Verfahren zur Konfiguration einer Datenzugriffsrichtlinie finden Sie unterErstellen von Datenzugriffsrichtlinien (Konsole).

Datenzugriffsberechtigungen

[ { "Description": "Create index permission", "Rules": [ { "ResourceType": "index", "Resource": ["index/collection_name/*"], "Permission": [ "aoss:CreateIndex", "aoss:DescribeIndex", "aoss:UpdateIndex", "aoss:DeleteIndex" ] } ], "Principal": [ "arn:aws:iam::account_id:role/role_name" ] }, { "Description": "Create pipeline permission", "Rules": [ { "ResourceType": "collection", "Resource": ["collection/collection_name"], "Permission": [ "aoss:CreateCollectionItems", "aoss:DescribeCollectionItems" ] } ], "Principal": [ "arn:aws:iam::account_id:role/role_name" ] }, { "Description": "Create model permission", "Rules": [ { "ResourceType": "model", "Resource": ["model/collection_name/*"], "Permission": ["aoss:CreateMLResource"] } ], "Principal": [ "arn:aws:iam::account_id:role/role_name" ] }, ]

Zugriffsberechtigungen für das Netzwerk

Damit der Dienst APIs auf private Sammlungen zugreifen kann, müssen Sie Netzwerkrichtlinien konfigurieren, die den erforderlichen Zugriff zwischen der Service-API und der Sammlung zulassen. Weitere Informationen zu Netzwerkrichtlinien finden Sie unter Netzwerkzugriff für Amazon OpenSearch Serverless.

[ { "Description":"Enable automatic semantic enrichment in a private collection", "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/collection_name" ] } ], "AllowFromPublic":false, "SourceServices":[ "aoss.amazonaws.com" ], } ]
So konfigurieren Sie Netzwerkzugriffsberechtigungen für eine private Sammlung
  1. Melden Sie sich zu https://console.aws.amazon.com/aos/Hause bei der OpenSearch Servicekonsole an.

  2. Wählen Sie in der linken Navigationsleiste Netzwerkrichtlinien aus. Führen Sie dann einen der folgenden Schritte aus:

    • Wählen Sie einen vorhandenen Richtliniennamen und klicken Sie auf Bearbeiten

    • Wählen Sie Netzwerkrichtlinie erstellen und konfigurieren Sie die Richtliniendetails

  3. Wählen Sie im Bereich Zugriffstyp die Option Privat (empfohlen) und anschließend Privater AWS Dienstzugriff aus.

  4. Wählen Sie im Suchfeld Service und dann aoss.amazonaws.com aus.

  5. Wählen Sie im Bereich Ressourcentyp das Feld Zugriff auf Endpunkt aktivieren aus. OpenSearch

  6. Wählen Sie für „Sammlung (en) durchsuchen“ oder geben Sie bestimmte Präfixausdrücke in das Suchfeld „Sammlungsname“ ein. Geben Sie dann den Namen der Sammlungen ein, die mit der Netzwerkrichtlinie verknüpft werden sollen, oder wählen Sie ihn aus.

  7. Wählen Sie Erstellen für eine neue Netzwerkrichtlinie oder Aktualisieren für eine bestehende Netzwerkrichtlinie.

Die Abfrage wird neu geschrieben

Durch die automatische semantische Anreicherung werden Ihre vorhandenen „Match“ -Abfragen automatisch in semantische Suchanfragen umgewandelt, ohne dass Änderungen an der Abfrage erforderlich sind. Wenn eine Übereinstimmungsabfrage Teil einer zusammengesetzten Abfrage ist, durchsucht das System Ihre Abfragestruktur, findet Übereinstimmungsabfragen und ersetzt sie durch neuronale Abfragen mit geringer Dichte. Derzeit unterstützt die Funktion nur das Ersetzen von „Match“ -Abfragen, unabhängig davon, ob es sich um eine eigenständige Abfrage oder um einen Teil einer zusammengesetzten Abfrage handelt. „multi_match“ wird nicht unterstützt. Darüber hinaus unterstützt die Funktion alle zusammengesetzten Abfragen, um ihre verschachtelten Match-Abfragen zu ersetzen. Zu den zusammengesetzten Abfragen gehören: bool, boost, constant_score, dis_max, function_score und hybrid.

Einschränkungen der automatischen semantischen Anreicherung

Die automatische semantische Suche ist am effektivsten, wenn sie auf small-to-medium große Felder angewendet wird, die Inhalte in natürlicher Sprache enthalten, wie Filmtitel, Produktbeschreibungen, Rezensionen und Zusammenfassungen. Die semantische Suche erhöht zwar die Relevanz für die meisten Anwendungsfälle, ist aber für bestimmte Szenarien möglicherweise nicht optimal. Beachten Sie die folgenden Einschränkungen, wenn Sie entscheiden, ob Sie die automatische semantische Anreicherung für Ihren speziellen Anwendungsfall implementieren möchten.

  • Sehr lange Dokumente — Das aktuelle Sparse-Modell verarbeitet nur die ersten 8.192 Tokens jedes Dokuments für Englisch. Bei mehrsprachigen Dokumenten sind es 512 Token. Bei längeren Artikeln sollten Sie die Implementierung von Dokumentenabschnitten in Betracht ziehen, um eine vollständige Inhaltsverarbeitung sicherzustellen.

  • Workloads bei der Protokollanalyse — Semantische Anreicherung erhöht die Indexgröße erheblich, was für Protokollanalysen, bei denen eine exakte Übereinstimmung in der Regel ausreicht, unnötig sein könnte. Der zusätzliche semantische Kontext verbessert die Effektivität der Protokollsuche selten ausreichend, um die erhöhten Speicheranforderungen zu rechtfertigen.

Preisgestaltung

OpenSearch Serverless berechnet die automatische semantische Anreicherung auf der Grundlage der OpenSearch Recheneinheiten (OCUs), die bei der Generierung von spärlichen Vektoren zum Zeitpunkt der Indexierung verbraucht werden. Ihnen wird nur die tatsächliche Nutzung während der Indexierung in Rechnung gestellt. Sie können diesen Verbrauch mithilfe der CloudWatch Amazon-Metrik SemanticSearch OCU überwachen. Spezifische Informationen zu den Limits für Modell-Tokens, zum Volumendurchsatz pro OCU und ein Beispiel für eine Beispielberechnung finden Sie unter OpenSearch Servicepreise.

Beispiel für die Einrichtung eines Index

Ein praktisches Beispiel finden Sie im Blogbeitrag zur Indexeinrichtung für die Produktkatalogsuche mit automatischer semantischer Anreicherung.