Arricchimento semantico automatico per Serverless - OpenSearch Servizio Amazon

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Arricchimento semantico automatico per Serverless

Introduzione

La funzionalità di arricchimento semantico automatico può contribuire a migliorare la pertinenza della ricerca fino al 20% rispetto alla ricerca lessicale. L'arricchimento semantico automatico elimina il peso indifferenziato della gestione dell'infrastruttura del modello ML (machine learning) e dell'integrazione con il motore di ricerca. La funzionalità è disponibile per tutti e tre i tipi di raccolta serverless: Search, Time Series e Vector.

Cos'è la ricerca semantica

I motori di ricerca tradizionali si basano sulla word-to-word corrispondenza (denominata ricerca lessicale) per trovare i risultati delle query. Sebbene funzioni bene per domande specifiche come i numeri di modello dei televisori, ha difficoltà con ricerche più astratte. Ad esempio, quando si cerca «scarpe per la spiaggia», una ricerca lessicale corrisponde semplicemente alle singole parole «scarpe», «spiaggia», «per» e «la» negli articoli del catalogo, e potenzialmente mancano prodotti pertinenti come «sandali impermeabili» o «calzature da surf» che non contengono i termini di ricerca esatti.

La ricerca semantica restituisce risultati di query che incorporano non solo la corrispondenza delle parole chiave, ma anche l'intento e il significato contestuale della ricerca dell'utente. Ad esempio, se un utente cerca «come curare un mal di testa», un sistema di ricerca semantico potrebbe restituire i seguenti risultati:

  • Rimedi contro l'emicrania

  • Tecniche di gestione del dolore

  • Over-the-counter antidolorifici

Dettagli del modello e benchmark delle prestazioni

Sebbene questa funzionalità gestisca le complessità tecniche dietro le quinte senza esporre il modello sottostante, forniamo trasparenza attraverso una breve descrizione del modello e risultati di benchmark per aiutarvi a prendere decisioni informate sull'adozione delle funzionalità nei vostri carichi di lavoro critici.

L'arricchimento semantico automatico utilizza un modello sparso preaddestrato e gestito dai servizi che funziona in modo efficace senza richiedere regolazioni di precisione personalizzate. Il modello analizza i campi specificati, espandendoli in vettori sparsi basati su associazioni apprese da diversi dati di addestramento. I termini estesi e i relativi pesi di significatività vengono archiviati nel formato di indice Lucene nativo per un recupero efficiente. Abbiamo ottimizzato questo processo utilizzando la modalità solo documento, in cui la codifica avviene solo durante l'inserimento dei dati. Le query di ricerca vengono semplicemente tokenizzate anziché elaborate tramite il modello sparso, il che rende la soluzione conveniente e performante.

La nostra convalida delle prestazioni durante lo sviluppo delle funzionalità ha utilizzato il set di dati MS MARCO per il recupero dei passaggi, con passaggi della lunghezza media di 334 caratteri. Per quanto riguarda il punteggio di pertinenza, abbiamo misurato il guadagno cumulativo medio Normalized Discounted Cumulative Gain (NDCG) per i primi 10 risultati di ricerca (ndcg @10) sul benchmark BEIR per i contenuti in inglese e il ndcg @10 medio su MIRACL per i contenuti multilingue. Abbiamo valutato la latenza mediante misurazioni lato client del 90° percentile (p90) e la risposta di ricerca p90 ha rilevato dei valori. Questi benchmark forniscono indicatori prestazionali di base sia per la pertinenza della ricerca che per i tempi di risposta. Ecco i principali numeri di riferimento:

  • Lingua inglese - Miglioramento della pertinenza del 20% rispetto alla ricerca lessicale. Ha inoltre ridotto la latenza di ricerca P90 del 7,7% rispetto alla ricerca lessicale (BM25 è di 26 ms e l'arricchimento semantico automatico è di 24 ms).

  • Multilingue: miglioramento della pertinenza del 105% rispetto alla ricerca lessicale, mentre la latenza di ricerca P90 è aumentata del 38,4% rispetto alla ricerca lessicale (è di 26 ms e l'arricchimento semantico automatico è di 36 ms). BM25

Data la natura unica di ogni carico di lavoro, ti invitiamo a valutare questa funzionalità nel tuo ambiente di sviluppo utilizzando i tuoi criteri di benchmarking prima di prendere decisioni di implementazione.

Lingue supportate

La funzionalità supporta l'inglese. Inoltre, il modello supporta anche arabo, bengalese, cinese, finlandese, francese, hindi, indonesiano, giapponese, coreano, persiano, russo, spagnolo, swahili e telugu.

Imposta un indice di arricchimento semantico automatico per le raccolte serverless

La configurazione di un indice con l'arricchimento semantico automatico abilitato per i campi di testo è semplice e può essere gestito tramite la console e i CloudFormation modelli durante la creazione di APIs nuovi indici. Per abilitarlo per un indice esistente, è necessario ricreare l'indice con l'arricchimento semantico automatico abilitato per i campi di testo.

Esperienza da console: la AWS console consente di creare facilmente un indice con campi di arricchimento semantico automatico. Dopo aver selezionato una raccolta, troverai il pulsante di creazione dell'indice nella parte superiore della console. Dopo aver fatto clic sul pulsante di creazione dell'indice, troverai le opzioni per definire campi di arricchimento semantico automatico. In un indice, puoi avere combinazioni di arricchimento semantico automatico per l'inglese e campi multilingue, oltre che lessicali.

Esperienza con le API - Per creare un indice di arricchimento semantico automatico utilizzando l'interfaccia a riga di comando ()AWS CLI, usa il AWS comando create-index:

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

Per descrivere l'indice creato, utilizzate il seguente comando:

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

È inoltre possibile utilizzare CloudFormation i modelli (Tipo:AWS::OpenSearchServerless::CollectionIndex) per creare una ricerca semantica durante il provisioning della raccolta e dopo la creazione della raccolta.

Inserimento e ricerca di dati

Dopo aver creato un indice con l'arricchimento semantico automatico abilitato, la funzionalità funziona automaticamente durante il processo di inserimento dei dati, senza bisogno di configurazioni aggiuntive.

Inserimento di dati: quando aggiungi documenti all'indice, il sistema automaticamente:

  • Analizza i campi di testo che hai designato per l'arricchimento semantico

  • Genera codifiche semantiche utilizzando il modello sparse gestito dal servizio OpenSearch

  • Memorizza queste rappresentazioni arricchite insieme ai dati originali

Questo processo utilizza i OpenSearch connettori ML e le pipeline di importazione integrati, che vengono creati e gestiti automaticamente dietro le quinte.

Ricerca: i dati di arricchimento semantico sono già indicizzati, quindi le query vengono eseguite in modo efficiente senza richiamare nuovamente il modello ML. Ciò significa che ottieni una maggiore pertinenza della ricerca senza alcun sovraccarico di latenza di ricerca aggiuntivo.

Configurazione delle autorizzazioni per l'arricchimento semantico automatico

Prima di creare un indice di arricchimento semantico automatizzato, è necessario configurare le autorizzazioni richieste. Questa sezione spiega le autorizzazioni necessarie e come configurarle.

Autorizzazioni della policy IAM

Utilizza la seguente policy AWS Identity and Access Management (IAM) per concedere le autorizzazioni necessarie per lavorare con l'arricchimento semantico automatico:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AutomaticSemanticEnrichmentPermissions", "Effect": "Allow", "Action": [ "aoss:CreateIndex", "aoss:GetIndex", "aoss:UpdateIndex", "aoss:DeleteIndex", "aoss:APIAccessAll" ], "Resource": "*" } ] }
Autorizzazioni chiave
  • Le aoss:*Index autorizzazioni consentono la gestione degli indici

  • L'aoss:APIAccessAllautorizzazione consente le operazioni OpenSearch dell'API

  • Per limitare le autorizzazioni a una raccolta specifica, sostituiscile "Resource": "*" con l'ARN della raccolta

Configura le autorizzazioni di accesso ai dati

Per configurare un indice per l'arricchimento semantico automatico, è necessario disporre di politiche di accesso ai dati appropriate che consentano l'accesso a risorse di indicizzazione, pipeline e raccolta di modelli. Per ulteriori informazioni sulle politiche di accesso ai dati, vedere. Controllo dell'accesso ai dati per Amazon OpenSearch Serverless Per la procedura di configurazione di una politica di accesso ai dati, vedereCreazione di policy di accesso ai dati (console).

Autorizzazioni di accesso ai dati

[ { "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" ] }, ]

Autorizzazioni di accesso alla rete

Per consentire al servizio APIs di accedere alle raccolte private, è necessario configurare politiche di rete che consentano l'accesso richiesto tra l'API del servizio e la raccolta. Per ulteriori informazioni sulle politiche di rete, consulta Accesso alla rete per 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" ], } ]
Per configurare le autorizzazioni di accesso alla rete per una raccolta privata
  1. Accedi alla console di OpenSearch servizio da https://console.aws.amazon.com/aos/casa.

  2. Nella barra di navigazione a sinistra, scegli Politiche di rete. Poi esegui una delle seguenti operazioni:

    • Scegli il nome di una politica esistente e scegli Modifica

    • Scegli Crea politica di rete e configura i dettagli della politica

  3. Nell'area Tipo di accesso, scegli Privato (consigliato), quindi seleziona Accesso privato al AWS servizio.

  4. Nel campo di ricerca, scegli Servizio, quindi scegli aoss.amazonaws.com.

  5. Nell'area Tipo di risorsa, seleziona la casella Abilita l'accesso all'endpoint. OpenSearch

  6. Per Cerca raccolte o inserisci termini di prefisso specifici, nel campo di ricerca, seleziona Nome raccolta. Quindi inserisci o seleziona il nome delle raccolte da associare alla politica di rete.

  7. Scegli Crea per una nuova politica di rete o Aggiorna per una politica di rete esistente.

La query riscrive

L'arricchimento semantico automatico converte automaticamente le query «match» esistenti in query di ricerca semantiche senza richiedere modifiche alle query. Se una query di corrispondenza fa parte di una query composta, il sistema analizza la struttura delle query, trova le query di corrispondenza e le sostituisce con query sparse neurali. Attualmente, la funzionalità supporta solo la sostituzione delle query «match», indipendentemente dal fatto che si tratti di una query autonoma o di parte di una query composta. «multi_match» non è supportato. Inoltre, la funzionalità supporta tutte le query composte per sostituire le relative query di corrispondenza annidate. Le query composte includono: bool, boosting, constant_score, dis_max, function_score e hybrid.

Limitazioni dell'arricchimento semantico automatico

La ricerca semantica automatica è più efficace se applicata a campi di small-to-medium grandi dimensioni contenenti contenuti in linguaggio naturale, come titoli di film, descrizioni di prodotti, recensioni e riepiloghi. Sebbene la ricerca semantica aumenti la pertinenza per la maggior parte dei casi d'uso, potrebbe non essere ottimale per determinati scenari. Prendi in considerazione le seguenti limitazioni quando decidi se implementare l'arricchimento semantico automatico per il tuo caso d'uso specifico.

  • Documenti molto lunghi: l'attuale modello sparso elabora solo i primi 8.192 token di ogni documento in inglese. Per i documenti multilingue, sono 512 token. Per articoli lunghi, prendi in considerazione l'implementazione della suddivisione in blocchi dei documenti per garantire l'elaborazione completa dei contenuti.

  • Carichi di lavoro di analisi dei log: l'arricchimento semantico aumenta in modo significativo la dimensione dell'indice, il che potrebbe non essere necessario per l'analisi dei log, dove in genere è sufficiente una corrispondenza esatta. Il contesto semantico aggiuntivo raramente migliora l'efficacia della ricerca nei log abbastanza da giustificare i maggiori requisiti di archiviazione.

Prezzi

OpenSearch Serverless fattura l'arricchimento semantico automatico basato sulle unità di OpenSearch calcolo (OCUs) utilizzate durante la generazione di vettori sparsi al momento dell'indicizzazione. Ti viene addebitato solo l'utilizzo effettivo durante l'indicizzazione. Puoi monitorare questo consumo utilizzando la CloudWatch metrica SemanticSearch OCU di Amazon. Per dettagli specifici sui limiti dei token del modello, sul throughput di volume per OCU ed esempi di calcolo di esempio, visita Service Pricing. OpenSearch

Esempio di configurazione dell'indice

Per un esempio pratico, consulta il post del blog per la configurazione dell'indice per la ricerca nel catalogo dei prodotti utilizzando l'arricchimento semantico automatico.