Datalab rilascia lift: un modello visione da 9B che estrae JSON strutturato da PDF usando schemi
l’accuratezza sui campi è del 90,2%, la latenza mediana per documento è di 9,5 secondi e il modello è il più veloce tra quelli self-hostable nella sua categoria.
Datalab ha rilasciato lift, un modello vision-language da 9 miliardi di parametri (9B) progettato per l’estrazione strutturata. Il principio è semplice: gli passi uno schema JSON, lui restituisce un oggetto JSON che corrisponde allo schema. Legge PDF e immagini direttamente, in un unico passaggio, e decodifica il contenuto rispettando la struttura che hai definito. È il primo modello di Datalab costruito esclusivamente per l’estrazione. Il team sviluppa già strumenti open-source come chandra, marker e surya; lift estende quel lavoro all’estrazione guidata da schema.
Come funziona lift
lift accetta uno standard JSON Schema come input e produce un JSON valido di quella forma come output. Gestisce documenti multipagina in un unico passaggio, leggendo anche valori che si estendono su più pagine. L’intero documento viene processato in una volta sola, non pagina per pagina.
Sono disponibili due modalità di inferenza. Quella locale funziona via HuggingFace. Quella remota usa un server vLLM, che Datalab consiglia per la produzione. Il codice è rilasciato sotto licenza Apache 2.0, mentre i pesi usano una licenza OpenRAIL-M modificata.
lift entra in un campo piccolo ma in crescita: modelli di estrazione aperti. Alcuni sono costruiti appositamente (come la famiglia NuExtract), altri sono modelli generalisti adattati all’estrazione (come Qwen3.5-9B). Sul benchmark di Datalab, lift guida il gruppo per accuratezza sui campi.
Il meccanismo chiave: decodifica vincolata dallo schema
La scelta progettuale principale è la decodifica vincolata dallo schema. Durante la generazione, il modello assegna una probabilità a ogni possibile token successivo. Una grammatica, compilata dallo schema, definisce quali token sono continuazioni valide. I token che romperebbero lo schema vengono mascherati. Il modello può campionare solo tra quelli rimasti. Il risultato è sempre un JSON valido della forma corretta.
C’è un limite netto: la decodifica vincolata garantisce la struttura, non il significato. Un campo tipizzato come number conterrà un numero, ma potrebbe essere sbagliato. Validità non è correttezza. Inoltre, lift allarga ogni campo per accettare null: ogni foglia dello schema accetta il suo tipo o null. Il modello può astenersi su qualsiasi campo senza rompere la struttura.
Attenzione: alcuni costrutti non possono essere compilati, tra cui enum, anyOf/oneOf, $ref e additionalProperties. Quando lift non riesce a compilare lo schema, registra un avviso e genera senza vincoli. La garanzia strutturale salta, senza errori espliciti. La regola pratica è: tenere gli schemi nel sottoinsieme supportato e validare sempre il JSON restituito contro lo schema originale.
Astensione di default
L’estrazione reale ha una difficoltà nascosta: non inventare campi assenti. Un modello che allucina un codice fiscale è peggio di uno che non restituisce nulla. L’errore è silenzioso e difficile da rilevare a valle. lift è addestrato a lasciare null i campi genuinamente assenti. Segna un campo come required solo quando deve apparire. I campi assenti dal documento tornano null. Ottieni un estrattore che può segnalare cos’è presente e cosa no.
Benchmark
Datalab ha valutato lift su un benchmark di 225 documenti, da 6 a 64 pagine ciascuno, con circa 11.000 campi da estrarre. Sono stati inseriti casi avversari: valori su più pagine, elenchi esaustivi, campi da lasciare nulli e distrattori simili. Ecco i risultati principali:
- Precisione sui campi: lift 90,2% (vs NuExtract3 81,5%, Qwen3.5-9B 76,32%)
- Precisione documento completo: lift 20,9% (tutti i modelli sotto il 45%)
- Latenza mediana: lift 9,5 secondi (vs Gemini Flash 3,5 a 28,1s)
Due dettagli importanti. La precisione documento completo è un parametro molto più duro: ogni campo deve essere corretto. Tutti i modelli ottengono punteggi bassi, il che riflette la difficoltà dell’estrazione in un unico passaggio su documenti lunghi. La precisione sui campi, invece, è il punto di forza di lift: guida i modelli self-hostable ed è circa 3 volte più veloce del modello API più accurato.
«Si tratta del benchmark di Datalab, quindi va considerato come un risultato del venditore. Il suo design avversario premia i modelli addestrati ad astenersi, cosa che lift è.»
I numeri dicono dove si colloca lift. È eccellente per l’estrazione a livello di campi che alimenta una revisione umana o analisi aggregate. Non è ancora pronto per automazione zero-touch in cui ogni campo deve essere perfetto.
Workflow pratico
Tre casi d’uso mostrano la forma del lavoro. Fatture: definisci numero fattura, totale e voci; un codice fiscale assente torna null. Revisione contratti: un valore su due pagine viene cucito insieme dal passaggio unico. Pipeline documentali: una coda contabilità fornitori si fida che le date di scadenza assenti tornino null, evitando errori silenziosi.
Il flusso end-to-end è: definisci lo schema (aggiungi descrizioni ai campi ambigui, segna solo i campi obbligatori come required), esegui l’estrazione (passa schema e file a lift) e validi l’output (controlla il JSON restituito contro lo schema).
Per l’ultimo miglio — estrazione precisa al 100% — Datalab offre la sua API hosted che aggiunge verifica per campo, citazioni e punteggi di confidenza sullo stesso approccio.
