Qu’est-ce que DocLang
La plupart des formats de document ont été conçus pour le rendu visuel. Le PDF décrit où dessiner les pixels et le HTML indique au navigateur comment mettre en page, mais ni l’un ni l’autre n’indique à un modèle de langage ce que contient un document. Les analyseurs qui les convertissent pour un usage en IA finissent par deviner l’ordre de lecture, aplatir les tableaux en chaînes de caractères et laisser de côté les figures et les métadonnées. DocLang est un format XML contraint conçu pour les tokenizers de LLM : chaque élément correspond ainsi à un jeton unique. Chaque élément porte un rôle sémantique, des coordonnées de cadre englobant et une position dans l’ordre de lecture, et les tableaux conservent l’intégralité de leur structure en grille. Il s’agit d’une spécification et non d’un produit : n’importe quel analyseur peut la produire et n’importe quel outil peut l’exploiter. Le groupe de travail a été fondé par IBM, NVIDIA, Red Hat, ABBYY, HumanSignal et Forgis, et la spécification est développée sous l’égide de Joint Development Foundation Projects, en tant que projet LF AI & Data.Pourquoi FineParser le produit
Le texte brut est peu coûteux à fournir à un modèle, car il fait disparaître la structure, tandis que HTML et Markdown la conservent au prix de nombreux jetons. DocLang, lui, préserve la structure pour une fraction de ce coût. Un tableau encodé avec le schéma OTSL de DocLang ne nécessite que cinq jetons structurels, là où l’équivalent HTML en exige vingt-huit. DocLang définit également une représentation canonique unique pour chaque type de contenu : tous les outils qui le prennent en charge produisent donc le même résultat pour un même document. Le code écrit pour la sortie de FineParser fonctionnera avec n’importe quel autre producteur DocLang, et vos documents restent portables si vous changez d’analyseur par la suite.Exemple
Le fragment DocLang suivant décrit un titre et un petit tableau, chacun avec son cadre englobant sur la page.<location> indiquent les coins du cadre englobant. Au sein du tableau, <ched/> introduit une cellule d’en-tête de colonne, <fcel/> une cellule de données et <nl/> marque la fin de la ligne.
Fichiers
FineParser écrit le DocLang dans un seul fichier.doclang contenant le balisage. La spécification DocLang définit également une archive .dclx, un paquet ZIP qui regroupe le balisage avec les images extraites et d’autres assets, mais FineParser ne génère pas ce format.
En savoir plus
Le site doclang.ai propose une vue d’ensemble du projet ainsi qu’une visionneuse interactive. La spécification complète et la boîte à outils de référence sont disponibles dans le dépôt doclang-project sur GitHub, qui fournit également le paquet Pythondoclang permettant de valider et d’empaqueter les fichiers DocLang.