Hör auf, RAG-Pipelines so zu bauen... Nutze stattdessen MarkItDown

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

Transcript

00:00:00Wir verbringen viel mehr Zeit mit der Dokumentenverarbeitung, als tatsächlich unsere KI-Apps zu bauen.
00:00:05Wir verbinden mehrere Bibliotheken, bekommen schließlich ein PDF in die Pipeline, und das LLM liefert immer noch schlechte Antworten.
00:00:11Nicht, weil das Modell schlecht ist, sondern weil das Markdown es ist.
00:00:14Das ist Markdown.
00:00:16Ein Tool von Microsoft, das mit über 110.000 Sternen auf GitHub durchgestartet ist,
00:00:21und es repariert die gesamte Pipeline mit praktisch einer einzigen Zeile Code.
00:00:24Ich zeige Ihnen in nur wenigen Minuten, wie das alles funktioniert.
00:00:30[Musik]
00:00:33Okay, nun, im Grunde startet jedes KI-Projekt gleich.
00:00:36Überall liegen Dateien herum: Word-Dokumente, Präsentationen, Tabellenkalkulationen, PDF-Screenshots, vielleicht sogar Audio-Dateien.
00:00:43Und dann kommt der coole Teil, den wir Entwickler lieben.
00:00:46Wir können anfangen, Tools tatsächlich zu stapeln.
00:00:49Wir haben also ein Tool für PDFs, eines für Excel, eines für Word, richtig?
00:00:54All diese Bibliotheken, die wir miteinander verknüpfen, um diese Pipeline aufzubauen.
00:00:59Anfangs fühlt es sich gut an, es funktioniert, sicher.
00:01:02Dann fangen die Dinge an zu brechen.
00:01:04Tabellen verlieren ihre Struktur, Überschriften verschwinden, und der Token-Verbrauch explodiert natürlich.
00:01:10Und jetzt zieht die RAG-Pipeline im Grunde nur noch Müll und der Agent gibt uns schlechte Antworten.
00:01:16Und wir debuggen die Datenaufnahme, anstatt tatsächlich auszuliefern.
00:01:19Und was bringt das eigentlich?
00:01:21Es ist reine Zeitverschwendung.
00:01:22Nicht nur Minuten, sondern Stunden jede Woche.
00:01:25Anstatt also dein Modell zu reparieren, musst du eigentlich deinen Input reparieren.
00:01:29Lass mich dir zeigen, wie das tatsächlich aussieht.
00:01:31Wenn dir Tools gefallen, die deinen Workflow beschleunigen, abonniere unbedingt den Kanal.
00:01:35Wir veröffentlichen ständig neue Videos.
00:01:37Alles klar, lass mich das kurz durchgehen.
00:01:39Es ist alles Python, also ziemlich einfach.
00:01:42Zuerst installiere ich alles per pip in meiner virtuellen Umgebung.
00:01:45Ich habe hier ein PDF, einfach nur ein doc.pdf.
00:01:48Und ich kann das in meinem Terminal ausführen.
00:01:50Ich werde "markitdown doc.pdf output.md" ausführen.
00:01:55Das ist alles.
00:01:56Es erstellt automatisch eine Datei für mich.
00:01:58Wir können diese Datei öffnen, und darin ist in etwa das, was wir uns erhofft haben.
00:02:03Überschriften sind sauber, Tabellen sehen tatsächlich aus wie Tabellen, die Struktur ist erhalten.
00:02:08Und jetzt, wenn wir etwas Python-Code dafür schreiben, können wir sogar noch mehr damit machen.
00:02:13Also, mit meinen Imports und der Nutzung von OpenAI kann ich einen Client und dann ein Markdown-Objekt erstellen.
00:02:20Ich übergebe meinen API-Schlüssel und das Modell, das wir verwenden wollen.
00:02:25Wenn ich den Code ausführe, wird der Output in meinem Terminal generiert, also ist es super sauber.
00:02:29Und noch besser: Was wirklich cool ist, ich kann ein PNG-Bild nehmen.
00:02:33Dafür habe ich ein Diagramm von NVIDIA genommen.
00:02:35Hier ist mein Bild mit einigen Daten darauf.
00:02:39Jetzt kann ich das Diagramm in Markdown konvertieren.
00:02:42Ich kann also MarkItDown seine Arbeit machen lassen, einfach indem ich die "convert"-Funktion erneut verwende.
00:02:47Diesmal geben wir unser Bild, unser PNG, hinein.
00:02:50Und jetzt erhalten wir die Zusammenfassung dessen, was dieses Diagramm darstellt und was wir extrahieren und für RAG nutzen können.
00:02:56Das ist riesig, da es uns ermöglicht, das, was wir brauchen, schneller direkt hier in unserem Code zu extrahieren,
00:03:01sodass wir weiterarbeiten können, ohne zwischen einer Menge verschiedener Tabs hin- und herzuspringen.
00:03:05Also, was ist MarkItDown eigentlich?
00:03:07Es ist ein Open-Source-Python-Tool von Microsoft Research.
00:03:11Es ist MIT-lizenziert und speziell für LLM-Workflows gebaut.
00:03:16Seine Aufgabe ist es, unsaubere Dateien zu nehmen und sie in sauberes Markdown zu verwandeln.
00:03:19Damit Modelle sie tatsächlich verstehen können.
00:03:22Es unterstützt viel mehr, als man erwarten würde.
00:03:25Word, PowerPoint, Excel, PDF, Audio, Bilder und auch Dinge wie Links, wirklich alles, was du nennen kannst.
00:03:32Es hat jetzt sogar einen MCP-Server, sodass du es direkt in Tools wie Claude Desktop oder sogar deine eigenen Agenten einbinden kannst.
00:03:40Plus die Plugins.
00:03:41Anstatt also Ingestions-Pipelines zu bauen, rufen wir jetzt im Grunde nur noch ein Tool auf.
00:03:47Die Entwickler hatten nicht mit den Modellen zu kämpfen, sie hatten mit den Inputs zu kämpfen.
00:03:51Und die Erwartung war: Okay, verwende einfach bessere Modelle.
00:03:55Aber die ganze Realität hierbei ist: bessere Inputs sind gleich bessere Outputs.
00:04:00Anstatt also Skripte zu schreiben, die ständig kaputtgehen, verwenden die Leute jetzt ein Tool für alles: MarkItDown.
00:04:06RAG-Pipelines, Agenten, Datensätze zum Finetuning, Wissensdatenbanken, Dokumentenanalyse, all das, was wir ohnehin schon tun.
00:04:13Und das entscheidende Detail, das die meisten übersehen, ist: Es erzeugt strukturiertes, Token-effizientes Markdown.
00:04:20Es gibt also weniger Rauschen, das hineingeht, aber wir erhalten bessere Antworten, diesen besseren Output.
00:04:24Aber das bedeutet nicht, dass es perfekt ist.
00:04:26Lass uns das jetzt mit dem vergleichen, was du wahrscheinlich schon verwendest oder bereits gesehen hast.
00:04:31Nun, wir haben ein Tool namens Pandoc, also würde man erwarten, dass Pandoc hier gewinnt, oder?
00:04:36Aber es löst ein anderes Problem als MarkItDown.
00:04:40Pandoc ist für Menschen gedacht, also für Veröffentlichungen, Formatierung, LaTeX.
00:04:44MarkItDown ist für Maschinen, LLMs, Pipelines, Automatisierung.
00:04:48Es ist in etwa die gleiche Idee, aber das Ziel ist ein anderes.
00:04:51Und dann haben wir Dinge wie "unstructured" oder "docling".
00:04:55Die sind großartig, aber sie sind auch wirklich schwergewichtig.
00:04:58Sie verwenden ML-Modelle, erfordern mehr Einrichtung und sind besser für sehr komplexe Dokumente geeignet.
00:05:03MarkItDown verfolgt den entgegengesetzten Ansatz zu all dem.
00:05:05Es gibt weniger Einrichtung, es ist super einfach, liefert schnellere Ergebnisse und es ist gut genug für die meisten Dateien.
00:05:11Hier ist also der eigentliche Kompromiss.
00:05:12Willst du eine perfekte Extraktion, oder willst du etwas, das wirklich schnell und zuverlässig funktioniert?
00:05:18Für die meisten von uns gewinnt die Geschwindigkeit.
00:05:20Natürlich gibt es auch Nachteile: Komplexe PDFs werden es immer noch zum Scheitern bringen, richtig?
00:05:24Besonders dichte Tabellen oder seltsame Layouts.
00:05:27Wenn du täglich mit chaotischen Standarddokumenten zu tun hast, werden Tools wie "docling" oder "unstructured" deutlich besser abschneiden.
00:05:32Aber wenn du Bildbeschreibungen willst, musst du ein LLM einbinden.
00:05:36Es ist also nicht perfekt, aber es ist ein ziemlich cooles Tool, das ein echtes Problem löst.
00:05:41Lohnt es sich also, es zu benutzen?
00:05:43Ja, für die meisten Menschen absolut.
00:05:45Wenn du gerade KI-Apps baust, ist das wahrscheinlich das, wie dein Ingestions-Layer tatsächlich aussehen sollte.
00:05:50Du solltest versuchen, MarkItDown zu verwenden.
00:05:52Probiere es einfach aus, wenn du sauberen Input für RAG oder Agenten willst.
00:05:56Du hast es mit gemischten Dateitypen zu tun.
00:05:58Dafür ist es wirklich gut.
00:05:59Und du willst nicht eine Menge fragiler Skripte pflegen, die kaputtgehen könnten, oder?
00:06:03Lass es weg oder kombiniere es, wenn du jeden Tag mit extrem komplexen PDFs arbeitest.
00:06:08Es gibt da draußen noch andere Tools.
00:06:09Wenn dir Open-Source-Tools und Programmiertipps wie diese gefallen, abonniere unbedingt den Better Stack Kanal.
00:06:15Wir sehen uns im nächsten Video.

Key Takeaway

Anstatt fehleranfällige und komplexe Ingestions-Pipelines für KI-Apps zu bauen, verbessert MarkItDown die Datenqualität und Effizienz durch die zentrale Umwandlung fast beliebiger Dateitypen in sauberes, strukturiertes Markdown.

Highlights

MarkItDown von Microsoft Research wandelt verschiedene Dateiformate wie Word, Excel, PDF, Bilder und Audio in sauberes Markdown für LLMs um.

Die Konvertierung in strukturiertes Markdown reduziert Token-Verbrauch und verbessert die Antwortqualität von RAG-Pipelines durch sauberere Inputs.

Das Python-Tool ermöglicht Dateikonvertierungen mit einer einzigen Befehlszeile oder direkt im Code über die convert-Funktion.

Bilder und Diagramme lassen sich direkt in Markdown konvertieren, um deren Inhalt für RAG-Systeme extrahierbar zu machen.

MarkItDown ist für Maschinen und LLM-Workflows optimiert, während Tools wie Pandoc auf menschenlesbare Formate und Publikationen ausgerichtet sind.

Timeline

Probleme bei der Dokumentenverarbeitung in RAG-Pipelines

  • KI-Entwickler verbringen übermäßig viel Zeit mit der Fehlerbehebung bei der Datenaufnahme anstatt am Kern der App zu arbeiten.
  • Die Verknüpfung zahlreicher Bibliotheken für verschiedene Dateitypen führt oft zu Datenverlusten bei Struktur, Tabellen und Überschriften.
  • Schlechte Antworten von Sprachmodellen basieren häufig auf mangelhafter Input-Formatierung und nicht auf der Qualität des Modells selbst.

KI-Projekte starten meist mit heterogenen Dateien wie PDFs, Excel-Tabellen oder Präsentationen. Die manuelle Zusammenführung dieser Formate über diverse Bibliotheken ist zeitaufwendig und fehleranfällig. Strukturelle Defizite in den konvertierten Daten führen zu ineffizientem Token-Verbrauch und unbrauchbaren Ergebnissen der RAG-Pipeline.

Funktionsweise und Anwendung von MarkItDown

  • MarkItDown ist ein MIT-lizenziertes Open-Source-Tool von Microsoft Research.
  • Die Nutzung ist über das Terminal mit einem Einzeiler oder direkt im Python-Code möglich.
  • Das Tool extrahiert Text, Tabellen und Strukturen sauber in Markdown-Dateien.
  • Auch Bildinhalte wie Diagramme werden durch das Tool analysiert und in eine nutzbare Form überführt.

Das Tool wird per pip installiert und erlaubt die Konvertierung von Dokumenten durch einfache Befehle. Im Python-Code integriert, ermöglicht es die Erstellung von Markdown-Objekten unter Nutzung von API-Schlüsseln. Besonders hervorzuheben ist die Fähigkeit, komplexe Diagramme aus Bilddateien in eine für LLMs verständliche Zusammenfassung umzuwandeln.

Vergleich mit alternativen Ansätzen

  • MarkItDown ist speziell für LLM-Pipelines und Automatisierung konzipiert, nicht für menschenlesbare Publikationen.
  • Im Gegensatz zu schwergewichtigen Alternativen wie 'unstructured' oder 'docling' bietet es eine einfache Einrichtung und hohe Geschwindigkeit.
  • Für sehr komplexe, dichte PDFs oder chaotische Layouts sind spezialisierte ML-basierte Tools dennoch leistungsfähiger.
  • Das Tool unterstützt einen MCP-Server zur direkten Einbindung in Agenten oder Claude Desktop.

Während Tools wie Pandoc auf Formatierung und LaTeX für Menschen abzielen, optimiert MarkItDown Daten für die maschinelle Verarbeitung. Der Hauptvorteil liegt in der Einfachheit und Geschwindigkeit bei gleichzeitig guter Qualität für Standarddokumente. Bei extrem komplexen Anforderungen bleibt der Einsatz schwergewichtigerer Alternativen weiterhin sinnvoll.

Community Posts

View all posts