Come automatizzare l’estrazione di entità da un PDF utilizzando LLMs

Automatizzazione dell'estrazione di entità da PDF con LLMs.

Sfruttare l’etichettatura a zero-shot

Foto di Google DeepMind su Unsplash

Non si può sottolineare abbastanza l’importanza di dati etichettati di alta qualità nelle moderne applicazioni di apprendimento automatico. Dall’ottimizzazione delle prestazioni dei nostri modelli alla garanzia di equità, il potere dei dati etichettati è immenso. Purtroppo, il tempo e lo sforzo necessari per creare tali set di dati sono altrettanto significativi. Ma cosa succederebbe se potessimo ridurre il tempo impiegato per questa attività da giorni a poche ore, mantenendo o addirittura migliorando la qualità dell’etichettatura? Un sogno utopico? Non più.

I paradigmi emergenti nell’apprendimento automatico – Apprendimento a Zero-Shot, Apprendimento a Pochi-Shot e Etichettatura Assistita dal Modello – presentano un approccio trasformativo a questo processo cruciale. Queste tecniche sfruttano il potere di algoritmi avanzati, riducendo la necessità di set di dati etichettati estesi e consentendo l’annotazione dei dati più rapida, efficiente ed efficace.

In questo tutorial, presenteremo un metodo per etichettare automaticamente documenti non strutturati e semi-strutturati utilizzando le capacità di apprendimento in contesto di un modello di linguaggio di grandi dimensioni (LLM).

Estrazione di informazioni da SDS

A differenza dei modelli supervisionati tradizionali che richiedono dati etichettati estesi per essere addestrati a risolvere un compito specifico, i LLM possono generalizzare ed estrapolare informazioni da pochi esempi attingendo alla loro vasta base di conoscenza. Questa capacità emergente, nota come apprendimento in contesto, rende i LLM una scelta versatile per molte attività che includono non solo la generazione di testo ma anche l’estrazione di dati come il riconoscimento di entità nominate.

In questo tutorial, etichetteremo Schede di Sicurezza (SDS) di varie aziende utilizzando le capacità di etichettatura a zero-shot e pochi-shot di GPT 3.5, noto anche come ChatGPT. Le SDS offrono informazioni dettagliate su sostanze o miscele specifiche, progettate per aiutare i luoghi di lavoro a gestire efficacemente i prodotti chimici. Questi documenti svolgono un ruolo vitale nel fornire approfondimenti dettagliati sui pericoli, compresi i rischi ambientali, e offrono preziosi consigli sulle precauzioni di sicurezza. Le SDS fungono da fonte indispensabile di conoscenza, consentendo ai dipendenti di prendere decisioni informate sulla gestione e l’utilizzo sicuro dei prodotti chimici sul posto di lavoro. Le SDS di solito sono in formato PDF con varie disposizioni ma solitamente contengono le stesse informazioni. In questo tutorial, ci interessa addestrare un modello di intelligenza artificiale che identifichi automaticamente le seguenti entità:

  • Numero di prodotto
  • Numero CAS
  • Casi d’uso
  • Classificazione
  • Etichetta GHS
  • Formula
  • Peso molecolare
  • Sinonimo
  • Numero di telefono di emergenza
  • Misure di primo soccorso
  • Componente
  • Brand

Estrarre queste informazioni rilevanti e archiviarle in un database consultabile è molto prezioso per molte aziende, poiché consente di cercare e recuperare i componenti pericolosi molto rapidamente. Ecco un esempio di una SDS:

SDS disponibile pubblicamente. Immagine dell'autore

Etichettatura a zero-shot

A differenza della generazione di testo, l’estrazione di informazioni è un compito molto più impegnativo per i LLM. I LLM sono stati addestrati per compiti di completamento del testo e tendono solitamente a creare o generare commenti o testo aggiuntivi quando vengono sollecitati a estrarre informazioni rilevanti.

Per analizzare correttamente il risultato del LLM, è necessario avere un output coerente dal LLM come un JSON. Ciò richiede un po’ di ingegneria del prompt per farlo correttamente. Inoltre, una volta che i risultati vengono analizzati, è necessario mapparli ai token originali nel testo di input.

Fortunatamente, tutti questi passaggi sono stati effettuati e astratti utilizzando lo strumento di annotazione UBIAI . Sotto la superficie, UBIAI esegue la richiesta, suddivide i dati in modo che siano al di sotto del limite di lunghezza del contesto e li invia all’API GPT3.5 Turbo di OpenAI per l’elaborazione. Una volta che l’output viene restituito, i dati vengono analizzati, elaborati e applicati ai tuoi documenti per l’etichettatura automatica.

Per iniziare, carica semplicemente i tuoi documenti, che siano in formato PDF nativo, immagine o un semplice Docx, quindi vai alla pagina di annotazione e seleziona la scheda Few-shot nell’interfaccia di annotazione:

Dashboard Few-shot di UBIAI. Immagine dell'autore

Per ulteriori dettagli, consulta la documentazione qui: https://ubiai.gitbook.io/ubiai-documentation/zero-shot-and-few-shot-labeling

UBIAI ti consente di configurare il numero di esempi da cui desideri che il modello impari per etichettare automaticamente i documenti successivi. L’app sceglierà automaticamente i documenti più informativi dal tuo dataset già etichettato e li concatenerà nel prompt. Questo approccio è chiamato etichettatura Few-shot, dove “Few” varia da 0 a n. Per configurare il numero di esempi, fai clic sul pulsante di configurazione e inserisci il numero di esempi, come mostrato di seguito.

Finestra di configurazione Few-shot di UBIAI. Immagine dell'autore

Per questo tutorial, forniremo zero esempi all’LLM da imparare e chiediamo di etichettare i dati basandosi esclusivamente sulla descrizione dell’entità stessa. Sorprendentemente, l’LLM è in grado di comprendere abbastanza bene il nostro documento e fa la maggior parte delle etichettature correttamente!

Di seguito è riportato il risultato dell’etichettatura zero-shot sul PDF SDS senza alcun esempio, davvero impressionante!

Etichettatura zero-shot con UBIAI. Immagine dell'autore

Conclusioni

L’estrazione automatica delle entità dai PDF utilizzando i Large Language Models (LLM) è diventata realtà con l’avvento delle capacità di apprendimento in contesto dei LLM, come Zero-Shot Learning e Few-Shot Learning. Queste tecniche sfruttano il potere delle conoscenze latenti dei LLM per ridurre la dipendenza da estesi dataset etichettati e consentire un’annotazione dei dati più rapida, efficiente ed efficace.

Il tutorial ha presentato un metodo per l’auto-etichettatura di documenti semi-strutturati, concentrandosi specificamente sui Safety Data Sheets (SDS), ma funzionerebbe anche per il testo non strutturato. Sfruttando le capacità di apprendimento in contesto dei LLM, in particolare di GPT 3.5 (chatGPT), il tutorial ha dimostrato la capacità di identificare automaticamente le entità importanti all’interno dei SDS, come il numero di prodotto, il numero CAS, gli utilizzi, la classificazione, l’etichetta GHS e altro ancora.

Le informazioni estratte, se archiviate in un database ricercabile, forniscono un valore significativo alle aziende poiché consentono una ricerca e un recupero rapidi dei componenti pericolosi. Il tutorial ha evidenziato il potenziale dell’etichettatura zero-shot, in cui l’LLM può comprendere ed estrarre informazioni dai SDS senza alcun esempio esplicito. Questo dimostra la versatilità e le capacità di generalizzazione dei LLM, andando oltre le semplici attività di generazione di testo.

Se sei interessato a creare il tuo dataset di addestramento utilizzando le capacità zero-shot dei LLM, pianifica una demo con noi qui.

Seguici su Twitter @UBIAI5!