17 pontos por xguru 2024-09-13 | 2 comentários | Compartilhar no WhatsApp
  • 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

 
ragingwind 2025-01-21

Quero criar algo assim.

 
xguru 2024-09-13

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