- Jina AI hat im April 2024 Jina Reader veröffentlicht, eine API, die Webseiten-URLs in LLM-freundliches Markdown umwandelt
- Jina Reader ruft den Quelltext von Webseiten über den Chrome-Browser ab, extrahiert mit dem Readability-Paket den Hauptinhalt und wandelt das bereinigte HTML mithilfe von Regex und der Bibliothek Turndown in Markdown um
- Es gab jedoch Punkte mit Verbesserungsbedarf, etwa wenn der Readability-Filter fälschlich Inhalte entfernte oder Turndown Schwierigkeiten hatte, bestimmtes HTML in Markdown umzuwandeln
- Deshalb begann Jina AI darüber nachzudenken, HTML mithilfe eines Small Language Model (SLM) end-to-end in Markdown umzuwandeln
Merkmale von Reader-LM
- Die Umwandlung von HTML in Markdown ist im Vergleich zu allgemeinen LLM-Aufgaben weder besonders kreativ noch komplex, sondern erfordert überwiegend selektives Kopieren vom Input in den Output
- Daher ist eine flache Modellarchitektur mit weniger Transformer-Blöcken möglich
- Da echtes HTML jedoch sehr viel Rauschen enthält und die Tokenlänge groß ist, wird Long-Context-Unterstützung bis zu 256K Token benötigt
- Dafür hat Jina AI die „shallow-but-wide“ SLMs reader-lm-0.5b und reader-lm-1.5b vorgestellt. Sie verfügen über 494M bzw. 1.54B Parameter
Verwendung von Reader-LM
- reader-lm kann in Google Colab ausprobiert werden. Es gibt ein Notebook, das zeigt, wie die Hacker-News-Website in Markdown umgewandelt wird
- Für den produktiven Einsatz wird die Verwendung leistungsstarker GPUs empfohlen. Geeigneter sind Systeme auf dem Niveau einer RTX 3090/4090 als eine T4
- Reader-LM soll in Kürze auch im Azure Marketplace und bei AWS SageMaker verfügbar sein
- Die kommerzielle Lizenz ist CC BY-NC 4.0; für kommerzielle Nutzung sollte Jina AI kontaktiert werden
Benchmark-Ergebnisse von Reader-LM
- Es wurde eine vergleichende Bewertung mit verschiedenen LLMs wie GPT-4o, Gemini und LLaMA durchgeführt
- Verwendet wurden Metriken wie ROUGE-L, Token Error Rate (TER) und Word Error Rate (WER)
- reader-lm-1.5b zeigte mit ROUGE-L 0.72 und WER 1.87 die beste Leistung
- Bei visueller Prüfung des tatsächlich erzeugten Markdown schnitt reader-lm-1.5b in allen Aspekten am besten ab, darunter Header-Extraktion, Extraktion des Hauptinhalts, Erhalt der Struktur und Verwendung der Markdown-Syntax
Trainingsprozess von Reader-LM
- Mit der Jina Reader API wurden HTML/Markdown-Paare erstellt und als Trainingsdaten verwendet. Zusätzlich wurde teilweise synthetisches HTML hinzugefügt
- Es wurden Modelle in verschiedenen Größen von 65M bis 3B Parametern erprobt
- Es wurde ein zweistufiger Trainingsprozess durchlaufen. In Phase 1 wurden kurze und einfache HTMLs mit 32K-Token-Sequenzen trainiert, in Phase 2 wurde das Training auf bis zu 128K Token erweitert
- Um das Degenerationsproblem mit Wiederholungen und Schleifen zu lösen, wurden Contrastive Search und Kriterien zum Stoppen von Wiederholungen angewendet
- Zur Lösung von OOM-Problemen wurde chunk-wise model forwarding implementiert und die Implementierung des Data Packing verbessert
- Es wurde auch versucht, das Problem mit einem Encoder-only-Modell zu lösen, doch es war schwierig, es als Token-Klassifikationsaufgabe zu behandeln
Fazit
- Reader-LM ist ein neues SLM, das für die Extraktion und Bereinigung von Webdaten entwickelt wurde
- Die Umwandlung von HTML in Markdown ist schwieriger als gedacht. Da positionsbewusstes und kontextbasiertes Schlussfolgern erforderlich ist, wird eine große Parameterzahl benötigt
- Ein SLM von Grund auf zu trainieren, ist sehr schwierig. Von einem vortrainierten Modell aus zu starten, ist deutlich effizienter
- Für die Zukunft gibt es noch viel Raum für Verbesserungen, etwa bei längeren Kontextfenstern, höherer Decoding-Geschwindigkeit und der Unterstützung von Anweisungen im Input
2 Kommentare
So etwas möchte ich gerne bauen.
Jina AI Reader - Ein Tool, das URLs in LLM-freundliche Eingaben umwandelt
Ich nutze das ziemlich gerne, und ich denke, es wäre schön, wenn man es noch kleiner machen und direkt in den Browser integrieren könnte, haha