Hanno lanciato Unlimited OCR, un modello sviluppato da Baidu in grado di migliorare considerevolmente il funzionamento dell'OCR su documenti di lunghezza elevata. Il modello, con un totale di 3 miliardi di parametri, ne utilizza solo 500 milioni durante l'inferenza, rendendo molto alta l'efficienza computazionale.
Come funziona Unlimited OCR
Unlimited OCR parte da DeepSeek OCR utilizzando DeepEncoder e il decoder Mixture-of-Experts (MoE). Il DeepEncoder comprime la risoluzione di un'immagine, ad esempio una pagina PDF da 1024×1024 ridotta a soli 256 token visuali. Questo sistema riduce i token d'input e rende quindi più veloce l'OCR.
Supporta due risoluzioni standard: Base per elaborazione multi-pagina e Gundam, con risoluzione dinamica per singole pagine.
Reference Sliding Window Attention e la gestione della memoria
Utilizza una tecnica chiamata Reference Sliding Window Attention (R-SWA), che mantiene la cache costante (KV cache) durante l'elaborazione. L’attenzione tradizionale cresce in memoria man mano che i token generati aumentano. R-SWA invece si basa solo sui primi riferimenti (token visivi o prompt) e su un numero limitato (128 per default) di output precedenti.
- Con R-SWA, la dimensione del cache è CR-SWA(T) = Lm + min(n, T) ≤ Lm + n.
- La gestione costante della memoria permette di mantenere un basso tempo d’elaborazione e una latenza costante.
- L’output diventa stabile anche quando T supera di gran lunga n.
Un esempio reale è l'OCR di un libro con decine di pagine in un solo processo.
Training e dati utilizzati
Unlimited OCR non ha richiesto un training dallo zero: Baidu ha effettuato un’addestramento continuativo dal punto di checkpoint DeepSeek OCR, addestrando soltanto il decoder. Il dataset ha utilizzato circa 2 milioni di documenti su 8×16 GPU A800.
Il rapporto di training include un confronto con OmniDocBench v1.5 e v1.6.
Risultati dei benchmark
I risultati ottenuti con Unlimited OCR sono significativamente superiori rispetto ai modelli precedenti:
Risultati su OmniDocBench v1.5
- DeepSeek-OCR: 87.01
- DeepSeek-OCR 2: 89.17
- Unlimited-OCR: 93.23
In particolare:
- Miglioramento del 6.22 punti rispetto a DeepSeek OCR.
- Un’edit distance (distanza di modifica) inferiore a 0.11 per 40 pagine.
- Oltre 12.7% di performance aumentata in base allo speed-up nei token per secondo (TPS).
Risultati su OmniDocBench v1.6
Con una performance globale del 93.92, Unlimited OCR rimane primo confrontandosi con i modelli collegati. I dati specifici indicano miglioramenti stabili su testo, formule matematiche e tabelle.
Applicazioni
- Transcrizione di libri completi: Processare 40 pagine con un’unico passo di inferenza.
- Pipeline OCR: Estrazione di testo, tabelle, formule e ordine di lettura in un unico passo.
- Batch di documenti: Utilizzo per alte quantità di file in un ambiente di lavoro.
- Rappresentazioni generali: Il modello R-SWA potrebbe estendere il suo impiego ad ASR (speech recognition) e traduzione automatica.
Utilizzo del codice
Per utilizzarlo, si richiede un ambiente con GPU CUDA e l’utilizzo della librerie Transformers, SGLang e PyTorch. Esempio di codice:
- Per immagini singole: utilizzo “Gundam mode”.
- Per file PDF multi-pagina: utilizzo in modo “Base” con risoluzione a 1024.
- Per l’elaborazione su larga scala: utilizzo del modello in SGLang per servire API OpenAI.
Forze e debolezze
Forze
- Memoria e latenza costanti per output lunghi.
- Altissimi risultati sul benchmark OmniDocBench.
- Parametri attivi ridotti a 500M, quindi inferenza leggera e rapida.
- Licenza MIT, apertura del modello, e compatibilità con Transformers/SGLang.
- Nessun calo della precisione con pagine singole.
Debolezze
- Lo spazio di contesto non è veramente illimitato: il limite di 32K token continua a vincolare la dimensione di input.
- Per grandi file, l’elaborazione cresce nel tempo a causa della compressione pesante.
- Il supporto ai file multi-pagina funziona solo in Base Mode, potendo perdere piccolissimi dettagli di testo.
- L’applicazione a ASR e traduzioni è ancora un obiettivo futuro.
Per ulteriori informazioni, puoi consultare il Paper, il Repo, e le Pesantezze Modello.
Segui il canale su Twitter e iscriviti alla Reddit e alla Newsletter. Se vuoi unirti al canale Telegram, puoi seguire il link per Telegram.
Desideri promuovere il tuo progetto? Unisci le forze con Baidu per pubblicizzare il tuo GitHub Repo, Hugging Face, o una Talk Web.
Per il prossimo passo, puoi visitare BigSet per creare dataset automatizzati, oppure esplorare il progetto su GitHub.