Arricchimento tramite intelligenza artificiale in Ricerca di intelligenza artificiale di Azure

In Ricerca di intelligenza artificiale di Azure l'arricchimento tramite intelligenza artificiale si riferisce all'integrazione con i servizi di intelligenza artificiale di Azure per elaborare il contenuto che non è ricercabile nel formato non elaborato. Tramite l'arricchimento, l'analisi e l'inferenza vengono usate per creare contenuto ricercabile e struttura in cui non esistevano in precedenza.

Poiché Ricerca di intelligenza artificiale di Azure è una soluzione di ricerca di testo e vettore, lo scopo dell'arricchimento tramite intelligenza artificiale è quello di migliorare l'utilità del contenuto negli scenari correlati alla ricerca. Il contenuto di origine deve essere testuale (non è possibile arricchire i vettori), ma il contenuto creato da una pipeline di arricchimento può essere vettorializzato e indicizzato in un indice vettoriale usando competenze come La suddivisione del testo per la suddivisione in blocchi e la competenza AzureOpenAIEmbedding per la codifica.

L'arricchimento tramite intelligenza artificiale si basa sulle competenze.

Le competenze predefinite toccano i servizi di intelligenza artificiale di Azure. Applicano le trasformazioni e l'elaborazione seguenti al contenuto non elaborato:

  • Rilevamento di traduzione e lingua per la ricerca multilingue
  • Riconoscimento delle entità per estrarre nomi, posizioni e altre entità da blocchi di testo di grandi dimensioni
  • Estrazione di frasi chiave per identificare e restituire termini importanti
  • Riconoscimento ottico dei caratteri (OCR) per riconoscere il testo stampato e scritto a mano nei file binari
  • Analisi delle immagini per descrivere il contenuto dell'immagine e restituire le descrizioni come campi di testo ricercabili

Le competenze personalizzate eseguono il codice esterno. Le competenze personalizzate possono essere usate per qualsiasi elaborazione personalizzata da includere nella pipeline.

L'arricchimento tramite intelligenza artificiale è un'estensione di una pipeline dell'indicizzatore che si connette alle origini dati di Azure. Una pipeline di arricchimento include tutti i componenti di una pipeline dell'indicizzatore (indicizzatore, origine dati, indice), oltre a un set di competenze che specifica i passaggi di arricchimento atomico.

Il diagramma seguente illustra la progressione dell'arricchimento tramite intelligenza artificiale:

Diagramma di una pipeline di arricchimento.

L'importazione è il primo passaggio. In questo caso, l'indicizzatore si connette a un'origine dati ed esegue il pull del contenuto (documenti) nel servizio di ricerca. Archiviazione BLOB di Azure è la risorsa più comune usata negli scenari di arricchimento tramite intelligenza artificiale, ma qualsiasi origine dati supportata può fornire contenuto.

Enrich & Index copre la maggior parte della pipeline di arricchimento tramite intelligenza artificiale:

  • L'arricchimento inizia quando l'indicizzatore "viola i documenti" ed estrae immagini e testo. Il tipo di elaborazione che si verifica successivamente dipende dai dati e dalle competenze aggiunte a un set di competenze. Se si dispone di immagini, possono essere inoltrate alle competenze che eseguono l'elaborazione delle immagini. Il contenuto del testo viene accodato per l'elaborazione del testo e del linguaggio naturale. Internamente, le competenze creano un "documento arricchito" che raccoglie le trasformazioni man mano che si verificano.

  • Il contenuto arricchito viene generato durante l'esecuzione del set di competenze ed è temporaneo, a meno che non venga salvato. È possibile abilitare una cache di arricchimento per rendere persistenti i documenti e gli output delle competenze per il successivo riutilizzo durante le esecuzioni future del set di competenze.

  • Per ottenere contenuto in un indice di ricerca, l'indicizzatore deve disporre di informazioni di mapping per l'invio di contenuto arricchito al campo di destinazione. I mapping dei campi (espliciti o impliciti ) impostano il percorso dati dai dati di origine a un indice di ricerca. I mapping dei campi di output impostano il percorso dati da documenti arricchiti a un indice.

  • L'indicizzazione è il processo in cui il contenuto non elaborato e arricchito viene inserito nelle strutture di dati fisiche di un indice di ricerca (relativi file e cartelle). L'analisi lessicale e la tokenizzazione si verificano in questo passaggio.

L'esplorazione è l'ultimo passaggio. L'output è sempre un indice di ricerca su cui è possibile eseguire query da un'app client. L'output può essere facoltativamente un archivio conoscenze costituito da BLOB e tabelle in Archiviazione di Azure a cui si accede tramite strumenti di esplorazione dei dati o processi downstream. Se si sta creando un archivio conoscenze, le proiezioni determinano il percorso dei dati per il contenuto arricchito. Lo stesso contenuto arricchito può essere visualizzato sia negli indici che negli archivi conoscenze.

Quando usare l'arricchimento tramite intelligenza artificiale

L'arricchimento è utile se il contenuto non elaborato è testo non strutturato, contenuto immagine o contenuto che richiede il rilevamento e la traduzione della lingua. L'applicazione dell'intelligenza artificiale tramite le competenze predefinite può sbloccare questo contenuto per le applicazioni di ricerca full-text e data science.

È anche possibile creare competenze personalizzate per fornire l'elaborazione esterna. Il codice open source, di terze parti o di terze parti può essere integrato nella pipeline come competenza personalizzata. I modelli di classificazione che identificano le caratteristiche salienti di vari tipi di documento rientrano in questa categoria, ma è possibile usare qualsiasi pacchetto esterno che aggiunge valore al contenuto.

Casi d'uso per competenze predefinite

Le competenze predefinite si basano sulle API dei servizi di intelligenza artificiale di Azure: Azure AI Visione artificiale e il servizio di linguaggio. A meno che l'input del contenuto non sia ridotto, aspettarsi di collegare una risorsa dei servizi di intelligenza artificiale di Azure fatturabile per eseguire carichi di lavoro più grandi.

Un set di competenze assemblato con competenze predefinite è adatto per gli scenari di applicazione seguenti:

  • Le competenze di elaborazione delle immagini includono il riconoscimento ottico dei caratteri (OCR) e l'identificazione delle caratteristiche visive, ad esempio il rilevamento facciale, l'interpretazione delle immagini, il riconoscimento delle immagini (persone famose e punti di riferimento) o attributi come l'orientamento dell'immagine. Queste competenze creano rappresentazioni testuali del contenuto dell'immagine per la ricerca full-text in Ricerca di intelligenza artificiale di Azure.

  • La traduzione automatica viene fornita dalla competenza Traduzione testuale, spesso abbinata al rilevamento della lingua per soluzioni multilingue.

  • L'elaborazione del linguaggio naturale analizza blocchi di testo. Le competenze in questa categoria includono Riconoscimento delle entità, Rilevamento sentiment (incluso il opinion mining) e Rilevamento delle informazioni personali. Con queste competenze, il testo non strutturato viene mappato come campi ricercabili e filtrabili in un indice.

Casi d'uso per competenze personalizzate

Le competenze personalizzate eseguono codice esterno fornito ed eseguito il wrapping nell'interfaccia Web della competenza personalizzata. Diversi esempi di competenze personalizzate sono disponibili nel repository GitHub azure-search-power-skills .

Le competenze personalizzate non sono sempre complesse. Ad esempio, se si dispone di un pacchetto esistente che fornisce criteri di ricerca o un modello di classificazione dei documenti, è possibile eseguirne il wrapping in una competenza personalizzata.

Archiviazione dell'output

In Ricerca di intelligenza artificiale di Azure un indicizzatore salva l'output creato. Una singola esecuzione dell'indicizzatore può creare fino a tre strutture di dati contenenti output arricchiti e indicizzati.

Archivio dati Richiesto Titolo Descrizione
indice ricercabile Richiesto Servizio di ricerca Utilizzato per la ricerca full-text e altri moduli di query. Specificare un indice è un requisito dell'indicizzatore. Il contenuto dell'indice viene popolato dagli output delle competenze, oltre a tutti i campi di origine mappati direttamente ai campi nell'indice.
Knowledge Store Facoltativo Archiviazione di Azure Usato per app downstream come knowledge mining o data science. Un archivio conoscenze è definito nell'ambito di un set di competenze. La definizione determina se i documenti arricchiti vengono proiettati come tabelle o oggetti (file o BLOB) in Archiviazione di Azure.
cache di arricchimento Facoltativo Archiviazione di Azure Usato per memorizzare nella cache gli arricchimenti per il riutilizzo nelle esecuzioni successive del set di competenze. La cache archivia il contenuto importato e non elaborato (documenti incrinaturati). Archivia anche i documenti arricchiti creati durante l'esecuzione del set di competenze. La memorizzazione nella cache è utile se si usa l'analisi delle immagini o OCR e si vuole evitare il tempo e le spese per la rielaborazione dei file di immagine.

Gli indici e gli archivi conoscenze sono completamente indipendenti l'uno dall'altro. Sebbene sia necessario allegare un indice per soddisfare i requisiti dell'indicizzatore, se l'unico obiettivo è un archivio conoscenze, è possibile ignorare l'indice dopo il popolamento.

Esplorazione del contenuto

Dopo aver definito e caricato un indice di ricerca o un archivio conoscenze, è possibile esplorarne i dati.

Eseguire query su un indice di ricerca

Eseguire query per accedere al contenuto arricchito generato dalla pipeline. L'indice è simile a qualsiasi altro che è possibile creare per Ricerca di intelligenza artificiale di Azure: è possibile integrare l'analisi del testo con analizzatori personalizzati, richiamare query di ricerca fuzzy, aggiungere filtri o sperimentare profili di punteggio per ottimizzare la pertinenza della ricerca.

Usare gli strumenti di esplorazione dei dati in un archivio conoscenze

In Archiviazione di Azure un archivio conoscenze può assumere i formati seguenti: un contenitore BLOB di documenti JSON, un contenitore BLOB di oggetti immagine o tabelle in Table Archiviazione. È possibile usare Archiviazione Explorer, Power BI o qualsiasi app che si connette a Archiviazione di Azure per accedere al contenuto.

  • Un contenitore BLOB acquisisce i documenti arricchiti nel loro insieme, utile se si crea un feed in altri processi.

  • Una tabella è utile se sono necessarie sezioni di documenti arricchiti o se si desidera includere o escludere parti specifiche dell'output. Per l'analisi in Power BI, le tabelle sono l'origine dati consigliata per l'esplorazione e la visualizzazione dei dati in Power BI.

Disponibilità e prezzi

L'arricchimento è disponibile nelle aree con servizi di intelligenza artificiale di Azure. È possibile controllare la disponibilità dell'arricchimento nella pagina dei prodotti Azure disponibili in base all'area.

La fatturazione segue un modello di prezzi con pagamento in base al consumo. I costi dell'uso delle competenze predefinite vengono addebitati quando viene specificata una chiave dei servizi di intelligenza artificiale di Azure in più aree nel set di competenze. Sono inoltre previsti costi associati all'estrazione di immagini, come rilevato da Ricerca di intelligenza artificiale di Azure. Le competenze di estrazione del testo e utilità, tuttavia, non sono fatturabili. Per altre informazioni, vedere Come vengono addebitati i costi per Ricerca di intelligenza artificiale di Azure.

Elenco di controllo: un flusso di lavoro tipico

Una pipeline di arricchimento è costituita da indicizzatori con set di competenze. Dopo l'indicizzazione, è possibile eseguire query su un indice per convalidare i risultati.

Iniziare con un subset di dati in un'origine dati supportata. La progettazione dell'indicizzatore e del set di competenze è un processo iterativo. Il lavoro va più veloce con un piccolo set di dati rappresentativo.

  1. Creare un'origine dati che specifica una connessione ai dati.

  2. Creare un set di competenze. A meno che il progetto non sia di piccole dimensioni, è necessario collegare una risorsa multiservizio di Intelligenza artificiale di Azure. Se si sta creando un archivio conoscenze, definirlo all'interno del set di competenze.

  3. Creare uno schema di indice che definisce un indice di ricerca.

  4. Creare ed eseguire l'indicizzatore per riunire tutti i componenti precedenti. Questo passaggio recupera i dati, esegue il set di competenze e carica l'indice.

    Un indicizzatore è anche il percorso in cui si specificano mapping dei campi e mapping dei campi di output che configurano il percorso dei dati in un indice di ricerca.

    Facoltativamente, abilitare la memorizzazione nella cache di arricchimento nella configurazione dell'indicizzatore. Questo passaggio consente di riutilizzare gli arricchimenti esistenti in un secondo momento.

  5. Eseguire query per valutare i risultati o avviare una sessione di debug per risolvere eventuali problemi del set di competenze.

Per ripetere uno dei passaggi precedenti, reimpostare l'indicizzatore prima di eseguirlo. In alternativa, eliminare e ricreare gli oggetti in ogni esecuzione (consigliato se si usa il livello gratuito). Se è stata abilitata la memorizzazione nella cache, l'indicizzatore esegue il pull dalla cache se i dati sono invariati nell'origine e se le modifiche apportate alla pipeline non invalidano la cache.

Passaggi successivi