Arrêtez de construire des pipelines RAG comme ça... Utilisez plutôt MarkItDown

BBetter Stack
컴퓨터/소프트웨어AI/미래기술

Transcript

00:00:00Nous passons bien plus de temps à traiter des documents qu'à réellement construire nos applications d'IA.
00:00:05Nous connectons plusieurs bibliothèques, nous finissons par intégrer un PDF dans le pipeline, et le LLM donne toujours de mauvaises réponses.
00:00:11Non pas parce que le modèle est mauvais, mais parce que le Markdown l'est.
00:00:14Voici Markdown.
00:00:16Un outil de Microsoft qui a explosé avec plus de 110 000 étoiles sur GitHub,
00:00:21et qui corrige tout le pipeline en une seule ligne de code, en gros.
00:00:24Je vais vous montrer comment tout cela fonctionne en quelques minutes.
00:00:30[Musique]
00:00:33Ok, en gros, chaque projet d'IA commence de la même façon.
00:00:36Vous avez des fichiers partout : documents Word, présentations, feuilles de calcul, captures d'écran PDF, peut-être même des fichiers audio.
00:00:43Et puis vient la partie sympa, que nous, les développeurs, adorons.
00:00:46On peut commencer à empiler les outils.
00:00:49On va donc avoir un outil pour les PDF, un pour Excel, un pour Word, n'est-ce pas ?
00:00:54Toutes ces bibliothèques que nous lions ensemble pour nous aider à construire ce pipeline.
00:00:59Au début, ça semble aller, ça fonctionne, certes.
00:01:02Puis les choses commencent à casser.
00:01:04Les tableaux perdent leur structure, les titres disparaissent, et évidemment, l'utilisation des jetons explose.
00:01:10Et maintenant, le pipeline RAG ne récupère en gros que des déchets et l'agent nous donne de mauvaises réponses.
00:01:16Et on passe son temps à déboguer l'ingestion au lieu de réellement déployer.
00:01:19Et en réalité, que fait-on ?
00:01:21On perd juste du temps.
00:01:22Pas des minutes, mais des heures chaque semaine.
00:01:25Donc, au lieu de corriger votre modèle, vous devez en fait corriger votre entrée.
00:01:29Laissez-moi vous montrer à quoi cela ressemble vraiment.
00:01:31Si vous appréciez les outils qui accélèrent votre flux de travail, assurez-vous de vous abonner.
00:01:35Nous publions des vidéos tout le temps.
00:01:37Très bien, laissez-moi vous présenter ça rapidement.
00:01:39C'est tout en Python, donc c'est assez simple.
00:01:42D'abord, je l'installe avec pip dans mon environnement virtuel.
00:01:45J'ai un PDF ici, juste doc.pdf.
00:01:48Et je peux exécuter ça dans mon terminal.
00:01:50Je vais lancer markitdown sur doc.pdf, avec une sortie en .md.
00:01:55C'est tout.
00:01:56Cela me crée automatiquement un fichier.
00:01:58On peut ouvrir ce fichier et à l'intérieur, c'est plus ou moins ce à quoi on s'attendait.
00:02:03Les titres sont propres, les tableaux ressemblent vraiment à des tableaux, la structure est conservée.
00:02:08Et maintenant, quand on écrit du code Python pour ça, on peut faire encore plus.
00:02:13Avec mes imports et en utilisant OpenAI, je peux créer un client puis un objet Markdown.
00:02:20Je vais insérer ma clé API et le modèle que nous voulons exécuter.
00:02:25Quand je lance le code, le résultat est généré dans mon terminal, donc c'est super propre.
00:02:29Et mieux encore, ce qui est vraiment cool, c'est que je peux obtenir une image PNG.
00:02:33Pour ça, j'ai récupéré un graphique de NVIDIA.
00:02:35Voici mon image avec des données dessus.
00:02:39Maintenant, je peux convertir le graphique en Markdown.
00:02:42Je peux laisser markitdown faire son travail, simplement en utilisant la fonction de conversion à nouveau.
00:02:47Cette fois, nous lui donnons notre image, notre PNG.
00:02:50Et voilà, nous obtenons maintenant le résumé de ce qu'est ce graphique, ce que nous pouvons extraire et utiliser pour le RAG.
00:02:56C'est énorme, car cela nous permet d'extraire ce dont nous avons besoin plus rapidement directement ici dans notre code,
00:03:01pour que nous puissions continuer à travailler sans passer d'un onglet à l'autre.
00:03:05Alors, qu'est-ce que MarkItDown au juste ?
00:03:07C'est un outil Python open source de Microsoft Research.
00:03:11Il est sous licence MIT, conçu spécifiquement pour les flux de travail LLM.
00:03:16Son rôle est de prendre des fichiers désordonnés et de les transformer en un Markdown propre.
00:03:19Pour que les modèles puissent réellement les comprendre.
00:03:22Il supporte bien plus de formats qu'on ne pourrait l'imaginer.
00:03:25Word, PowerPoint, Excel, PDF, audio, images, et aussi des éléments comme les liens, vraiment tout, vous voyez le genre.
00:03:32Il dispose même d'un serveur MCP maintenant, vous pouvez donc le brancher directement dans des outils comme Claude Desktop ou même votre propre agent.
00:03:40En plus des plugins.
00:03:41Donc, au lieu de construire des pipelines d'ingestion, on se contente désormais d'appeler un seul outil.
00:03:47Les développeurs ne luttaient pas avec les modèles, ils luttaient avec les entrées.
00:03:51Et l'attente était : "Ok, utilisez juste de meilleurs modèles."
00:03:55Mais la réalité, c'est que de meilleures entrées équivalent à de meilleures sorties.
00:04:00Donc maintenant, au lieu d'écrire des scripts qui cassent, les gens utilisent un seul outil pour tout : MarkItDown.
00:04:06Pipelines RAG, agents, jeux de données de fine-tuning, bases de connaissances, analyse de documents, tout ce qu'on fait déjà.
00:04:13Et le détail clé que la plupart des gens manquent, c'est qu'il produit un Markdown structuré et économe en jetons.
00:04:20Il y a donc moins de bruit qui entre là-dedans, mais nous obtenons de meilleures réponses, une meilleure sortie.
00:04:24Mais cela ne veut pas dire qu'il est parfait.
00:04:26Comparons cela à ce que vous utilisez probablement déjà ou ce que vous avez vu ailleurs.
00:04:31Nous avons un outil appelé Pandoc, on s'attendrait donc à ce que Pandoc gagne ici, n'est-ce pas ?
00:04:36Mais il résout un problème différent de MarkItDown.
00:04:40Pandoc est destiné aux humains, donc pour la publication, le formatage, le LaTeX.
00:04:44MarkItDown est destiné aux machines, aux LLM, aux pipelines, à l'automatisation.
00:04:48C'est un peu la même idée, mais l'objectif est différent.
00:04:51Et puis nous avons des choses comme Unstructured ou Docling.
00:04:55Ils sont très bien, mais aussi très lourds.
00:04:58Ils utilisent des modèles ML, demandent plus de configuration, et sont meilleurs pour des documents vraiment complexes.
00:05:03MarkItDown adopte l'approche opposée à tout ça.
00:05:05Il y a moins de configuration, c'est super facile, les résultats sont plus rapides, et c'est suffisant pour la plupart des fichiers.
00:05:11Voici donc le vrai compromis.
00:05:12Voulez-vous une extraction parfaite, ou voulez-vous quelque chose qui fonctionne très rapidement et de manière fiable ?
00:05:18Pour la plupart d'entre nous, la vitesse l'emporte.
00:05:20Bien sûr, les inconvénients : les PDF complexes vont toujours le faire échouer, n'est-ce pas ?
00:05:24Surtout les tableaux denses ou les mises en page étranges.
00:05:27Si vous gérez des documents standards désordonnés tous les jours, des outils comme Docling ou Unstructured s'en sortiront bien mieux.
00:05:32Mais si vous voulez des descriptions d'images, vous devrez brancher un LLM.
00:05:36Donc ce n'est pas parfait, mais c'est un outil assez cool qui résout un vrai problème.
00:05:41Alors, est-ce que ça vaut le coup ?
00:05:43Oui, pour la plupart des gens, absolument.
00:05:45Si vous construisez des applications d'IA en ce moment, c'est probablement à ça que votre couche d'ingestion devrait ressembler.
00:05:50Vous devriez essayer d'utiliser MarkItDown.
00:05:52Essayez-le juste si vous voulez une entrée propre pour le RAG ou les agents.
00:05:56Vous gérez des types de fichiers mixtes.
00:05:58C'est vraiment bon pour ça.
00:05:59Et vous ne voulez pas maintenir une multitude de scripts fragiles qui pourraient casser, n'est-ce pas ?
00:06:03Évitez-le ou combinez-le si vous travaillez avec des PDF extrêmement complexes au quotidien.
00:06:08Il existe d'autres outils.
00:06:09Si vous appréciez les outils open source et les conseils de codage comme celui-ci, assurez-vous de vous abonner à la chaîne Better Stack.
00:06:15On se voit dans une prochaine vidéo.

Key Takeaway

L'adoption de MarkItDown simplifie l'ingestion de données pour les applications IA en automatisant la conversion de fichiers disparates en un format Markdown structuré et économe en jetons, améliorant ainsi directement la fiabilité des résultats des LLM.

Highlights

MarkItDown est un outil open source de Microsoft Research sous licence MIT qui convertit divers formats de fichiers en Markdown propre.

La conversion directe de documents en Markdown réduit le bruit lors de l'ingestion, ce qui diminue la consommation de jetons et améliore la qualité des réponses des LLM.

L'outil prend en charge une large variété de formats, notamment Word, PowerPoint, Excel, PDF, ainsi que les fichiers audio et les images.

L'utilisation de MarkItDown remplace la maintenance complexe de multiples bibliothèques d'ingestion fragiles par une solution unique et simplifiée.

L'intégration d'un LLM permet à MarkItDown de générer des descriptions textuelles à partir de graphiques ou d'images PNG pour faciliter leur traitement dans les pipelines RAG.

Timeline

Les limites des pipelines d'ingestion classiques

  • La gestion de multiples bibliothèques pour différents formats de fichiers crée des structures instables et des erreurs d'ingestion fréquentes.
  • Une ingestion de mauvaise qualité entraîne une dégradation des réponses des agents IA et une augmentation inutile de la consommation de jetons.
  • Le débogage de l'ingestion consomme des heures de travail hebdomadaire au détriment du déploiement réel des applications.

La construction de pipelines d'IA commence souvent par l'empilement d'outils disparates pour traiter les PDF, Excel et Word. Cette approche fragilise la structure des documents, entraîne la perte des titres et des tableaux, et génère des données inexploitables par les modèles. Corriger l'entrée des données est plus efficace que tenter d'ajuster le comportement du modèle lui-même.

Fonctionnement et capacités de MarkItDown

  • MarkItDown s'installe via pip et s'exécute avec une ligne de commande simple ou directement via un objet Python.
  • L'outil préserve la structure des titres et des tableaux lors de la conversion en Markdown.
  • Il permet l'extraction de données à partir d'images, comme des graphiques NVIDIA, en générant des résumés textuels exploitables pour le RAG.

L'outil simplifie le flux de travail en consolidant la conversion des fichiers dans une seule interface. En utilisant la bibliothèque OpenAI, il est possible d'automatiser le traitement de documents complexes et même d'images. Cette centralisation permet aux développeurs de rester dans leur environnement de code sans changer d'outils.

Positionnement technique et comparatif

  • MarkItDown se distingue de Pandoc, qui cible la publication humaine, en étant spécifiquement conçu pour l'automatisation des LLM et des machines.
  • Contrairement à des outils plus lourds comme Unstructured ou Docling, MarkItDown privilégie la rapidité et une configuration minimale.
  • L'outil est adapté à la majorité des fichiers courants, bien que les PDF extrêmement complexes avec des tableaux denses restent un défi technique.

MarkItDown offre un compromis optimal entre vitesse d'exécution et fiabilité pour les développeurs. Il propose également un serveur MCP pour une intégration directe dans des outils comme Claude Desktop. Bien qu'il ne remplace pas des solutions spécialisées pour des documents extrêmement denses, il constitue le standard recommandé pour la construction de bases de connaissances et de pipelines d'agents.

Community Posts

View all posts