Arricchimento blocchi

Servizi di intelligenza artificiale di Azure
Ricerca di intelligenza artificiale di Azure
Servizio OpenAI di Azure
Azure Machine Learning

Dopo aver suddiviso i documenti in una raccolta di blocchi, il passaggio successivo consiste nell'arricchire ogni blocco pulendo e aumentando i blocchi con i metadati. La pulizia dei blocchi consente di ottenere corrispondenze migliori per le query semantiche in una ricerca vettoriale. L'aggiunta di informazioni consente di supportare le ricerche oltre le ricerche semantiche dei blocchi. Sia la pulizia che l'aumento comportano l'estensione dello schema per il blocco.

Questo articolo illustra diversi modi per aumentare i blocchi, incluse alcune operazioni di pulizia comuni che è possibile eseguire sui blocchi per migliorare i confronti tra vettori e descrive alcuni campi di metadati comuni che è possibile aggiungere ai blocchi per aumentare l'indice di ricerca.

Questo articolo fa parte di una serie. Leggere l'introduzione.

Diagramma che mostra i record JSON con un singolo campo da arricchire.

Figura 1. Arricchimento di blocchi con metadati

Pulizia

La suddivisione in blocchi dei dati supporta il carico di lavoro nei suoi sforzi per trovare i blocchi più rilevanti, in genere tramite la vettorizzazione di tali blocchi e l'archiviazione in un database vettoriale. Una ricerca vettoriale ottimizzata restituisce solo le righe del database con la semantica più vicina alla query. L'obiettivo di pulire i dati per supportare le corrispondenze di prossimità eliminando potenziali differenze che non sono materiali per la semantica del testo. Di seguito sono riportate alcune procedure di pulizia comuni.

Nota

Si vuole restituire il blocco originale non pulito come risultato della query, quindi si aggiungerà un campo aggiuntivo per archiviare i dati puliti e vettorializzati.

  • Lowercasing - Lowercasing consente alle parole maiuscole, ad esempio parole all'inizio di una frase, di corrispondere a quelle stesse parole all'interno di una frase. Gli incorporamenti fanno in genere distinzione tra maiuscole e minuscole, ovvero "Cheetah" e "cheetah" generano un vettore diverso per la stessa parola logica. Ad esempio, per la query incorporata: "Che cos'è più veloce, un cheetah o un puma?" L'incorporamento seguente: "i ghepardi sono più veloci dei puma" è una corrispondenza più vicina rispetto all'incorporamento di "Cheetah sono più veloci dei puma". Alcune strategie di minuscolo minuscole in tutte le parole, inclusi i sostantivi appropriati, mentre altre strategie includono solo l'abbassamento delle prime parole in una frase.
  • Rimuovi parole non significative: le parole non significative sono parole come "a", "an" e "the" che si verificano comunemente nelle frasi. È possibile rimuovere le parole non significative per ridurre la dimensionalità del vettore risultante. La rimozione delle parole stop permetterebbe sia "un cheetah è più veloce di un puma" e "il gheetah è più veloce del puma" per essere entrambi vettorialimente uguale a "cheetah più veloce puma". Tuttavia, è importante comprendere che alcune parole non significative contengono un significato semantico. Ad esempio, "not" potrebbe essere considerato una parola non significativa, ma potrebbe contenere un significato semantico significativo. È importante verificare l'effetto della rimozione delle parole non significative.
  • Correzione degli errori di ortografia: una parola digitata in modo errato non corrisponde alla parola digitata correttamente nel modello di incorporamento. Ad esempio, "cheatah" (sic) non è uguale a "cheetah" nell'incorporamento. È consigliabile correggere gli errori di ortografia per risolvere questa sfida.
  • Rimuovi caratteri Unicode: la rimozione dei caratteri Unicode può ridurre il rumore nei blocchi e ridurre la dimensionalità. Come le parole non significative, alcuni caratteri Unicode potrebbero contenere informazioni pertinenti. È importante testare l'impatto della rimozione dei caratteri Unicode.
  • Normalizzazione - Normalizzazione del testo in standard come l'espansione delle abbreviazioni, la conversione di numeri in parole e l'espansione delle contrazioni come "I'm" in "Io sono" può aiutare ad aumentare le prestazioni delle ricerche vettoriali.

Aumento dei blocchi

Le ricerche semantiche sui blocchi vettorializzati funzionano bene per alcuni tipi di query, ma non per altri. A seconda dei tipi di query che è necessario supportare, potrebbe essere necessario aumentare i blocchi con informazioni aggiuntive. I campi di metadati aggiuntivi vengono archiviati nella stessa riga degli incorporamenti e possono essere usati nella soluzione di ricerca come filtri o come parte della ricerca.

Diagramma che mostra json di contenuto completamente arricchito e come può essere usato in una piattaforma di ricerca.

Figura 2. Uso dei metadati aumentati nella soluzione di ricerca

Le colonne di metadati che è necessario aggiungere dipendono dalle decisioni specifiche del dominio del problema. Sono inclusi il tipo di dati disponibili e i tipi di query che si desidera supportare. È necessario analizzare l'esperienza utente, i dati disponibili e la qualità dei risultati che si sta tentando di ottenere. Da qui è possibile determinare quali metadati possono essere utili per soddisfare i requisiti del carico di lavoro.

Di seguito sono riportati alcuni campi di metadati comuni, insieme al testo originale del blocco, alcune indicazioni sui possibili usi e strumenti o tecniche comunemente usati per generare il contenuto dei metadati.

  • ID: ID è un campo di metadati chiave usato per identificare in modo univoco un blocco. Un ID univoco è utile nell'elaborazione per determinare se un blocco esiste già nell'archivio o meno. Un ID può essere un hash di un campo chiave. Strumenti: libreria hash
  • Titolo : un titolo è un valore restituito utile per un blocco. Fornisce un breve riepilogo del contenuto nel blocco. Il riepilogo può essere utile anche per eseguire query con una ricerca indicizzata perché può contenere parole chiave per la corrispondenza. Strumenti: modello linguistico di grandi dimensioni
  • Riepilogo : il riepilogo è simile al titolo in quanto si tratta di un valore restituito comune e può essere usato nelle ricerche indicizzate. I riepiloghi sono in genere più lunghi del titolo. Strumenti: modello linguistico di grandi dimensioni
  • Riformulazione del blocco : la riformulazione di un blocco può essere utile come campo di ricerca vettoriale perché la riformulazione acquisisce variazioni nel linguaggio, ad esempio sinonimi e parafrasazioni. Strumenti: modello linguistico di grandi dimensioni
  • Parole chiave: le ricerche di parole chiave sono valide per i dati non testuali, per la ricerca di una corrispondenza esatta e quando un termine o un valore specifico è importante. Ad esempio, un produttore automatico potrebbe avere revisioni o dati sulle prestazioni per ognuno dei modelli per più anni. La revisione del prodotto X per l'anno 2009 è semanticamente simile a "Review for product X for 2010" e "Review for product Y for 2009". In questo caso, è preferibile trovare una corrispondenza con le parole chiave per il prodotto e l'anno. Strumenti: modello linguistico di grandi dimensioni, RAKE, KeyBERT, MultiRake
  • Entità: le entità sono informazioni specifiche, ad esempio persone, organizzazioni e località. Come le parole chiave, le entità sono valide per le ricerche esatte delle corrispondenze o quando sono importanti entità specifiche. Strumenti: SpaCy, Stanford Named Entity Recognizer (SNER, scikit-learn, Natural Language Toolkit (NLTK).
  • Testo del blocco pulito: testo del blocco pulito. Strumenti: modello linguistico di grandi dimensioni
  • Domande che il blocco può rispondere : a volte, la query incorporata e il blocco incorporato non è una corrispondenza ottimale. Ad esempio, la query potrebbe essere piccola per quanto riguarda le dimensioni del blocco. Potrebbe essere preferibile formulare le query che il blocco può rispondere ed eseguire una ricerca vettoriale tra la query effettiva dell'utente e le query preformulate. Strumenti: modello linguistico di grandi dimensioni
  • Origine : l'origine del blocco può essere utile come risultato per le query. Consente al queryr di citare l'origine originale.
  • Linguaggio : la lingua del blocco può essere utile come filtro nelle query.

Aumento dell'economia

L'uso di modelli linguistici di grandi dimensioni per l'aumento dei blocchi può essere costoso. È necessario calcolare il costo di ogni arricchimento che si sta valutando e moltiplicarlo per il numero stimato di blocchi nel tempo. È consigliabile usare queste informazioni, insieme ai test di tali campi arricchiti come parte della ricerca per prendere una buona decisione aziendale.

Passaggi successivi