- 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
Quiero hacer algo así.
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