← Démos / 06

Lisez une facture en une seconde

Choisissez un exemple ou ouvrez l'une de vos factures PDF. Un petit modèle dans votre navigateur trouve le vendeur, l'acheteur, les numéros de TVA, les dates, les montants et l'IBAN, et marque chacun sur la page. Le fichier ne quitte jamais cette page.

La démo nécessite JavaScript. Le modèle représente un téléchargement unique de 34 MB, que votre navigateur conserve.

Il lit les PDF numériques, ceux qu'exportent les logiciels de comptabilité, en anglais, polonais, allemand, français, espagnol et lituanien. Les scans et les photos ne sont pas pris en charge. Un LLM local a écrit les exemples ; chaque entreprise et chaque chiffre y sont inventés.

98 % contre 92 %Des champs de 60 factures vérifiées à la main lus correctement. Un LLM ouvert 200 fois plus grand en a lu 92 %.
80 % complètesDe ces factures avaient tous leurs champs justes ; le LLM a atteint 53 %. Les chiffres de contrôle et les sommes sont affichés à côté des champs.
Moins d'une secondePar facture, dans votre navigateur. Le LLM a eu besoin de 1,2 seconde par facture sur un GPU.

Comment ça marche

DonnéesAucune facture réelle. Un générateur a produit 9 000 factures dans six mises en page et six langues. Un LLM ouvert local en a écrit 566 de plus pour 30 types d'activité, chacune dans sa propre mise en page, et chacune a été remplie cinq fois de plus avec des noms et des chiffres inventés. Chaque facture a été imprimée en PDF dans Chrome et relue comme cette page la lit.
ModèleLes 12 premières des 22 couches de mmBERT-small, affinées pour marquer les mots de onze champs : 33 MB de poids plus un vocabulaire de 1 MB. La page est lue bloc par bloc, donc un vendeur et un acheteur imprimés côte à côte ne sont pas confondus. Les 60 factures de test viennent du même LLM, pour dix autres types d'activité, donc 98 % est une borne supérieure.
RèglesLes numéros de TVA et les IBAN portent des chiffres de contrôle. Un choix qui échoue au contrôle est remplacé par le numéro de la page qui le réussit, et le HT plus la TVA doit égaler le total. Seules, les règles lisent 58 % des champs et aucune facture en entier : elles ne savent pas reconnaître un nom d'entreprise ni un numéro de facture.
Comparaison avec un LLMQwen 2.5 7B, à qui l'on a demandé les mêmes champs en JSON, a lu 92 % des champs et 53 % des factures en entier, à 1,2 seconde par facture sur un GPU. Un LLM hébergé devrait en outre recevoir chaque facture, avec un prix par page.

Code, configurations et benchmark complet : github.com/balticml/invoice-extraction. Poids : huggingface.co/balticml/mmbert-small-invoice-extraction. Vous voulez cela pour vos factures ? Réserver un appel de 30 min