Share via


Knowledge Store in Ricerca intelligenza artificiale di Azure

L'archivio conoscenze è una risorsa di archiviazione secondaria per contenuti arricchiti con intelligenza artificiale creati da un set di competenze in Ricerca di intelligenza artificiale di Azure. In Ricerca di intelligenza artificiale di Azure un processo di indicizzazione invia sempre l'output a un indice di ricerca, ma se si collega un set di competenze a un indicizzatore, è anche possibile inviare un output arricchito dall'intelligenza artificiale a un contenitore o a una tabella in Archiviazione di Azure. Un archivio conoscenze può essere usato per l'analisi indipendente o l'elaborazione downstream in scenari non di ricerca come knowledge mining.

I due output dell'indicizzazione, un indice di ricerca e un archivio conoscenze, si escludono a vicenda prodotti della stessa pipeline. Sono derivati dagli stessi input e contengono gli stessi dati, ma il contenuto è strutturato, archiviato e usato in applicazioni diverse.

Pipeline with skillset

Fisicamente, un archivio conoscenze viene Archiviazione di Azure, Archiviazione tabelle di Azure, Archiviazione BLOB di Azure o entrambi. Qualsiasi strumento o processo in grado di connettersi ad archiviazione di Azure può usare il contenuto di un archivio conoscenze. Non è disponibile alcun supporto per le query in Ricerca di intelligenza artificiale di Azure per il recupero di contenuto da un archivio conoscenze.

Quando viene visualizzato tramite portale di Azure, un archivio conoscenze è simile a qualsiasi altra raccolta di tabelle, oggetti o file. Lo screenshot seguente mostra un archivio conoscenze composto da tre tabelle. È possibile adottare una convenzione di denominazione, ad esempio un kstore prefisso, per mantenere insieme il contenuto.

Skills read and write from enrichment tree

Vantaggi del knowledge store

I principali vantaggi di un archivio conoscenze sono l'accesso flessibile al contenuto e la possibilità di modellare i dati.

A differenza di un indice di ricerca accessibile solo tramite query in Ricerca di intelligenza artificiale di Azure, un archivio conoscenze è accessibile a qualsiasi strumento, app o processo che supporta le connessioni a Archiviazione di Azure. Questa flessibilità apre nuovi scenari per l'utilizzo del contenuto analizzato e arricchito prodotto da una pipeline di arricchimento.

Lo stesso set di competenze che arricchisce i dati può essere usato anche per modellare i dati. Alcuni strumenti come Power BI funzionano meglio con le tabelle, mentre un carico di lavoro di data science potrebbe richiedere una struttura di dati complessa in un formato BLOB. L'aggiunta di una competenza Shaper a un set di competenze consente di controllare la forma dei dati. È quindi possibile passare queste forme alle proiezioni, ovvero tabelle o BLOB, per creare strutture di dati fisici allineate all'uso previsto dei dati.

Il video seguente illustra entrambi questi vantaggi e altro ancora.

Definizione dell'archivio conoscenze

Un archivio conoscenze viene definito all'interno di una definizione del set di competenze e ha due componenti:

  • Un stringa di connessione da Archiviazione di Azure

  • Proiezioni che determinano se l'archivio conoscenze è costituito da tabelle, oggetti o file. L'elemento projections è una matrice. È possibile creare più set di combinazioni di file oggetto tabella all'interno di un archivio conoscenze.

    "knowledgeStore": {
        "storageConnectionString":"<YOUR-AZURE-STORAGE-ACCOUNT-CONNECTION-STRING>",
        "projections":[
           {
              "tables":[ ],
              "objects":[ ],
              "files":[ ]
           }
        ]
    }
    

Il tipo di proiezione specificato in questa struttura determina il tipo di archiviazione usato dall'archivio conoscenze, ma non la relativa struttura. I campi in tabelle, oggetti e file sono determinati dall'output della competenza Shaper se si sta creando l'archivio conoscenze a livello di codice o tramite la procedura guidata Importa dati se si usa il portale.

  • tablescontenuto arricchito dal progetto in Archiviazione tabella. Definire una proiezione di tabella se si necessita di strutture di report tabulari per gli input negli strumenti analitici o per l'esportazione come frame di dati in altri archivi dati. È possibile specificare più all'interno tables dello stesso gruppo di proiezioni per ottenere un subset o una sezione trasversale di documenti arricchiti. All'interno dello stesso gruppo di proiezione, le relazioni tra tabelle vengono conservate in modo che sia possibile utilizzarle tutte.

    Il contenuto proiettato non è aggregato o normalizzato. Lo screenshot seguente mostra una tabella, ordinata in base alla frase chiave, con il documento padre indicato nella colonna adiacente. A differenza dell'inserimento dati durante l'indicizzazione, non esiste alcuna analisi linguistica o aggregazione del contenuto. Le forme plurali e le differenze tra maiuscole e minuscole sono considerate istanze univoche.

    Screenshot of key phrases and documents in a table

  • objects proiettare il documento JSON nell'archivio BLOB. La rappresentazione fisica di un object è una struttura JSON gerarchica che rappresenta un documento arricchito.

  • files file di immagine del progetto nell'archivio BLOB. Un file è un'immagine estratta da un documento, trasferita intatta nell'archiviazione BLOB. Anche se è denominato "file", viene visualizzato in Blob Archiviazione, non nell'archiviazione file.

Creare un knowledge store

Per creare un archivio conoscenze, usare il portale o un'API.

Sono necessari Archiviazione di Azure, un set di competenze e un indicizzatore. Poiché gli indicizzatori richiedono un indice di ricerca, è anche necessario fornire una definizione di indice.

Passare con l'approccio del portale per la route più veloce a un archivio conoscenze completato. In alternativa, scegliere l'API REST per una comprensione più approfondita del modo in cui gli oggetti vengono definiti e correlati.

Creare il primo archivio conoscenze in quattro passaggi usando la procedura guidata Importa dati .

  1. Definire un'origine dati contenente i dati da arricchire.

  2. Definire un set di competenze. Il set di competenze specifica i passaggi di arricchimento e l'archivio conoscenze.

  3. Definire uno schema di indice. Potrebbe non essere necessario uno, ma gli indicizzatori lo richiedono. La procedura guidata può dedurre un indice.

  4. Completare la procedura guidata. L'estrazione, l'arricchimento e la creazione dell'archivio conoscenze si verificano in questo ultimo passaggio.

La procedura guidata automatizza diverse attività. In particolare, vengono create automaticamente sia la modellazione che le proiezioni (definizioni di strutture di dati fisici in Archiviazione di Azure).

Connessione con le app

Una volta che il contenuto arricchito esiste nell'archiviazione, qualsiasi strumento o tecnologia che si connette a Archiviazione di Azure può essere usato per esplorare, analizzare o utilizzare il contenuto. È possibile iniziare con l'elenco seguente:

  • Archiviazione Explorer o browser Archiviazione (anteprima) in portale di Azure per visualizzare la struttura e il contenuto dei documenti arricchiti. Considerare questo strumento come lo strumento di base per visualizzare i contenuti del knowledge store.

  • Power BI per la creazione di report e l'analisi.

  • Azure Data Factory per ulteriori elaborazioni.

Ciclo di vita del contenuto

Ogni volta che si esegue l'indicizzatore e il set di competenze, l'archivio conoscenze viene aggiornato se il set di competenze o i dati di origine sottostanti sono stati modificati. Tutte le modifiche prelevate dall'indicizzatore vengono propagate tramite il processo di arricchimento alle proiezioni nell'archivio conoscenze, assicurandosi che i dati proiettati siano una rappresentazione corrente del contenuto nell'origine dati di origine.

Nota

Anche se è possibile modificare i dati nelle proiezioni, tutte le modifiche verranno sovrascritte nella chiamata alla pipeline successiva, presupponendo che il documento nei dati di origine venga aggiornato.

Modifiche apportate ai dati di origine

Per le origini dati che supportano il rilevamento delle modifiche, un indicizzatore elabora documenti nuovi e modificati e ignora i documenti esistenti già elaborati. Le informazioni sul timestamp variano in base all'origine dati, ma in un contenitore BLOB l'indicizzatore esamina la lastmodified data per determinare quali BLOB devono essere inseriti.

Modifiche a un set di competenze

Se si apportano modifiche a un set di competenze, è consigliabile abilitare la memorizzazione nella cache di documenti arricchiti per riutilizzare gli arricchimenti esistenti, se possibile.

Senza memorizzazione nella cache incrementale, l'indicizzatore elabora sempre i documenti in ordine di contrassegno d'acqua elevato, senza andare indietro. Per i BLOB, l'indicizzatore elabora i BLOB ordinati in lastModifiedbase a , indipendentemente dalle modifiche apportate alle impostazioni dell'indicizzatore o al set di competenze. Se si modifica un set di competenze, i documenti elaborati in precedenza non vengono aggiornati per riflettere il nuovo set di competenze. I documenti elaborati dopo la modifica del set di competenze useranno il nuovo set di competenze, con conseguente combinazione di set di competenze vecchi e nuovi.

Con la memorizzazione nella cache incrementale e dopo un aggiornamento del set di competenze, l'indicizzatore riutilizza tutti gli arricchimenti che non sono interessati dalla modifica del set di competenze. Gli arricchimenti upstream vengono estratti dalla cache, come tutti gli arricchimenti indipendenti e isolati dalla competenza modificata.

Deletions

Anche se un indicizzatore crea e aggiorna strutture e contenuto in Archiviazione di Azure, non li elimina. Le proiezioni continuano a esistere anche quando l'indicizzatore o il set di competenze viene eliminato. Come proprietario dell'account di archiviazione, è necessario eliminare una proiezione se non è più necessaria.

Passaggi successivi

L'Archivio conoscenze offre la persistenza dei documenti arricchiti, utile durante la progettazione di un set di competenze o la creazione di nuove strutture e contenuto per l'utilizzo da parte di qualsiasi applicazione client in grado di accedere a un account di archiviazione di Azure.

L'approccio più semplice per la creazione di documenti arricchiti avviene tramite il portale, ma un client REST e le API REST possono fornire maggiori informazioni sul modo in cui gli oggetti vengono creati e a cui si fa riferimento a livello di codice.