- A Jina AI lançou em abril de 2024 o Jina Reader, uma API que converte URLs de páginas da web em Markdown amigável para LLMs
- O Jina Reader obtém o código-fonte da página com o navegador Chrome, extrai o conteúdo principal com o pacote Readability e converte o HTML limpo em Markdown usando regex e a biblioteca Turndown
- No entanto, ainda havia pontos a melhorar, como casos em que o filtro do Readability removia conteúdo incorreto ou o Turndown tinha dificuldade para converter certos tipos de HTML em Markdown
- Por isso, a Jina AI passou a considerar uma abordagem de ponta a ponta para converter HTML em Markdown usando um pequeno modelo de linguagem (SLM)
Características do Reader-LM
- A tarefa de converter HTML em Markdown não é tão criativa nem tão complexa quanto tarefas gerais de LLM, e exige principalmente cópia seletiva (selective-copy) da entrada para a saída
- Por isso, é possível usar uma arquitetura de modelo mais rasa, com menos blocos transformer
- Porém, como o HTML real tem muito ruído e sequências longas de tokens, é necessário suporte a contexto longo (long-context), com até 256K tokens
- Para isso, a Jina AI apresentou os SLMs “shallow-but-wide” reader-lm-0.5b e reader-lm-1.5b, com 494M e 1.54B parâmetros, respectivamente
Como usar o Reader-LM
- É possível experimentar o reader-lm no Google Colab. Há um notebook que mostra o processo de conversão do site Hacker News para Markdown
- Em ambientes comerciais, é recomendável usar GPUs de alto desempenho. Um nível como RTX 3090/4090 é mais adequado do que T4
- O Reader-LM também deverá ser disponibilizado em breve no Azure Marketplace e no AWS SageMaker
- A licença comercial é CC BY-NC 4.0, e para uso comercial é preciso entrar em contato com a Jina AI
Resultados de benchmark do Reader-LM
- Foi feita uma avaliação comparativa com vários LLMs, incluindo GPT-4o, Gemini e LLaMA
- Foram usadas métricas como ROUGE-L, Token Error Rate (TER) e Word Error Rate (WER)
- O reader-lm-1.5b apresentou o melhor desempenho, com ROUGE-L de 0.72 e WER de 1.87
- Ao inspecionar visualmente o Markdown gerado, o reader-lm-1.5b também se destacou em todos os aspectos, como extração de cabeçalhos, extração do conteúdo principal, preservação da estrutura e uso da sintaxe Markdown
Processo de treinamento do Reader-LM
- Foram criados pares de HTML e Markdown com a API Jina Reader para uso como dados de treinamento. Também foi adicionada uma parte de HTML sintético
- Foram testados modelos de vários tamanhos, de 65M até 3B parâmetros
- O treinamento foi feito em duas etapas. Na primeira, HTMLs curtos e simples foram treinados com sequências de 32K tokens; na segunda, o treinamento foi expandido para até 128K tokens
- Para resolver o problema de degeneração, em que o modelo entra em repetição e loops, foram aplicadas contrastive search e regras de parada por repetição
- Para resolver problemas de OOM, foi implementado chunk-wise model forwarding e melhorada a implementação de empacotamento de dados
- Também foi testada a abordagem de resolver o problema com um modelo encoder-only, mas houve dificuldades para tratá-lo como uma tarefa de classificação de tokens
Conclusão
- O Reader-LM é um novo SLM projetado para extração e limpeza de dados da web
- Converter HTML em Markdown é uma tarefa menos simples do que parece. Como exige raciocínio com consciência de posição e baseado em contexto, um número maior de parâmetros é necessário
- Treinar um SLM do zero é algo muito difícil. Começar a partir de um modelo pré-treinado é muito mais eficiente
- Ainda há bastante espaço para melhorias futuras, como expansão do comprimento de contexto, aumento da velocidade de decodificação e suporte a instruções na entrada
2 comentários
Quero criar algo assim.
Jina AI Reader - ferramenta que transforma URLs em entradas amigáveis para LLMs
Estou usando isso muito bem, e fico pensando que seria ótimo se o deixassem ainda menor para embutir no navegador haha