Eseguire il training di un modello personalizzato usando lo strumento di etichettatura di esempio

Questo contenuto si applica a:Document Intelligence v2.1 checkmarkv2.1.

Suggerimento

  • Per un'esperienza avanzata e una qualità avanzata del modello, provare Document Intelligence v3.0 Studio.
  • V3.0 Studio supporta qualsiasi modello sottoposto a training con dati con etichetta v2.1.
  • Per informazioni dettagliate sulla migrazione dalla versione 2.1 alla versione 3.0, vedere la guida alla migrazione delle API.
  • Per iniziare a usare la versione 3.0, vedere le guide introduttive sull'API REST o C#, Java, JavaScript o Python SDK.

In questo articolo si usa l'API REST di Intelligence sui documenti con lo strumento di etichettatura di esempio per eseguire il training di un modello personalizzato con dati etichettati manualmente.

Prerequisiti

Per completare questo progetto sono necessarie le risorse seguenti:

  • Sottoscrizione di Azure: creare un account gratuito
  • Dopo aver creato la sottoscrizione di Azure, creare una risorsa di Document Intelligence nel portale di Azure per ottenere la chiave e l'endpoint. Al termine della distribuzione, fare clic su Vai alla risorsa.
    • È necessaria la chiave e l'endpoint dalla risorsa creata per connettere l'applicazione all'API di Intelligence documenti. La chiave e l'endpoint verranno incollati nel codice più avanti nella guida introduttiva.
    • È possibile usare il piano tariffario gratuito (F0) per provare il servizio ed eseguire in un secondo momento l'aggiornamento a un livello a pagamento per la produzione.
  • Un set di almeno sei moduli dello stesso tipo. Questi dati vengono usati per eseguire il training del modello e testare un modulo. È possibile usare un set di dati di esempio (scaricare ed estrarre il file sample_data.zip) per questa guida di avvio rapido. Caricare i file di training nella radice di un contenitore di archiviazione BLOB in un account di archiviazione di Azure con livello di prestazioni Standard.

Creare una risorsa di Document Intelligence

Passare alla portale di Azure e creare una nuova risorsa di Document Intelligence. Nel riquadro Crea specificare le informazioni seguenti:

Dettagli di progetto Descrizione
Abbonamento Selezionare la sottoscrizione di Azure a cui è stato concesso l'accesso.
Gruppo di risorse Gruppo di risorse di Azure che contiene la risorsa. È possibile creare un nuovo gruppo o aggiungerla a un gruppo già esistente.
Area Posizione della risorsa dei servizi di intelligenza artificiale di Azure. Posizioni diverse possono introdurre latenza, ma non hanno alcun impatto sulla disponibilità di runtime della risorsa.
Nome Nome per la risorsa. È consigliabile usare un nome descrittivo, ad esempio MyNameFormRecognizer.
Piano tariffario Il costo della risorsa varia a seconda del piano tariffario selezionato e dell'utilizzo. Per altre informazioni, vedere i dettagli sui prezzi delle API.
Rivedi e crea Selezionare il pulsante Rivedi e crea per distribuire la risorsa nel portale di Azure.

Recuperare la chiave e l'endpoint

Al termine della distribuzione della risorsa di Document Intelligence, trovare e selezionarla dall'elenco Tutte le risorse nel portale. La chiave e l'endpoint si troveranno nella pagina Chiave ed endpoint della risorsa, in Gestione risorse. Salvarli entrambi in un percorso temporaneo prima di procedere.

Provala

Provare lo strumento di etichettatura degli esempi di analisi dei documenti online:

È necessaria una sottoscrizione di Azure (crearne una gratuitamente) e un endpoint della risorsa di Document Intelligence e una chiave per provare il servizio Document Intelligence.

Configurare lo strumento di etichettatura di esempio

Nota

Se i dati di archiviazione si trova dietro una rete virtuale o un firewall, è necessario distribuire lo strumento di etichettatura di esempio di Document Intelligence dietro la rete virtuale o il firewall e concedere l'accesso creando un'identità gestita assegnata dal sistema.

Usare il motore Docker per eseguire lo strumento Di etichettatura di esempio. Per configurare il contenitore Docker, seguire questa procedura. Per una panoramica dei concetti fondamentali relativi a Docker e ai contenitori, vedere Docker overview (Panoramica di Docker).

Suggerimento

È inoltre disponibile lo strumento OCR Form Labeling Tool come progetto open source in GitHub. Si tratta di un'applicazione Web TypeScript creata con React + Redux. Per altre informazioni o per contribuire, vedere il repository dello strumento OCR Form Labeling Tool. Per provare lo strumento online, passare al sito Web dello strumento di etichettatura degli esempi di analisi dei documenti.

  1. Installare prima di tutto Docker in un computer host. Questa guida illustra come usare il computer locale come host. Per usare un servizio di hosting Docker in Azure, vedere la guida pratica distribuire lo strumento di etichettatura di esempio.

    Il computer host deve soddisfare i requisiti hardware seguenti:

    Contenitore Requisiti minimi Requisiti consigliati
    Strumento di etichettatura di esempio 2 core, 4 GB di memoria 4 core, 8 GB di memoria

    Installare Docker nel computer seguendo le istruzioni appropriate per il sistema operativo in uso:

  2. Ottenere il contenitore dello strumento di etichettatura di esempio con il docker pull comando .

     docker pull mcr.microsoft.com/azure-cognitive-services/custom-form/labeltool:latest-2.1
    
  3. Ora è possibile eseguire il contenitore con docker run.

     docker run -it -p 3000:80 mcr.microsoft.com/azure-cognitive-services/custom-form/labeltool:latest-2.1 eula=accept
    

    Questo comando rende disponibile lo strumento di etichettatura di esempio tramite un Web browser. Vai a http://localhost:3000.

Nota

È anche possibile etichettare documenti ed eseguire il training dei modelli usando l'API REST di Document Intelligence. Per eseguire il training e l'analisi con l'API REST, vedere Eseguire il training con le etichette usando l'API REST e Python.

Configurare i dati di input

Prima di tutto, assicurarsi che tutti i documenti di training abbiano lo stesso formato. Se si usano moduli in più formati, organizzarli in sottocartelle basate sul formato comune. Quando si esegue il training, è necessario indirizzare l'API a una sottocartella.

Configurare la condivisione di risorse tra domini (CORS)

Abilitare CORS nell'account di archiviazione. Selezionare l'account di archiviazione nella portale di Azure e quindi scegliere la scheda CORS nel riquadro sinistro. Nella riga inferiore inserire i valori seguenti. Seleziona Salva in alto.

  • Origini consentite = *
  • Metodi consentiti = [select all]
  • Intestazioni consentite = *
  • Intestazioni esposte = *
  • Età massima = 200

CORS setup in the Azure portal

Connessione allo strumento di etichettatura di esempio

Lo strumento Di etichettatura di esempio si connette a un'origine (moduli caricati originali) e a una destinazione (etichette create e dati di output).

Le connessioni possono essere configurate e condivise tra progetti. Si basano su un modello di provider estendibile, quindi è possibile aggiungere facilmente nuovi provider di origine/destinazione.

Per creare una nuova connessione, selezionare l'icona Nuovo Connessione ions (plug) nella barra di spostamento a sinistra.

Compilare i campi con i valori seguenti:

  • Nome visualizzato: il nome visualizzato della connessione.

  • Descrizione: la descrizione del progetto.

  • URL di firma di accesso condiviso: l'URL di firma di accesso condiviso del contenitore di archiviazione BLOB di Azure. Per recuperare l'URL della firma di accesso condiviso per i dati di training del modello personalizzato, passare alla risorsa di archiviazione nella portale di Azure e selezionare la scheda Archiviazione Explorer. Passare al contenitore, fare clic con il pulsante destro del mouse e selezionare Recupera firma di accesso condiviso. È importante ottenere la firma di accesso condiviso per il contenitore, non per l'account di archiviazione. Verificare che le autorizzazioni Lettura, Scrittura, Eliminazione ed Elenco siano selezionate e fare clic su Crea. A questo punto, copiare il valore dalla sezione URL in una posizione temporanea. Dovrebbe essere in questo formato: https://<storage account>.blob.core.windows.net/<container name>?<SAS value>.

    SAS URL retrieval

Connection settings of Sample Labeling tool.

Crea un nuovo progetto

Nello strumento Etichettatura di esempio i progetti archiviano le configurazioni e le impostazioni. Creare un nuovo progetto e compilare i campi con i valori seguenti:

  • Nome visualizzato: il nome visualizzato del progetto
  • Token di sicurezza: alcune impostazioni del progetto possono includere valori sensibili, ad esempio chiavi o altri segreti condivisi. Ogni progetto genera un token di sicurezza che può essere usato per crittografare/decrittografare le impostazioni del progetto sensibili. È possibile trovare i token di sicurezza nell'applicazione Impostazioni selezionando l'icona a forma di ingranaggio nella parte inferiore della barra di spostamento a sinistra.
  • Connessione protetta: la connessione ad archiviazione BLOB di Azure creata nel passaggio precedente che si vuole usare per questo progetto.
  • Percorso cartella (facoltativo): se i moduli di origine si trovano in una cartella del contenitore BLOB, specificare qui il relativo nome
  • URI del servizio Document Intelligence: URL dell'endpoint di Document Intelligence.
  • Chiave : chiave di Business Intelligence per i documenti.
  • Descrizione (facoltativo): la descrizione del progetto

New project page on Sample Labeling tool.

Etichettare i moduli

Quando si crea o si apre un progetto, viene visualizzata la finestra principale dell'editor di tag. L'editor di tag è costituito da tre parti:

  • Riquadro 3.0 ridimensionabile che contiene un elenco scorrevole di moduli dalla connessione di origine.
  • Il riquadro principale dell'editor che consente di applicare tag.
  • Il riquadro dell'editor di tag che consente di modificare, bloccare, riordinare ed eliminare tag.

Identificare testo e tabelle

Selezionare Esegui layout nei documenti non visualizzati nel riquadro sinistro per ottenere le informazioni sul layout di testo e tabella per ogni documento. Lo strumento di etichettatura disegna rettangoli di delimitazione intorno a ogni elemento di testo.

Lo strumento di etichettatura mostra anche quali tabelle sono state estratte automaticamente. Selezionare l'icona tabella/griglia a sinistra del documento per visualizzare la tabella estratta. In questa guida introduttiva, poiché il contenuto della tabella viene estratto automaticamente, il contenuto della tabella non viene etichettato, ma si basa sull'estrazione automatica.

Table visualization in Sample Labeling tool.

Nella versione 2.1, se il documento di training non contiene un valore compilato, è possibile disegnare una casella in cui deve essere il valore. Usare Draw region (Disegna area ) nell'angolo superiore sinistro della finestra per rendere l'area taggabile.

Applicare le etichette al testo

Successivamente, si creano tag (etichette) e si applicano agli elementi di testo che si vuole analizzare il modello.

  1. Usare prima di tutto il riquadro dell'editor di tag per creare i tag da identificare.
    1. Selezionare questa opzione + per creare un nuovo tag.
    2. Immettere il nome del tag.
    3. Premere INVIO per salvare il tag.
  2. Nell'editor principale selezionare le parole dagli elementi di testo evidenziati o da un'area in cui è stato disegnato.
  3. Selezionare il tag da applicare oppure premere il tasto di tastiera corrispondente. I tasti numerici vengono assegnati come tasti di scelta rapida per i primi 10 tag. È possibile riordinare i tag usando le icone delle frecce su e giù nel riquadro dell'editor di tag.
  4. Seguire questa procedura per etichettare almeno cinque moduli.

    Suggerimento

    Quando si etichettano i moduli, tenere presenti i suggerimenti seguenti:

    • È possibile applicare un unico tag a ogni elemento di testo selezionato.
    • Ogni tag può essere applicato una sola volta per pagina. Se un valore viene visualizzato più volte nella stessa pagina, creare tag diversi per ogni istanza. Ad esempio: "invoice# 1", "invoice# 2" e così via.
    • I tag non possono estendersi in più pagine.
    • Etichettare i valori così come appaiono nel modulo. Non provare a dividere un valore in due parti con due tag diversi. Ad esempio, un campo di indirizzo deve essere etichettato con un singolo tag anche se si estende su più righe.
    • Non includere chiavi nei campi con tag, ma solo i valori.
    • I dati delle tabelle dovrebbero essere rilevati automaticamente e saranno disponibili nel file JSON finale di output. Tuttavia, se il modello non riesce a rilevare tutti i dati di una tabella, è anche possibile etichettare manualmente questi campi. Assegnare un'etichetta diversa a ogni cella della tabella. Se i moduli includono tabelle con un numero variabile di righe, assicurarsi di etichettare almeno un modulo con la tabella più grande possibile.
    • Usare i pulsanti a destra del segno + per cercare, rinominare, riordinare ed eliminare i tag.
    • Per rimuovere un tag applicato senza eliminarlo, selezionare il rettangolo con tag nella visualizzazione del documento e premere CANC.

Main editor window of Sample Labeling tool.

Specificare i tipi di valore di tag

È possibile impostare il tipo di dati previsto per ogni tag. Aprire il menu di scelta rapida a destra di un tag e selezionare un tipo dal menu. Questa funzionalità consente all'algoritmo di rilevamento di fare presupposti che migliorano l'accuratezza del rilevamento del testo. Garantisce anche che i valori rilevati vengano restituiti in un formato standardizzato nell'output JSON finale. Le informazioni sul tipo di valore vengono salvate nel file fields.json nello stesso percorso dei file di etichette.

Value type selection with Sample Labeling tool

Sono attualmente supportati i tipi di valore e le varianti seguenti:

  • string

    • predefinito, no-whitespaces, alphanumeric
  • number

    • predefinito, currency
    • Formattato come valore a virgola mobile.
    • Esempio: 1234.98 nel documento è formattato in 1234.98 nell'output
  • date

    • predefinito, dmy, mdy, ymd
  • time

  • integer

    • Formattato come valore intero.
    • Esempio: 1234.98 nel documento viene formattato in 123498 nell'output.
  • selectionMark

Nota

Vedere queste regole per la formattazione della data:

Per il corretto funzionamento della formattazione della data, è necessario specificare un formato (dmy, mdy, ymd).

I seguenti caratteri possono essere utilizzati come delimitatori di data: , - / . \. Non è possibile usare uno spazio come delimitatore. Ad esempio:

  • 01,01,2020
  • 01-01-2020
  • 01/01/2020

Il giorno e il mese possono essere scritti ciascuno come una o due cifre e l'anno può essere due o quattro cifre:

  • 1-1-2020
  • 1-01-20

Se una stringa di data ha otto cifre, il delimitatore è facoltativo:

  • 01012020
  • 01 01 2020

Il mese può anche essere scritto come nome completo o breve. Se viene utilizzato il nome, i caratteri delimitatori sono facoltativi. Tuttavia, questo formato potrebbe essere riconosciuto in modo meno accurato rispetto ad altri.

  • 01/Gen/2020
  • 01Gen2020
  • 01 Gen 2020

Tabelle etichetta (solo v2.1)

A volte, i dati potrebbero risultare meglio etichettati come tabella anziché coppie chiave-valore. In questo caso, è possibile creare un tag di tabella selezionando Aggiungi un nuovo tag di tabella. Specificare se la tabella ha un numero fisso di righe o un numero variabile di righe a seconda del documento e definire lo schema.

Configuring a table tag.

Dopo aver definito il tag di tabella, contrassegna i valori delle celle.

Labeling a table.

Eseguire il training di un modello personalizzato

Scegliere l'icona Esegui training nel riquadro sinistro per aprire la pagina Training. Selezionare quindi il pulsante Train (Esegui training) per iniziare il training del modello. Al termine del processo di training, vengono visualizzate le informazioni seguenti:

  • ID modello: l'ID del modello creato e sottoposto a training. Ogni chiamata al training crea un nuovo modello con un proprio ID. Copiare questa stringa in una posizione sicura; è necessario se si vogliono eseguire chiamate di stima tramite l'API REST o la guida alla libreria client.
  • Average Accuracy (Accuratezza media): l'accuratezza media del modello. È possibile migliorare l'accuratezza del modello aggiungendo ed etichettando più moduli, quindi ripetere il training per creare un nuovo modello. Per iniziare, è consigliabile etichettare cinque moduli ed aggiungerne altri se necessario.
  • L'elenco dei tag e l'accuratezza stimata per ognuno.

Training view.

Al termine del training, esaminare il valore di Average Accuracy (Accuratezza media). Se è basso, è consigliabile aggiungere altri documenti di input e ripetere i passaggi di etichettatura. I documenti già etichettati rimangono nell'indice del progetto.

Suggerimento

È anche possibile eseguire il processo di training con una chiamata API REST. Per informazioni su come eseguire questa operazione, vedere Eseguire il training con le etichette usando Python.

Comporre modelli con training

Con Model Compose è possibile comporre fino a 200 modelli in un singolo ID modello. Quando si chiama Analizza con l'oggetto composto modelID, Document Intelligence classifica il modulo inviato, scegliere il modello di corrispondenza migliore e quindi restituire i risultati per tale modello. Questa operazione è utile quando i moduli in ingresso possono appartenere a uno dei diversi modelli.

  • Per comporre modelli nello strumento Etichettatura di esempio, selezionare l'icona Composizione modello (unione freccia) dalla barra di spostamento.
  • Selezionare i modelli da comporre insieme. I modelli contrassegnati con l'icona della freccia sono già composti.
  • Scegliere il pulsante Componi. Nella finestra popup assegnare un nome al nuovo modello composto e selezionare Compose.
  • Al termine dell'operazione, il modello appena composto verrà visualizzato nell'elenco.

Model compose UX view.

Analizzare un modulo

Selezionare l'icona Analizza dalla barra di spostamento per testare il modello. Selezionare file locale di origine. Cercare un file e selezionare un file dal set di dati di esempio decompresso nella cartella di test. Scegliere quindi il pulsante Esegui analisi per ottenere coppie chiave/valore, stime di testo e tabelle per il modulo. Lo strumento applica tag nei rettangoli delimitatori e segnala l'attendibilità di ogni tag.

Screenshot of analyze-a-custom-form window

Suggerimento

È anche possibile eseguire l'API di analisi con una chiamata REST. Per informazioni su come eseguire questa operazione, vedere Eseguire il training con le etichette usando Python.

Migliorare i risultati

A seconda dell'accuratezza indicata, è possibile scegliere di eseguire ulteriori processi di training per migliorare il modello. Dopo aver eseguito una previsione, esaminare i valori di attendibilità per ognuno dei tag applicati. Se il valore di training dell'accuratezza media è elevato, ma i punteggi di attendibilità sono bassi (o i risultati sono imprecisi), aggiungere il file di stima al set di training, etichettarlo ed eseguirne di nuovo il training.

L'accuratezza media segnalata, i punteggi di attendibilità e l'accuratezza effettiva possono essere incoerenti quando i documenti analizzati differiscono dai documenti usati nel training. Tenere presente che alcuni documenti hanno un aspetto simile quando vengono visualizzati dalle persone ma sembrano diversi per il modello di intelligenza artificiale. Ad esempio, è possibile eseguire il training con un tipo di modulo con due varianti, in cui il set di training è costituito per il 20% dalla variante A e per l'80% dalla variante B. Durante la previsione, è probabile che i punteggi di attendibilità per i documenti della variante A siano inferiori.

Salvare un progetto e riprenderlo in seguito

Per riprendere il progetto in un secondo momento o in un altro browser, è necessario salvare il relativo token di sicurezza e reimmetterlo in seguito.

Ottenere le credenziali del progetto

Passare alla pagina delle impostazioni del progetto (icona del dispositivo di scorrimento) e prendere nota del nome del token di sicurezza. Passare quindi alle impostazioni dell'applicazione (icona dell'ingranaggio), che visualizzano tutti i token di sicurezza nell'istanza del browser corrente. Trovare il token di sicurezza del progetto e copiarne il nome e il valore della chiave in un posto sicuro.

Ripristinare le credenziali del progetto

Quando si vuole riprendere il progetto, è prima di tutto necessario creare una connessione allo stesso contenitore di archiviazione BLOB. A tale scopo, ripetere i passaggi. Quindi, passare alla pagina di impostazioni dell'applicazione (icona dell'ingranaggio) e verificare se il token di sicurezza del progetto è presente. Se non lo è, aggiungere un nuovo token di sicurezza e sovrascrivere il nome e la chiave del token del passaggio precedente. Selezionare Salva per conservare le impostazioni.

Riprendere un progetto

Infine, passare alla pagina principale (icona della casa) e selezionare Apri progetto cloud. Selezionare quindi la connessione all'archiviazione BLOB e selezionare il file del .fott progetto. L'applicazione carica tutte le impostazioni del progetto perché ha il token di sicurezza.

Passaggi successivi

In questo argomento di avvio rapido si è appreso come usare lo strumento di etichettatura di esempio di Document Intelligence per eseguire il training di un modello con dati etichettati manualmente. Per creare un'utilità personalizzata per etichettare i dati di training, usare le API REST relative ai dati di training etichettati.