Verrà illustrato l'utilizzo del modello Lift per estrarre informazioni strutturate da documenti PDF di ricerca, concentrandoci sullo sviluppo di un ambiente robusto, controllato, e adatto a esecuzioni su macchine con configurazioni di hardware ridotte. Oltre a installare gli strumenti essenziali, si creerà un ambiente basato su Colab e una pipeline di elaborazione su documenti fittizi, seguita da una valutazione precisa su campi specifici.

Configurazione ambiente e dipendenze

Per iniziare il setup tecnico dell'ambiente, dobbiamo installare i pacchetti principali necessari per la generazione e l'elaborazione dei PDF. Questi includono librerie come Pillow, PyPDFium2, Lift, e il backend HuggingFace di Lift. L'installazione di Pillow richiede attenzione, in quanto versioni successive possono causare incompatibilità con altre librerie, come torchvision o transformers, necessarie all'operatività dell'intera pipeline.

Sotto, un esempio base di configurazione:

    • Impostare la variabile N_DOCS per il numero di documenti generati.
    • Forzare la precisione completa o la modifica 4-bit per adattarsi a GPU come T4 o L4.
    • Disabilitare l'avvio con PDF reali mediante RUNONREAL_PDF.

Configurazione 4-bit del modello Lift

Per garantire l'esecuzione stabile anche su GPU con risorse limitate, si utilizza una tecnica di quantizzazione 4-bit con il formato NF4. Questo processo modifica in modo dinamico il caricamento del modello, permettendo che un modello di grandi dimensioni occupi meno memoria GPU. È essenziale per dispositivi che non supportano modelli full-precision, mantenendo l'accuratezza senza compromettere la funzionalità.

Impostazione del backend Lift

Prima di estrarre dati, dobbiamo verificare la disponibilità del CUDA e determinare il tipo di GPU disponibile. Si sceglie tra le configurazioni full o 4-bit in base alla memoria disponibile sulla GPU. Successivamente si esegue l'inizializzazione del modello Lift, avviando il processo di caricamento delle pesature.

Calcolo automatico del tipo di caricamento

Il modello si adatta automaticamente al tipo di GPU installato:

    • Sono necessari circa 34 GB di memoria VRAM per l'esecuzione full-precision.
    • Se questa non è disponibile, si attiva la versione 4-bit.
    • La scelta del tipo di precisione è determinata mediante compute_dtype, basata sulle capacità di calcolo della GPU.

Creazione del Corpus Sintetico

Una volta completata la configurazione, si genera un corpus fittizio per simulare diverse situazioni di test. Gli input includevano titoli, dataset, metriche, parametri dei modelli, e informazioni strutturate simili ai formati tipici di un documento accademico.

Esempio di documento sintetico

Di seguito è riportato un estratto delle informazioni da un documento fittizio, in formato JSON:

{

"title": "SolarNet: Efficient Land-Cover Classification from Multispectral Satellite Imagery",

"authors": [

["Maya Okafor", "TU Delft"],

["Liang Wei", "TU Delft"],

["Priya Ramachandran", "European Space Research Institute"]

],

"task": "satellite image land-cover classification",

"method": "SolarNet",

"datasets": ["EuroSAT", "BigEarthNet", "So2Sat"],

"primary_benchmark": "EuroSAT",

"metric_name": "Top-1 accuracy",

"test_acc": 96.4,

"val_acc": 97.1,

"baseline_name": "ResNet-50",

"baseline_val": 92.0,

"baseline_test": 91.2,

"params_m": 42.7,

"optimizer": "AdamW",

"lr": 0.0003,

"batch": 128,

"epochs": 90,

"beats_sota": true,

"prior_best": 95.1,

"code_url": null,

"funding_note": "This work was supported by the Open Earth Initiative. The authors do not release source code for the trained models.",

"limitations": [

"Accuracy degrades on scenes with heavy cloud cover.",

"Trained only on imagery at 10 m spatial resolution."

]

}

Valutazione e Schema di estrazione

Con il modello Lift in esecuzione, si genera un piano di valutazione per ogni campo estratto, come le metriche, i parametri, gli elenchi di dataset, e i riferimenti agli autori. Il modello è tenuto ad eseguire estrazioni esatte da contesti fittizi, incluso l'identificazione di dati ambigui e di informazioni di tipo booleano.

Esempi di test generati

    • Confronto tra modello base e proposto
    • Convalida vs. metriche di test
    • Assenza di un rilascio del codice sorgente
    • Previsione dell'accuratezza del modello proposto

Ottimizzazione grafica e rendering delle pagine

Per rendere realistico il test, si genera un documento PDF artificiale multipagina, replicando la struttura visiva di un articolo accademico. Vengono incluse informazioni disposte deliberatamente in modi non lineari per creare ulteriore complessità nella fase di estrazione. La pagina principale viene visualizzata per offrire una panoramica strutturata del documento fittizio.

Elaborazione e output

Dopo l'elaborazione dei dati fittizi, si genera un file JSON in cui l'output estratto include tutti i campi chiave del documento. Questo output permette di testare la capacità del modello Lift di interpretare correttamente il formato PDF e di estrarre dati complessi. Inoltre, si garantisce che ogni campo estratto abbia un valore conforme al layout previsto, ad esempio:

    • Titoli e autori, con informazioni sull'istituto accademico.
    • Elenco dei dataset utilizzati per i benchmark.
    • Dettagli specifici sul modello (parametri, ottimizzatore, epoche di addestramento).
    • Limitazioni del modello e note finanziarie.

Risorse e test avanzati

Il codice utilizzato in questa guida è progettato per essere eseguito in ambienti come Colab, che supporta facilmente la condivisione e l'esecuzione su GPU condivise. Per gli utenti avanzati, l'ambiente si presta a ulteriori miglioramenti, come la modifica degli schemi di estrazione, l'integrazione con DB o l'aggiunta di validazione automatica dei risultati.

Conclusione

Quando si genera e si testa l'output di un modello AI in documenti PDF, il focus sull'accordo