17 puntos por xguru 2024-09-13 | 2 comentarios | Compartir por WhatsApp
  • Jina AI lanzó en abril de 2024 Jina Reader, una API que convierte URLs de páginas web a Markdown amigable para LLM
  • Jina Reader obtiene el código fuente de la página web con el navegador Chrome, extrae el contenido principal con el paquete Readability y convierte el HTML depurado a Markdown usando regex y la librería Turndown
  • Sin embargo, había aspectos por mejorar, como que el filtro de Readability eliminara contenido incorrectamente o que Turndown tuviera dificultades para convertir cierto HTML a Markdown
  • Por ello, Jina AI comenzó a explorar una forma de convertir HTML a Markdown de extremo a extremo usando un pequeño modelo de lenguaje (SLM)

Características de Reader-LM

  • La tarea de convertir HTML a Markdown no es tan creativa ni compleja como las tareas generales de los LLM, y principalmente requiere copiado selectivo (selective-copy) desde la entrada hacia la salida
  • Por lo tanto, es posible una arquitectura de modelo más superficial (shallow) que requiera menos bloques transformer
  • Pero como el HTML real tiene mucho ruido y longitudes de tokens extensas, se necesita soporte de contexto largo (long-context) de hasta 256K tokens
  • Para ello, Jina AI presentó los SLM shallow-but-wide reader-lm-0.5b y reader-lm-1.5b. Estos tienen 494M y 1.54B parámetros, respectivamente

Cómo usar Reader-LM

  • Se puede probar reader-lm en Google Colab. Se ofrece un notebook que muestra el proceso de convertir el sitio web de Hacker News a Markdown
  • En entornos comerciales se recomienda usar GPU de alto rendimiento. Un nivel como RTX 3090/4090 es más adecuado que una T4
  • Reader-LM también estará disponible próximamente en Azure Marketplace y AWS SageMaker
  • La licencia comercial es CC BY-NC 4.0, y para uso comercial se debe contactar a Jina AI

Resultados de benchmark de Reader-LM

  • Se realizó una evaluación comparativa frente a varios LLM como GPT-4o, Gemini y LLaMA
  • Se usaron métricas como ROUGE-L, Token Error Rate (TER) y Word Error Rate (WER)
  • reader-lm-1.5b mostró el mejor rendimiento con ROUGE-L 0.72 y WER 1.87
  • Al inspeccionar visualmente el Markdown de salida, reader-lm-1.5b sobresale en todos los aspectos, como extracción de encabezados, extracción del contenido principal, preservación de estructura y uso de sintaxis Markdown

Proceso de entrenamiento de Reader-LM

  • Se usaron pares de HTML y Markdown generados con la API de Jina Reader como datos de entrenamiento. También se añadieron algunos HTML sintéticos
  • Se experimentó con modelos de varios tamaños, desde 65M hasta 3B parámetros
  • Se siguió un proceso de entrenamiento en dos etapas. En la primera se entrenó con HTML corto y simple en secuencias de 32K tokens, y en la segunda se amplió el entrenamiento hasta 128K tokens
  • Para resolver el problema de degradación (degeneration) que cae en repeticiones y bucles, se aplicaron contrastive search y criterios de detención de repetición
  • Para resolver problemas de OOM, se implementó chunk-wise model forwarding y se mejoró la implementación de empaquetado de datos
  • También se intentó resolver el problema con un modelo solo codificador, pero hubo dificultades para tratarlo como una tarea de clasificación de tokens

Conclusión

  • Reader-LM es un nuevo SLM diseñado para extracción y depuración de datos web
  • Convertir HTML a Markdown no es tan fácil como parece. Como requiere razonamiento basado en contexto y consciente de la posición, se necesita un tamaño de parámetros considerable
  • Entrenar un SLM desde cero es muy difícil. Empezar desde un modelo preentrenado es mucho más eficiente
  • Aún queda mucho margen de mejora, como ampliar la longitud de contexto, aumentar la velocidad de decodificación y dar soporte a instrucciones en la entrada

2 comentarios

 
ragingwind 2025-01-21

Quiero hacer algo así.

 
xguru 2024-09-13

Jina AI Reader - una herramienta que convierte URLs en entradas amigables para LLM

Lo estoy usando bastante bien, y me hace pensar que estaría bueno hacerlo aún más pequeño e integrarlo en el navegador jaja