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 Amazon Service OpenSearch
Einführung
Amazon OpenSearch Service verwendet word-to-word Matching (lexikalische Suche), um Ergebnisse zu finden, ähnlich wie andere herkömmliche Suchmaschinen. Dieser Ansatz eignet sich gut für spezifische Abfragen wie Produktcodes oder Modellnummern, hat jedoch Probleme mit abstrakten Suchanfragen, bei denen es entscheidend ist, die Benutzerabsicht zu verstehen. Wenn Sie beispielsweise nach „Strandschuhen“ suchen, werden bei der lexikalischen Suche einzelne Wörter „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 automatische semantische Anreicherung löst diese Einschränkung, indem sie sowohl Übereinstimmungen mit Schlüsselwörtern als auch die kontextuelle Bedeutung von Suchanfragen berücksichtigt. Diese Funktion versteht die Suchabsicht und verbessert die Suchrelevanz um bis zu 20%. Aktivieren Sie diese Funktion für Textfelder in Ihrem Index, um die Suchergebnisse zu verbessern.
Anmerkung
Die automatische semantische Anreicherung ist für OpenSearch Dienstdomänen verfügbar, auf denen Version 2.19 oder höher ausgeführt wird. Darüber hinaus müssen Domänen mit OpenSearch Version 2.19 auch über das neueste Versionsupdate der Servicesoftware verfügen. Derzeit ist die Funktion für öffentliche Domänen verfügbar, und VPC-Domänen werden nicht unterstützt.
Modelldetails und Leistungs-Benchmark
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
Bei unserer Leistungsvalidierung während der Feature-Entwicklung wurde der MS MARCO-Passage-Retrieval-Datensatz
-
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 Domains 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 Domain 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 opensearch create-index \ --domain-name [domain_name] \ --index-name [index_name] \ --index-schema [index_body] \
Im folgenden Beispiel für ein Indexschema hat das Feld title_semantic einen Feldtyp, der auf Text gesetzt ist, und der Parameter semantic_enrichment ist auf den Status ENABLED gesetzt. Das Setzen des Parameters semantic_enrichment ermöglicht die automatische semantische Anreicherung des Felds title_semantic. Sie können das Feld language_options verwenden, um entweder Englisch oder Mehrsprachigkeit anzugeben.
aws opensearch create-index \ --id XXXXXXXXX \ --index-name 'product-catalog' \ --index-schema '{ "mappings": { "properties": { "product_id": { "type": "keyword" }, "title_semantic": { "type": "text", "semantic_enrichment": { "status": "ENABLED", "language_options": "english" } }, "title_non_semantic": { "type": "text" } } } }'
Verwenden Sie den folgenden Befehl, um den erstellten Index zu beschreiben:
aws opensearch get-index \ --domain-name [domain_name] \ --index-name [index_name] \
Datenaufnahme und Suche
Sobald Sie einen Index mit aktivierter automatischer semantischer Anreicherung erstellt haben, funktioniert die Funktion während der Datenaufnahme automatisch, sodass keine 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, 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 Index mit automatischer semantischer Anreicherung erstellen, müssen Sie die erforderlichen Berechtigungen konfigurieren. In diesem Abschnitt werden die Berechtigungen erläutert, die für verschiedene Indexoperationen benötigt werden, und wie sie sowohl für AWS Identity and Access Management (IAM) als auch für detaillierte Zugriffskontrollszenarien eingerichtet werden.
IAM-Berechtigungen
Die folgenden IAM-Berechtigungen sind für automatische semantische Anreicherungsvorgänge erforderlich. Diese Berechtigungen variieren je nach dem spezifischen Indexvorgang, den Sie ausführen möchten.
CreateIndex API-Berechtigungen
Um einen Index mit automatischer semantischer Anreicherung zu erstellen, benötigen Sie die folgenden IAM-Berechtigungen:
-
es:CreateIndex— Erstellen Sie einen Index mit Funktionen zur semantischen Anreicherung. -
es:ESHttpHead— Führt HEAD-Anfragen durch, um die Existenz des Indexes zu überprüfen. -
es:ESHttpPut— Führt PUT-Anfragen zur Indexerstellung durch. -
es:ESHttpPost— Führt POST-Anfragen für Indexoperationen durch.
UpdateIndex API-Berechtigungen
Um einen vorhandenen Index mit automatischer semantischer Anreicherung zu aktualisieren, benötigen Sie die folgenden IAM-Berechtigungen:
-
es:UpdateIndex— Aktualisieren Sie die Indexeinstellungen und Zuordnungen. -
es:ESHttpPut— Führt PUT-Anfragen für Indexaktualisierungen durch. -
es:ESHttpGet— Führt GET-Anfragen aus, um Indexinformationen abzurufen. -
es:ESHttpPost— Führt POST-Anfragen für Indexoperationen durch.
GetIndex API-Berechtigungen
Um Informationen über einen Index mit automatischer semantischer Anreicherung abzurufen, benötigen Sie die folgenden IAM-Berechtigungen:
-
es:GetIndex— Ruft Indexinformationen und Einstellungen ab. -
es:ESHttpGet— Führt GET-Anfragen aus, um Indexdaten abzurufen.
DeleteIndex API-Berechtigungen
Um einen Index mit automatischer semantischer Anreicherung zu löschen, benötigen Sie die folgenden IAM-Berechtigungen:
-
es:DeleteIndex— Löscht einen Index und seine Komponenten zur semantischen Anreicherung. -
es:ESHttpDelete— Führt DELETE-Anfragen zur Indexentfernung durch.
Beispiel einer IAM-Richtlinie
Das folgende Beispiel für eine identitätsbasierte Zugriffsrichtlinie stellt die Berechtigungen bereit, die ein Benutzer benötigt, um Indizes mit automatischer semantischer Anreicherung zu verwalten:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSemanticEnrichmentIndexOperations", "Effect": "Allow", "Action": [ "es:CreateIndex", "es:UpdateIndex", "es:GetIndex", "es:DeleteIndex", "es:ESHttpHead", "es:ESHttpGet", "es:ESHttpPut", "es:ESHttpPost", "es:ESHttpDelete" ], "Resource": "arn:aws:es:aws-region:111122223333:domain/domain-name/*" } ] }
Ersetzen Sieaws-region, und domain-name durch 111122223333 Ihre spezifischen Werte. Sie können den Zugriff weiter einschränken, indem Sie bestimmte Indexmuster im Ressourcen-ARN angeben.
Fein abgestufte Zugriffsberechtigungen
Wenn für Ihre Amazon OpenSearch Service-Domain eine detaillierte Zugriffskontrolle aktiviert ist, benötigen Sie zusätzliche Berechtigungen, die über die IAM-Berechtigungen hinausgehen. Die folgenden Berechtigungen sind für jeden Indexvorgang erforderlich.
CreateIndex API-Berechtigungen
Wenn die detaillierte Zugriffskontrolle aktiviert ist, sind die folgenden zusätzlichen Berechtigungen erforderlich, um einen Index mit automatischer semantischer Anreicherung zu erstellen:
-
indices:admin/create— Erstellen Sie Indexoperationen. -
indices:admin/mapping/put— Erstellen und aktualisieren Sie Indexzuordnungen. -
cluster:admin/opensearch/ml/create_connector— Erstellen Sie Konnektoren für maschinelles Lernen für die semantische Verarbeitung. -
cluster:admin/opensearch/ml/register_model— Registrieren Sie Modelle für maschinelles Lernen zur semantischen Anreicherung. -
cluster:admin/ingest/pipeline/put— Erstellen Sie Ingest-Pipelines für die Datenverarbeitung. -
cluster:admin/search/pipeline/put— Erstellen Sie Such-Pipelines für die Abfrageverarbeitung.
UpdateIndex API-Berechtigungen
Wenn die detaillierte Zugriffskontrolle aktiviert ist, sind die folgenden zusätzlichen Berechtigungen erforderlich, um einen Index mit automatischer semantischer Anreicherung zu aktualisieren:
-
indices:admin/get— Ruft Indexinformationen ab. -
indices:admin/settings/update— Aktualisieren Sie die Indexeinstellungen. -
indices:admin/mapping/put— Aktualisieren Sie die Indexzuordnungen. -
cluster:admin/opensearch/ml/create_connector— Erstellen Sie Konnektoren für maschinelles Lernen. -
cluster:admin/opensearch/ml/register_model— Registrieren Sie Modelle für maschinelles Lernen. -
cluster:admin/ingest/pipeline/put— Erstellen Sie Ingest-Pipelines. -
cluster:admin/search/pipeline/put— Such-Pipelines erstellen. -
cluster:admin/ingest/pipeline/get— Ruft Informationen zur Ingest-Pipeline ab. -
cluster:admin/search/pipeline/get— Ruft Informationen zur Suchpipeline ab.
GetIndex API-Berechtigungen
Wenn die detaillierte Zugriffskontrolle aktiviert ist, sind die folgenden zusätzlichen Berechtigungen erforderlich, um Informationen über einen Index mit automatischer semantischer Anreicherung abzurufen:
-
indices:admin/get— Ruft Indexinformationen ab. -
cluster:admin/ingest/pipeline/get— Ruft Informationen zur Ingest-Pipeline ab. -
cluster:admin/search/pipeline/get— Ruft Informationen zur Suchpipeline ab.
DeleteIndex API-Berechtigungen
Wenn die detaillierte Zugriffskontrolle aktiviert ist, ist die folgende zusätzliche Berechtigung erforderlich, um einen Index mit automatischer semantischer Anreicherung zu löschen:
-
indices:admin/delete— Löschen Sie Indexoperationen.
Die Abfrage wird neu geschrieben
Durch die automatische semantische Anreicherung werden Ihre vorhandenen „Match“ -Abfragen automatisch in semantische Suchanfragen umgewandelt, ohne dass Abfrageänderungen 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.
-
Die automatische semantische Anreicherung ist nicht mit der Funktion für abgeleitete Quellen kompatibel.
Preisgestaltung
Amazon OpenSearch Service 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 wurden. 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