300 sayfalık bir hukuki özet veya ciltli bir yıllık raporu çoğu OCR hattına attığınızda, yazılım bunu sessizce parçalara bölecektir. Birinci sayfa, işle, belleği boşalt. İkinci sayfa, işle, belleği boşalt. Sistem arkadaki ekler kısmına ulaştığında, giriş kısmından elde etmiş olabileceği her türlü bağlam çoktan yok olup gitmiştir. Dipnotlar sahipsiz kalır. Sayfalar arasında bölünen tablolar yapılarını kaybeder. Sayfalar boyunca devam eden başlıklar yanlış etiketlenir. Sonuç, bir insanın yeniden bir araya getirmesi gereken, birbirine dikilmiş bir metin dosyasıdır.
Baidu, bu iş akışının temelden bozuk olduğunu düşünüyor. Çözümleri ise, genellikle ardından gelen GPU bellek patlamasına yol açmadan, devasa, çok sayfalı belgeleri tek bir ileri geçişte (forward pass) işlemek üzere tasarlanmış bir mimari olan Unlimited OCR'dır. İşin sırrı, belleği bir sabit sürücüden ziyade insan çalışma belleğine daha çok benzeten yeni bir dikkat mekanizmasıdır: kaynak materyali önünüzde tutun, az önce ne yazdığınızı hatırlayın ve uzak geçmişin solup gitmesine izin verin.
Uzun Belgeler Standart OCR'ı Neden İşlevsiz Kılıyor
Çözümü anlamak için geleneksel uçtan uca (end-to-end) OCR sistemlerinin nerede çöktüğünü görmek yardımcı olacaktır.
Çoğu modern OCR hattı, kod çözücü (decoder) olarak büyük bir dil modeli kullanır. Model bir sayfayı okuyup metin oluştururken, KV cache adı verilen dahili temsiller saklar; bu, temelde modelin halihazırda ne söylediğini takip etmesine yardımcı olan anahtarlar ve değerlerden oluşan sürekli bir günlüktür. Sorun şu ki, bu günlük her yeni çıktı satırıyla birlikte doğrusal olarak büyür. On sayfa işlerseniz, önbellek on sayfa derinliğine ulaşır. Yüz sayfa işlerseniz, yüz binlerce tokene ulaşarak şişer, VRAM'i tüketir ve üretim hızını kaplumbağa hızına düşürür.
Mühendisler bu sorunla, aslında sorunla hiç uğraşmayarak başa çıktılar. Belgeleri tek sayfalar halinde kesiyorlar, her sayfayı modelden bağımsız olarak geçiriyorlar ve her adım arasında KV cache'i sıfırlıyorlar. Bu yöntem sistemin çalışmasını sağlar ancak modeli her türlü sürekli bağdan mahrum bırakır. Üçüncü sayfada başlayıp dördüncü sayfada biten bir paragraf ikiye bölünür. Sayfalar arası tablo biçimlendirmesi dağılır. Kod çözücü, daha önce ne geldiğine dair kalıcı bir belleğe sahip olmadığı için önceki bölümlere yapılan atıflar bozuk bağlantılara dönüşür. Model aslında belgeyi okumuyor; sadece bir dizi izole edilmiş bilgi kartı (flashcard) çalışıyor.
İnsan Taktiği: Reference Sliding Window Attention
Baidu'nun araştırmacıları, insan bilişinden bir sayfa ödünç alarak bu sorunu çözdüler. Bir kitaptan bir pasajı elle kopyaladığınızı düşünün. Daha önce kopyaladığınız her cümleyi zihninizde tutmazsınız. Kaynağa bir göz atarsınız, yazdığınız son birkaç kelimeye bakarsınız ve devam edersiniz. Çalışma belleğiniz küçüktür ancak kaynak metin önünüzde açık durduğu için görev zahmetsizdir.
Reference Sliding Window Attention veya R-SWA, tam olarak bu sezgiyi resmileştirir.
Arka planda, KV cache sabit uzunluklu bir kuyruk haline gelir. Model yeni bir token oluşturduğunda, "referans token"ların (orijinal görsel görüntü gömmeleri ve ilk istem/prompt) tam görünürlüğünü korur, ancak yalnızca bizzat oluşturduğu son 128 tokene geri bakar. Hepsi bu. Model ister birinci sayfada ister ellinci sayfada olsun, kendi çıktı geçmişinin bellek ayak izi sabit kalır. Önbellek büyümez. Geri dönüştürülür.
Bu bir
