Document AI Workbench - Uptraining

1. Introduzione

Document AI è una soluzione di comprensione dei documenti che prende dati non strutturati, come documenti, email e così via, e li rende più facili da comprendere, analizzare e utilizzare.

Utilizzando l'ottimizzazione dell'addestramento tramite Document AI Workbench, puoi ottenere una maggiore accuratezza di elaborazione dei documenti fornendo esempi etichettati aggiuntivi per i tipi di documenti specializzati e creando una nuova versione del modello.

In questo lab creerai un processore analizzatore sintattico delle fatture, lo configurerai per l'uptraining, etichetterai i documenti di esempio ed eseguirai l'uptraining del processore.

Il set di dati dei documenti utilizzato in questo lab è costituito da fatture generate in modo casuale per un'azienda di tubazioni fittizia.

Prerequisiti

Questo codelab si basa sui contenuti presentati in altri codelab di Document AI.

Ti consigliamo di completare i seguenti Codelab prima di procedere.

Cosa imparerai a fare

  • Configura l'ottimizzazione dell'addestramento per un processore di analisi delle fatture.
  • Etichetta i dati di addestramento di Document AI utilizzando lo strumento di annotazione.
  • Addestra una nuova versione del modello.
  • Valuta l'accuratezza della nuova versione del modello.

Che cosa ti serve

  • Un progetto Google Cloud
  • Un browser, ad esempio Chrome o Firefox

2. Preparazione

Questo codelab presuppone che tu abbia completato i passaggi di configurazione di Document AI elencati nel codelab introduttivo.

Prima di procedere, completa i seguenti passaggi:

3. Crea un processore

Per utilizzare questo lab, devi prima creare un processore di analisi delle fatture.

  1. Nella console, vai alla pagina Panoramica di Document AI.

docai-uptraining-codelab-01

  1. Fai clic su Crea processore, scorri verso il basso fino a Specializzato (o digita "Analizzatore sintattico delle fatture" nella barra di ricerca) e seleziona Analizzatore sintattico delle fatture.

docai-uptraining-codelab-02

  1. Assegna il nome codelab-invoice-uptraining (o un altro nome che ricorderai) e seleziona la regione più vicina nell'elenco.

docai-uptraining-codelab-03

  1. Fai clic su Crea per creare il processore. Dovresti visualizzare la pagina Panoramica del processore.

docai-uptraining-codelab-04

4. Crea un set di dati

Per addestrare il nostro processore, dovremo creare un set di dati con dati di addestramento e test per aiutare il processore a identificare le entità che vogliamo estrarre.

Per archiviare il set di dati, devi creare un nuovo bucket in Cloud Storage. Nota: non deve essere lo stesso bucket in cui sono attualmente archiviati i documenti.

  1. Apri Cloud Shell ed esegui questi comandi per creare un bucket. In alternativa, crea un nuovo bucket nella console Cloud. Salva il nome del bucket, ti servirà in un secondo momento.
export PROJECT_ID=$(gcloud config get-value project)

gsutil mb -p $PROJECT_ID "gs://${PROJECT_ID}-uptraining-codelab"
  1. Vai alla scheda Set di dati e fai clic su Crea set di dati.

docai-uptraining-codelab-05

  1. Incolla il nome del bucket che hai creato nel passaggio 1 nel campo Percorso di destinazione. (non includere gs://)

docai-uptraining-codelab-06

  1. Attendi la creazione del set di dati, poi dovresti essere reindirizzato alla pagina Gestione dei set di dati.

docai-uptraining-codelab-07

5. Importare un documento di test

Ora importiamo un PDF di fattura di esempio nel nostro set di dati.

  1. Fai clic su Importa documenti.

docai-uptraining-codelab-08

  1. Abbiamo un PDF di esempio da utilizzare in questo lab. Copia e incolla il seguente link nella casella Percorso di origine. Per il momento, lascia "Suddivisione dati" su "Non assegnato". Fai clic su Importa.
cloud-samples-data/documentai/codelabs/uptraining/pdfs

docai-uptraining-codelab-09

  1. Attendi l'importazione del documento. Nei miei test, questa operazione ha richiesto meno di un minuto.

docai-uptraining-codelab-10

  1. Al termine dell'importazione, dovresti vedere il documento nell'interfaccia utente di gestione dei set di dati. Fai clic per accedere alla console di etichettatura.

docai-uptraining-codelab-11

6. Etichetta il documento di test

Successivamente, identificheremo gli elementi di testo e le etichette per le entità che vogliamo estrarre. Queste etichette verranno utilizzate per addestrare il nostro modello ad analizzare questa struttura specifica del documento e a identificare i tipi corretti.

  1. Ora dovresti trovarti nella console di etichettatura, che avrà un aspetto simile a questo.

docai-uptraining-codelab-12

  1. Fai clic sullo strumento "Seleziona testo", quindi evidenzia il testo "McWilliam Piping International Piping Company" e assegna l'etichetta supplier_name. Puoi utilizzare il filtro di testo per cercare i nomi delle etichette.

docai-uptraining-codelab-13

  1. Evidenzia il testo "14368 Pipeline Ave Chino, CA 91710" e assegna l'etichetta supplier_address.

docai-uptraining-codelab-14

  1. Evidenzia il testo "10001" e assegna l'etichetta invoice_id.

docai-uptraining-codelab-15

  1. Evidenzia il testo "2020-01-02" e assegna l'etichetta due_date.

docai-uptraining-codelab-16

  1. Passa allo strumento "Riquadro di selezione". Evidenzia il testo "Knuckle Couplers" (Agganci a nocche) e assegna l'etichetta line_item/description.

docai-uptraining-codelab-17

  1. Evidenzia il testo "9" e assegna l'etichetta line_item/quantity.

docai-uptraining-codelab-18

  1. Evidenzia il testo "74,43" e assegna l'etichetta line_item/unit_price.

docai-uptraining-codelab-19

  1. Evidenzia il testo "669,87" e assegna l'etichetta line_item/amount.

docai-uptraining-codelab-20

  1. Ripeti i quattro passaggi precedenti per i due elementi pubblicitari successivi. Al termine, dovrebbe avere l'aspetto seguente.

docai-uptraining-codelab-21

  1. Evidenzia il testo "1419,57" (accanto a Subtotale) e assegna l'etichetta net_amount.

docai-uptraining-codelab-22

  1. Evidenzia il testo "113,57" (accanto a Tasse) e assegna l'etichetta total_tax_amount.

docai-uptraining-codelab-23

  1. Evidenzia il testo "1533,14" (accanto a Totale) e assegna l'etichetta total_amount.

docai-uptraining-codelab-24

  1. Evidenzia uno dei caratteri "$" e assegna l'etichetta currency.

docai-uptraining-codelab-25

  1. Al termine, il documento con etichetta avrà l'aspetto seguente. Tieni presente che puoi apportare modifiche a queste etichette facendo clic sul riquadro di selezione nel documento o sul nome/valore dell'etichetta nel menu a sinistra. Al termine dell'etichettatura, fai clic su Salva.

docai-uptraining-codelab-26

  1. Ecco l'elenco completo di etichette e valori

Nome etichetta

Testo

supplier_name

McWilliam Piping International Piping Company

supplier_address

14368 Pipeline Ave Chino, CA 91710, Stati Uniti

invoice_id

10001

due_date

2020-01-02

line_item/description

Giunti a snodo

line_item/quantity

9

line_item/unit_price

74,43

line_item/amount

669,87

line_item/description

Tubo in PVC da 12"

line_item/quantity

7

line_item/unit_price

15,90

line_item/amount

111,30

line_item/description

Tubo di rame

line_item/quantity

7

line_item/unit_price

91,20

line_item/amount

638,40

net_amount

1.419,57

total_tax_amount

113,57

total_amount

1.533,14

currency

$

7. Assegna il documento al set di addestramento

Ora dovresti essere di nuovo nella console di gestione dei set di dati. Nota che anche il numero di documenti etichettati e non etichettati è cambiato, così come il numero di etichette attive.

docai-uptraining-codelab-27

  1. Dobbiamo assegnare questo documento al set "Addestramento" o "Test". Fai clic sul documento.

docai-uptraining-codelab-28

  1. Fai clic su Assegna a set, poi su Addestramento.

docai-uptraining-codelab-29

  1. Nota che i numeri della suddivisione dei dati sono cambiati.

docai-uptraining-codelab-30

8. Importa dati preetichettati

L'addestramento di Document AI richiede un minimo di 10 documenti sia nel set di addestramento che nel set di test, insieme a 10 istanze di ogni etichetta in ogni set.

Per ottenere prestazioni ottimali, ti consigliamo di avere almeno 50 documenti in ciascun set, con 50 istanze di ogni etichetta. Una maggiore quantità di dati di addestramento corrisponde in genere a una maggiore accuratezza.

L'etichettatura manuale di 100 documenti richiede molto tempo, quindi abbiamo alcuni documenti pre-etichettati che puoi importare per questo lab.

Puoi importare file di documenti pre-etichettati nel formato Document.json. Questi possono essere i risultati della chiamata a un processore e della verifica dell'accuratezza utilizzando Human in the Loop (HITL).

  1. Fai clic su Importa documenti.

docai-uptraining-codelab-30

  1. Copia e incolla il seguente percorso di Cloud Storage e assegnalo al set Training.
cloud-samples-data/documentai/codelabs/uptraining/training
  1. Fai clic su Aggiungi un altro bucket. Quindi, copia/incolla il seguente percorso di Cloud Storage e assegnalo al set Test.
cloud-samples-data/documentai/codelabs/uptraining/test

docai-uptraining-codelab-31

  1. Fai clic su Importa e attendi l'importazione dei documenti. L'operazione richiederà più tempo rispetto all'ultima volta perché ci sono più documenti da elaborare. Nei miei test, ci sono voluti circa 6 minuti. Puoi uscire da questa pagina e tornare più tardi.

docai-uptraining-codelab-32

  1. Al termine, dovresti vedere i documenti nella pagina Gestione set di dati.

docai-uptraining-codelab-33

9. Modifica etichette

I documenti di esempio che utilizziamo per questo esempio non contengono tutte le etichette supportate dall'analizzatore sintattico delle fatture. Prima dell'addestramento, dobbiamo contrassegnare come inattive le etichette che non utilizziamo. Puoi anche seguire passaggi simili per aggiungere un'etichetta personalizzata prima dell'uptraining.

  1. Fai clic su Gestisci etichette nell'angolo in basso a sinistra.

docai-uptraining-codelab-33

  1. Ora dovresti trovarti nella console di gestione delle etichette.

docai-uptraining-codelab-34

  1. Utilizza le caselle di controllo e i pulsanti Disattiva/Attiva per contrassegnare SOLO le seguenti etichette come Attive.
    • currency
    • due_date
    • invoice_id
    • line_item/amount
    • line_item/description
    • line_item/quantity
    • line_item/unit_price
    • net_amount
    • supplier_address
    • supplier_name
    • total_amount
    • total_tax_amount
  2. Al termine, la console dovrebbe avere l'aspetto seguente. Al termine, fai clic su Salva.

docai-uptraining-codelab-35

  1. Fai clic sulla freccia Indietro per tornare alla console di gestione dei set di dati. Nota che le etichette con 0 istanze sono state contrassegnate come Inattive.

docai-uptraining-codelab-36

10. Facoltativo: etichettatura automatica dei documenti appena importati

Quando importi documenti non etichettati per un processore con una versione del processore di cui è già stato eseguito il deployment, puoi utilizzare l'etichettatura automatica per risparmiare tempo.

  1. Nella pagina Addestra, fai clic su Importa documenti.
  2. Copia e incolla il seguente percorso di . Questa directory contiene 5 fatture PDF senza etichetta. Nell'elenco a discesa Suddivisione dati, seleziona Addestramento.
    cloud-samples-data/documentai/Custom/Invoices/PDF_Unlabeled
    
  3. Nella sezione Etichettatura automatica, seleziona la casella di controllo Importa con etichettatura automatica.
  4. Seleziona una versione di processore esistente per etichettare i documenti.
  • Ad esempio: pretrained-invoice-v1.3-2022-07-15
  1. Fai clic su Importa e attendi l'importazione dei documenti. Puoi uscire da questa pagina e tornare più tardi.
  • Al termine, i documenti verranno visualizzati nella pagina Addestra nella sezione Con etichetta automatica.
  1. Non puoi utilizzare i documenti con etichetta automatica per l'addestramento o i test senza contrassegnarli come etichettati. Vai alla sezione Con etichetta automatica per visualizzare i documenti con etichetta automatica.
  2. Seleziona il primo documento per accedere alla console di etichettatura.
  3. Verifica le etichette, i riquadri di delimitazione e i valori per assicurarti che siano corretti. Etichetta eventuali valori omessi.
  4. Al termine, seleziona Contrassegna come etichettato.
  5. Ripeti la verifica delle etichette per ogni documento con etichetta automatica, quindi torna alla pagina Addestra per utilizzare i dati per l'addestramento.

11. Esegui l'uptraining del modello

Ora siamo pronti per iniziare ad addestrare il nostro analizzatore sintattico delle fatture.

  1. Fai clic su Addestra nuova versione.

docai-uptraining-codelab-36

  1. Assegna alla versione un nome facile da ricordare, ad esempio codelab-uptraining-test-1. La versione di base è la versione del modello da cui verrà creata questa nuova versione. Se utilizzi un nuovo processore, l'unica opzione dovrebbe essere Google Pretrained Next con Uptraining

docai-uptraining-codelab-37

  1. (Facoltativo) Puoi anche selezionare Visualizza statistiche etichette per visualizzare le metriche relative alle etichette nel set di dati.

docai-uptraining-codelab-38

  1. Fai clic su Inizia addestramento per iniziare la procedura di addestramento. Dovresti essere reindirizzato alla pagina di gestione dei set di dati. Puoi visualizzare lo stato di addestramento sul lato destro. Il completamento dell'addestramento richiede alcune ore. Puoi uscire da questa pagina e tornare più tardi.

docai-uptraining-codelab-39

  1. Se fai clic sul nome della versione, si aprirà la pagina Gestisci versioni, che mostra l'ID versione e lo stato attuale del job di addestramento.

docai-uptraining-codelab-40

12. Testare la nuova versione del modello

Una volta completato il job di addestramento (ci è voluta circa un'ora nei miei test), puoi testare la nuova versione del modello e iniziare a utilizzarla per le previsioni.

  1. Vai alla pagina Gestisci versioni. Qui puoi vedere lo stato attuale e l'F1 Score.

docai-uptraining-codelab-41

  1. Prima di poterla utilizzare, dovremo eseguire il deployment di questa versione del modello. Fai clic sui puntini verticali a destra e seleziona Esegui il deployment della versione.

docai-uptraining-codelab-42

  1. Seleziona Esegui il deployment dalla finestra popup e attendi il deployment della versione. Il completamento dell'operazione richiede alcuni minuti. Una volta eseguito il deployment, puoi anche impostare questa versione come versione predefinita.

docai-uptraining-codelab-43

  1. Al termine del deployment, vai alla scheda Valuta. Poi fai clic sul menu a discesa Versione e seleziona la versione appena creata.

docai-uptraining-codelab-44

  1. In questa pagina puoi visualizzare le metriche di valutazione, tra cui il punteggio F1, la precisione e l'identificazione per l'intero documento, nonché le singole etichette. Per saperne di più su queste metriche, consulta la documentazione di AutoML.
  2. Scarica il file PDF collegato di seguito. Si tratta di un documento di esempio non incluso nel set di addestramento o di test.

  1. Fai clic su Carica documento di test e seleziona il file PDF.

docai-uptraining-codelab-45

  1. Le entità estratte dovrebbero essere simili a queste.

docai-uptraining-codelab-46

13. Conclusione

Congratulazioni, hai utilizzato Document AI per eseguire l'addestramento di un analizzatore sintattico delle fatture. Ora puoi utilizzare questo processore per analizzare le fatture proprio come faresti con qualsiasi processore specializzato.

Per scoprire come gestire la risposta di elaborazione, consulta il codelab sui processori specializzati.

Pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial:

  • In Cloud Console, vai alla pagina Gestisci risorse.
  • Nell'elenco dei progetti, seleziona il tuo progetto e poi fai clic su Elimina.
  • Nella finestra di dialogo, digita l'ID progetto, quindi fai clic su Chiudi per eliminare il progetto.

Risorse

Licenza

Questo lavoro è concesso in licenza ai sensi di una licenza Creative Commons Attribution 2.0 Generic.