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'uptraining tramite Document AI Workbench, puoi ottenere una maggiore precisione di elaborazione dei documenti fornendo ulteriori esempi etichettati per tipi di documenti specializzati e creando una nuova versione del modello.
In questo lab creerai un processore di analisi delle fatture, configurerai il processore per l'uptraining, eticherai 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 fittizia di tubature.
Prerequisiti
Questo codelab si basa sui contenuti presentati in altri codelab di Document AI.
Ti consigliamo di completare i seguenti codelab prima di procedere.
- Riconoscimento ottico dei caratteri (OCR) con Document AI (Python)
- Analisi dei moduli con Document AI (Python)
- Processori specializzati con Document AI (Python)
- Gestione dei processori Document AI con Python
- Document AI: human-in-the-loop
Cosa imparerai a fare
- Configurare l'uptraining 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.
- Valutare l'accuratezza della nuova versione del modello.
Che cosa ti serve
2. Preparazione
Questo codelab presuppone che tu abbia completato i passaggi della configurazione di Document AI elencati nel Codelab introduttivo.
Completa i seguenti passaggi prima di procedere:
3. Crea un processore
Devi prima creare un processore di analisi delle fatture da utilizzare per questo lab.
- Nella console, vai alla pagina Panoramica di Document AI.
- Fai clic su Crea processore, scorri verso il basso fino a Specializzato (o digita "Analizzatore fatture" nella barra di ricerca) e seleziona Analizzatore fatture.
- Assegnagli il nome
codelab-invoice-uptraining
(o qualcos'altro ricorderai) e seleziona la regione più vicina nell'elenco.
- Fai clic su Crea per creare il processore. Dovresti quindi vedere la pagina Panoramica del processore.
4. Crea un set di dati
Per addestrare il nostro processore, dovremo creare un set di dati con dati di addestramento e test per aiutarlo a identificare le entità che vogliamo estrarre.
Dovrai creare un nuovo bucket in Cloud Storage per archiviare il set di dati. Nota: questo bucket non deve essere lo stesso in cui sono attualmente archiviati i tuoi documenti.
- Apri Cloud Shell ed esegui questi comandi per creare un bucket. In alternativa, crea un nuovo bucket nella console Cloud. Salva il nome di questo 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"
- Vai alla scheda Set di dati e fai clic su Crea set di dati.
- Incolla nel campo Percorso di destinazione il nome del bucket creato nel primo passaggio. (Non includere
gs://
)
- Attendi il completamento della creazione del set di dati, che dovrebbe reindirizzarti alla pagina Gestione set di dati.
5. Importa un documento di test
Ora importiamo un esempio di fattura in formato PDF nel nostro set di dati.
- Fai clic su Importa documenti.
- Abbiamo un PDF di esempio che puoi usare in questo lab. Copia e incolla il seguente link nella casella Percorso di origine. Lascia selezionata l'opzione "Suddivisione dati". come "Non assegnato" per ora. Fai clic su Importa.
cloud-samples-data/documentai/codelabs/uptraining/pdfs
- Attendi che il documento venga importato. Questa operazione ha richiesto meno di 1 minuto nei miei test.
- Al termine dell'importazione, dovresti vedere il documento nella UI di gestione del set di dati. Fai clic sul pulsante per accedere alla console di etichettatura.
6. Etichetta il documento di test
Quindi, identificheremo gli elementi di testo e le etichette delle entità da estrarre. Queste etichette saranno utilizzate per addestrare il nostro modello ad analizzare questa specifica struttura di documenti e identificare i tipi corretti.
- A questo punto dovresti essere nella console di etichettatura, che avrà un aspetto simile a questo.
- Fai clic sull'icona "Seleziona testo" Tool, 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.
- Evidenzia il testo "14368 Pipeline Ave Chino, CA 91710", e assegna l'etichetta
supplier_address
.
- Evidenzia il testo "10001". e assegna l'etichetta
invoice_id
.
- Evidenzia il testo "2020-01-02" e assegna l'etichetta
due_date
.
- Passa al "riquadro di delimitazione". lo strumento a riga di comando gcloud. Evidenzia il testo "Knuckle Couplers". e assegna l'etichetta
line_item/description
.
- Evidenzia il testo "9". e assegna l'etichetta
line_item/quantity
.
- Evidenzia il testo "74,43" e assegna l'etichetta
line_item/unit_price
.
- Evidenzia il testo "669.87" e assegna l'etichetta
line_item/amount
.
- Ripeti i quattro passaggi precedenti per i successivi due elementi pubblicitari. Al termine, dovrebbe avere questo aspetto.
- Evidenzia il testo "1419,57". (accanto a Totale parziale) e assegna l'etichetta
net_amount
.
- Evidenzia il testo "113.57". (accanto a Imposta) e assegna l'etichetta
total_tax_amount
.
- Evidenzia il testo "1533.14". (accanto a Totale) e assegna l'etichetta
total_amount
.
- Evidenzia uno dei "$" e assegna l'etichetta
currency
.
- Al termine, il documento etichettato dovrebbe avere il seguente aspetto. Puoi modificare queste etichette facendo clic sul riquadro di delimitazione nel documento o sul nome/valore dell'etichetta nel menu a sinistra. Al termine dell'etichettatura, fai clic su Salva.
- Ecco l'elenco completo di etichette e valori
Nome etichetta | Testo |
| McWilliam Piping International Piping Company |
| 14368 Pipeline Ave Chino, CA 91710, Stati Uniti |
| 10001 |
| 2020-01-02 |
| Giunti a snodo |
| 9 |
| 74,43 |
| 669,87 |
| Tubo in PVC da 12" |
| 7 |
| 15,90 |
| 111,30 |
| Tubo di rame |
| 7 |
| 91,20 |
| 638,40 |
| 1.419,57 |
| 113,57 |
| 1.533,14 |
| $ |
7. Assegna documento al set di addestramento
A questo punto dovresti tornare alla console di gestione dei set di dati. Nota che il numero di documenti etichettati e senza etichetta sono cambiati così come il numero di etichette attive.
- Dobbiamo assegnare questo documento al o "Test" per iniziare. Fai clic sul documento.
- Fai clic su Assign to Set (Assegna al set) e poi su Addestramento.
- I numeri di suddivisione dati sono cambiati.
8. Importa dati pre-etichettati
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 le migliori prestazioni, ti consigliamo di includere almeno 50 documenti in ogni set con 50 istanze per ogni etichetta. Una maggiore quantità di dati di addestramento corrisponde in genere a una maggiore accuratezza.
L'etichettatura manuale di 100 documenti richiederà molto tempo, perciò abbiamo alcuni documenti pre-etichettati che puoi importare per questo lab.
Puoi importare file di documenti preetichettati nel formato Document.json
. Questi risultati possono derivare dalla chiamata a un processore e dalla verifica dell'accuratezza mediante Human in the Loop (HITL).
- Fai clic su Importa documenti.
- Copia/Incolla il seguente percorso di Cloud Storage e assegnalo al set Addestramento.
cloud-samples-data/documentai/codelabs/uptraining/training
- Fai clic su Aggiungi un altro bucket. Quindi, copia e incolla il seguente percorso Cloud Storage e assegnalo al set di Test.
cloud-samples-data/documentai/codelabs/uptraining/test
- Fai clic su Importa e attendi l'importazione dei documenti. Questa operazione richiederà più tempo rispetto all'ultima volta perché sono presenti più documenti da elaborare. Nei miei test, ci sono voluti circa 6 minuti. Puoi uscire da questa pagina e tornare più tardi.
- Al termine, dovresti vedere i documenti nella pagina Gestione del set di dati.
9. Modifica etichette
I documenti utilizzati in questo esempio non contengono tutte le etichette supportate dall'analizzatore sintattico delle fatture. Dovremo contrassegnare come inattive le etichette che non utilizziamo prima dell'addestramento. Puoi anche seguire una procedura simile per aggiungere un'etichetta personalizzata prima dell'uptraining.
- Fai clic su Gestisci etichette nell'angolo in basso a sinistra.
- A questo punto dovresti essere nella console di gestione delle etichette.
- Utilizza le caselle di controllo e i pulsanti Disattiva/Attiva per contrassegnare come Attivate SOLO le seguenti etichette.
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
- Al termine, la console dovrebbe avere questo aspetto. Al termine, fai clic su Salva.
- Fai clic sulla Freccia indietro per tornare alla console di gestione del set di dati. Nota che le etichette con 0 istanze sono state contrassegnate come inattive.
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.
- Nella pagina Addestra, fai clic su Importa documenti.
- Copia e incolla il seguente percorso . Questa directory contiene 5 fatture PDF senza etichetta. Dall'elenco a discesa Suddivisione dati, seleziona Addestramento.
cloud-samples-data/documentai/Custom/Invoices/PDF_Unlabeled
- Nella sezione Etichettatura automatica, seleziona la casella di controllo Importa con etichettatura automatica.
- Seleziona una versione di processore esistente per etichettare i documenti.
- Ad esempio:
pretrained-invoice-v1.3-2022-07-15
- 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.
- Non puoi utilizzare i documenti con etichetta automatica per l'addestramento o i test senza contrassegnarli come etichettati. Vai alla sezione Etichettati automaticamente per visualizzare i documenti etichettati automaticamente.
- Seleziona il primo documento per accedere alla console di etichettatura.
- Verifica le etichette, i riquadri di delimitazione e i valori per assicurarti che siano corretti. Etichetta eventuali valori omessi.
- Al termine, seleziona Contrassegna come etichettato.
- Ripeti la verifica delle etichette per ogni documento con etichetta automatica, quindi torna alla pagina Addestra per utilizzare i dati per l'addestramento.
11. Ottimizza l'addestramento del modello
Ora siamo pronti per iniziare a formare il nostro analizzatore sintattico delle fatture.
- Fai clic su Addestra nuova versione.
- 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 usi un nuovo processore, l'unica opzione dovrebbe essere Google Pretraining Next con Uptraining
- (Facoltativo) Puoi anche selezionare Visualizza statistiche etichette per visualizzare le metriche relative alle etichette nel tuo set di dati.
- Fai clic su Start training (Avvia addestramento) per avviare il processo di uptraining. Il sistema dovrebbe reindirizzarti alla pagina Gestione set di dati. Puoi visualizzare lo stato di addestramento sul lato destro. L'addestramento richiederà alcune ore. Puoi uscire da questa pagina e tornare più tardi.
- Se fai clic sul nome della versione, verrà visualizzata la pagina Gestisci versioni, che mostra l'ID versione e lo stato attuale del job di addestramento.
12. Testa la nuova versione del modello
Una volta completato il job di addestramento (è stata necessaria circa un'ora nei test), puoi testare la nuova versione del modello e iniziare a utilizzarla per le previsioni.
- Vai alla pagina Gestisci versioni. Qui puoi visualizzare lo stato attuale e il punteggio F1.
- Dovremo eseguire il deployment di questa versione del modello prima di poter essere utilizzata. Fai clic sui punti verticali sul lato destro e seleziona Esegui il deployment della versione.
- Seleziona Esegui il deployment nella finestra popup quando attendi il deployment della versione. Il completamento dell'operazione richiede alcuni minuti. Dopo il deployment, puoi anche impostare questa versione come versione predefinita.
- Una volta terminato il deployment, vai alla scheda Valuta. Quindi fai clic sul menu a discesa Versione e seleziona la versione appena creata.
- 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.
- Scarica il file PDF tramite il link di seguito. Questo è un documento di esempio non incluso nel set di addestramento o test.
- Fai clic su Carica documento di prova e seleziona il file PDF.
- Le entità estratte dovrebbero avere un aspetto simile a questo.
13. Conclusione
Congratulazioni, hai utilizzato correttamente Document AI per addestrare un analizzatore sintattico delle fatture. Ora puoi utilizzare questo elaboratore per analizzare le fatture come faresti per qualsiasi elaboratore specializzato.
Per informazioni su come gestire la risposta di elaborazione, puoi fare riferimento al codelab dedicato ai processori specializzati.
Pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial:
- Nella console Cloud, vai alla pagina Gestisci risorse.
- Nell'elenco dei progetti, seleziona il progetto e fai clic su Elimina.
- Nella finestra di dialogo, digita l'ID progetto e fai clic su Chiudi per eliminare il progetto.
Risorse
- Documentazione di Document AI Workbench
- Il futuro dei documenti - Playlist di YouTube
- Documentazione di Document AI
- Libreria client Python di Document AI
- Esempi di Document AI
Licenza
Questo lavoro è concesso in licenza ai sensi di una licenza Creative Commons Attribution 2.0 Generic.