- Jina AI, Nisan 2024'te web sayfası URL'lerini LLM dostu Markdown'a dönüştüren bir API olan Jina Reader'ı kullanıma sundu
- Jina Reader, web sayfası kaynağını Chrome tarayıcısıyla alır, ana içeriği Readability paketiyle çıkarır ve ardından temizlenmiş HTML'yi regex ile Turndown kütüphanesini kullanarak Markdown'a dönüştürür
- Ancak Readability filtresinin yanlış içerikleri kaldırması veya Turndown'ın belirli HTML'yi Markdown'a dönüştürmekte zorlanması gibi iyileştirilmesi gereken noktalar vardı
- Bunun üzerine Jina AI, küçük dil modeli (SLM) kullanarak HTML'yi end-to-end şekilde Markdown'a dönüştürme yöntemini değerlendirmeye başladı
Reader-LM'in özellikleri
- HTML'yi Markdown'a dönüştürme işi, genel LLM görevlerine kıyasla o kadar yaratıcı ya da karmaşık değildir; esas olarak girdiden çıktıya seçici kopyalama (selective-copy) gerektirir
- Bu nedenle daha az transformer block gerektiren daha sığ bir model mimarisi mümkündür
- Ancak gerçek dünyadaki HTML gürültülüdür ve token uzunluğu fazladır; bu yüzden 256K tokene kadar destekleyen uzun bağlam (long-context) desteği gerekir
- Jina AI bunun için "shallow-but-wide" yapıda SLM'ler olan reader-lm-0.5b ve reader-lm-1.5b'yi duyurdu. Bunlar sırasıyla 494M ve 1.54B parametreye sahip
Reader-LM nasıl kullanılır
- Google Colab üzerinde reader-lm denenebilir. Hacker News web sitesini Markdown'a dönüştürme sürecini gösteren bir not defteri sunuluyor
- Ticari ortamda yüksek performanslı GPU kullanılması öneriliyor. T4 yerine RTX 3090/4090 düzeyi daha uygun
- Reader-LM yakında Azure Marketplace ve AWS SageMaker üzerinden de sunulacak
- Ticari lisans CC BY-NC 4.0; ticari kullanım için Jina AI ile iletişime geçilmesi isteniyor
Reader-LM benchmark sonuçları
- GPT-4o, Gemini, LLaMA gibi çeşitli LLM'lerle karşılaştırmalı değerlendirme yapıldı
- ROUGE-L, Token Error Rate (TER), Word Error Rate (WER) gibi metrikler kullanıldı
- reader-lm-1.5b, ROUGE-L 0.72 ve WER 1.87 ile en iyi performansı gösterdi
- Üretilen Markdown çıktıları görsel olarak incelendiğinde, reader-lm-1.5b başlık çıkarma, ana içerik çıkarma, yapı koruma ve Markdown sözdizimi kullanımı gibi tüm yönlerde başarılı görünüyor
Reader-LM eğitim süreci
- Jina Reader API ile HTML ve Markdown çiftleri oluşturularak eğitim verisi olarak kullanıldı. Buna ek olarak bazı sentetik HTML örnekleri de eklendi
- 65M ile 3B parametre arasında değişen farklı model boyutları denendi
- İki aşamalı bir eğitim süreci izlendi. İlk aşamada kısa ve basit HTML'ler 32K token dizileriyle eğitildi, ikinci aşamada ise eğitim 128K tokene kadar genişletildi
- Tekrara ve döngülere saplanan degeneration sorununu çözmek için contrastive search ve tekrar durdurma ölçütleri uygulandı
- OOM sorununu çözmek için chunk-wise model forwarding uygulandı ve veri packing uygulaması iyileştirildi
- Sorunu encoder-only bir modelle çözme girişimi de oldu, ancak bunu bir token sınıflandırma görevi olarak ele almakta zorluk yaşandı
Sonuç
- Reader-LM, web verisi çıkarma ve temizleme için tasarlanmış yeni bir SLM
- HTML'yi Markdown'a dönüştürmek sanıldığından daha zor. Position-aware ve bağlam temelli çıkarım gerektiği için daha büyük parametre boyutlarına ihtiyaç duyuluyor
- SLM'yi sıfırdan eğitmek oldukça zor. Önceden eğitilmiş bir modelden başlamak çok daha verimli
- Gelecekte bağlam uzunluğunu artırma, decoding hızını iyileştirme ve girdide komut desteği gibi alanlarda hâlâ çok sayıda geliştirme fırsatı bulunuyor
2 yorum
Böyle bir şey yapmak istiyorum.
Jina AI Reader - URL'leri LLM dostu girdilere dönüştüren araç
Bunu gayet iyi kullanıyorum; biraz daha küçültülüp tarayıcıya gömülü gelse güzel olur diye düşünüyorum, haha