17 points par xguru 2024-09-13 | 2 commentaires | Partager sur WhatsApp
  • Jina AI a lancé en avril 2024 Jina Reader, une API qui convertit les URL de pages web en Markdown compatible avec les LLM
  • Jina Reader récupère le code source des pages web via le navigateur Chrome, extrait le contenu principal avec le package Readability, puis convertit le HTML nettoyé en Markdown à l’aide de regex et de la bibliothèque Turndown
  • Mais certains points restaient à améliorer, par exemple lorsque le filtre Readability supprimait le mauvais contenu ou lorsque Turndown rencontrait des difficultés à convertir certains éléments HTML en Markdown
  • Jina AI a donc commencé à explorer une approche utilisant un petit modèle de langage (SLM) pour convertir le HTML en Markdown de bout en bout

Caractéristiques de Reader-LM

  • La conversion du HTML en Markdown n’est pas une tâche aussi créative ou complexe que les tâches générales confiées aux LLM ; elle demande surtout une copie sélective (selective-copy) de l’entrée vers la sortie
  • Il est donc possible d’utiliser une architecture de modèle plus superficielle (shallow) nécessitant moins de blocs transformer
  • Mais comme le HTML réel est très bruité et que les séquences de tokens sont longues, il faut prendre en charge un long contexte (long-context) allant jusqu’à 256K tokens
  • Pour cela, Jina AI a présenté deux SLM « shallow-but-wide », reader-lm-0.5b et reader-lm-1.5b, avec respectivement 494M et 1.54B de paramètres

Comment utiliser Reader-LM

  • Il est possible d’essayer reader-lm sur Google Colab. Un notebook est fourni pour montrer le processus de conversion du site Hacker News en Markdown
  • En environnement de production, il est recommandé d’utiliser un GPU haute performance. Un RTX 3090/4090 est plus adapté qu’un T4
  • Reader-LM sera bientôt également disponible sur Azure Marketplace et AWS SageMaker
  • La licence commerciale est CC BY-NC 4.0 ; pour un usage commercial, il faut contacter Jina AI

Résultats des benchmarks de Reader-LM

  • Une évaluation comparative a été menée face à plusieurs LLM, dont GPT-4o, Gemini et LLaMA
  • Les métriques utilisées incluent ROUGE-L, le Token Error Rate (TER) et le Word Error Rate (WER)
  • reader-lm-1.5b a montré les meilleures performances avec un ROUGE-L de 0.72 et un WER de 1.87
  • Une inspection visuelle du Markdown généré montre que reader-lm-1.5b excelle sur tous les aspects : extraction des en-têtes, extraction du contenu principal, préservation de la structure et usage de la syntaxe Markdown

Processus d’entraînement de Reader-LM

  • Des paires HTML/Markdown ont été créées à l’aide de l’API Jina Reader pour servir de données d’entraînement. Une partie de HTML synthétique a également été ajoutée
  • Des modèles de tailles variées, de 65M à 3B paramètres, ont été testés
  • L’entraînement s’est déroulé en deux étapes. La première a utilisé des HTML courts et simples avec des séquences de 32K tokens, et la seconde a étendu l’apprentissage jusqu’à 128K tokens
  • Pour résoudre les problèmes de dégénérescence (degeneration) menant à des répétitions et des boucles, une recherche contrastive (contrastive search) et des critères d’arrêt de répétition ont été appliqués
  • Pour résoudre les problèmes d’OOM, un chunk-wise model forwarding a été implémenté et l’implémentation du data packing a été améliorée
  • Une tentative a également été faite pour résoudre le problème avec un modèle encodeur-only, mais il était difficile de le traiter comme une tâche de classification de tokens

Conclusion

  • Reader-LM est un nouveau SLM conçu pour l’extraction et le nettoyage de données web
  • Convertir du HTML en Markdown est plus difficile qu’il n’y paraît. Comme cela nécessite un raisonnement sensible à la position (position-aware) et fondé sur le contexte, une grande taille de paramètres est requise
  • Entraîner un SLM à partir de zéro est extrêmement difficile. Partir d’un modèle préentraîné est bien plus efficace
  • Il reste encore beaucoup de marge d’amélioration, notamment sur l’extension de la longueur de contexte, l’augmentation de la vitesse de décodage et la prise en charge d’instructions dans l’entrée

2 commentaires

 
ragingwind 2025-01-21

J’aimerais créer ce genre de chose.

 
xguru 2024-09-13

Jina AI Reader - un outil qui transforme les URL en entrées compatibles avec les LLM

Je l’utilise bien, et je me dis que ce serait bien de le rendre encore plus petit pour l’intégrer directement au navigateur, haha