Longformer
Longformer, kayan pencere dikkatini birkaç küresel belirteçle birleştirir; böylece maliyeti uzunlukla doğrusal olarak artar ve 4.096 belirteçlik belgeleri okuyabilir.
Longformer, uzun belgeler için geliştirilmiş bir Transformer modelidir. Her belirtecin çevresinde kayan pencereli dikkat kullanarak tam öz-dikkat mekanizmasının yerini alır; buna, görev için seçilen birkaç belirteç üzerinde küresel dikkat de ekler. Böylece hesaplama maliyeti, girdinin uzunluğuyla karesel değil doğrusal olarak artar. Allen Yapay Zekâ Enstitüsü'nden Iz Beltagy, Matthew Peters ve Arman Cohan, modeli 2020 tarihli Longformer: Uzun Belgeler için Transformer makalesinde tanıttı. BERT ve RoBERTa gibi kodlayıcılar en fazla 512 belirteç okuduğundan, daha uzun metinler aralarındaki bağlantıları koparan parçalara bölünmek zorundaydı. Yayımlanan Longformer modelleri tek geçişte 4.096 belirteç, yani sekiz kat uzun bir bağlam penceresi okur.
Longformer'ın Dikkat Mekanizması Nasıl Çalışır?#
Her katman, tek bir dikkat mekanizması içinde yerel ve küresel örüntüleri birleştirir:
- Kayan pencere dikkati: Her belirteç, yayımlanan modellerde iki yanında 256 belirteç bulunan sabit bir komşu penceresine dikkat eder.
- Genişletilmiş kayan pencere: Dikkat edilen konumlar arasındaki boşluklar, bir başlığın aynı maliyetle daha uzağı görmesini sağlar. Yazarlar, karakter düzeyindeki dil modellerinin üst katmanlarındaki birkaç başlıkta genişletme kullandı.
- Küresel dikkat: Seçili belirteçler her konuma, her konum da seçili belirteçlere ayrı sorgu, anahtar ve değer izdüşümleri üzerinden dikkat eder. Bu belirteçleri görev belirler: sınıflandırmada
[CLS]belirteci, soru yanıtlamada ise soru belirteçleri kullanılır.
Katmanları üst üste yığmak, pencerelerin erişimini genişletir; tıpkı üst üste yığılmış evrişimlerin bir evrişimli sinir ağının (CNN) alıcı alanını genişletmesi gibi: pencere genişliği w olan l katman, l × w belirteci kapsar. Her katman n × n yerine yaklaşık n × w dikkat skoru hesaplar. Longformer maskesindeki çiftleri saymak, farkı görünür kılar:
import torch
window = 512 # Longformer-base: 256 tokens on each side of every token
for n in (1024, 2048, 4096):
pos = torch.arange(n)
# Sliding window: each token attends to neighbors within window / 2 positions
mask = (pos[:, None] - pos[None, :]).abs() <= window // 2
# Global attention on token 0 ([CLS]): it sees every token and every token sees it
mask[0, :] = True
mask[:, 0] = True
print(f"{n} tokens: full attention {n * n / 1e6:.1f}M scores, Longformer {mask.sum().item() / 1e6:.1f}M")Çıktı, Longformer için 0,5M, 1,0M ve 2,0M skor; tam dikkat içinse 1,0M, 4,2M ve 16,8M skor gösterir: girdi her iki katına çıktığında Longformer'ın dikkat işlemi iki katına, tam dikkatin işlem yükü ise dört katına çıkar. Gerçek uygulamalar yalnızca skor bandını hesaplar; bellek tasarrufu da buradan gelir.
Eğitim ve Sonuçlar#
Longformer, RoBERTa kontrol noktasından başlar. Yazarlar, öğrenilmiş 512 konum gömmesini 4.096 konumu kapsayacak şekilde sekiz kez kopyaladı ve uzun belgeler üzerinde maskeli dil modeli ön eğitimini sürdürdü. İnce ayardan sonra uzun belge görevlerinde RoBERTa'dan sürekli olarak daha iyi performans gösterdi ve WikiHop ile TriviaQA soru yanıtlama kıyaslamalarında o dönem için en iyi sonuçları elde etti. Karakter düzeyindeki dil modeli de text8 ve enwik8'de yeni sonuçlar elde etti.
Longformer-Encoder-Decoder (LED), arXiv'deki tam bilimsel makaleleri özetleme örneğiyle gösterildiği üzere, metin özetleme ve diğer metin üretimi görevleri için bir kod çözücü ekler. Hugging Face Transformers her iki modeli de uygular ve küresel belirteçleri global_attention_mask olarak alır. Büyük klinik metin derlemleri üzerinde önceden eğitilen ve adlandırılmış varlık tanıma, soru yanıtlama ve belge sınıflandırma dâhil 10 görevde değerlendirilen Clinical-Longformer gibi alan sürümleri de geliştirildi.
Longformer ve İlgili Modeller#
- Transformer-XL: Uzun bir metni parça parça okur ve her parçanın önceki parçanın önbelleğe alınmış gizli durumlarına dikkat etmesini sağlayarak soldan sağa üretimde yineleme yoluyla bağlamı genişletir.
- BigBird: Aynı yıl Google'ın geliştirdiği bu model, pencere ve küresel dikkate rastgele dikkat bağlantıları ekler ve 4.096 belirteç de okur.
- Seyrek dikkat: Longformer'ın da dâhil olduğu, sabit dikkat örüntülerinden oluşan daha geniş yöntem ailesidir.
- Flash attention: Tam dikkati yonga üstü bellek bloklarında eksiksiz biçimde hesaplar; böylece skor sayısı karesel kalırken bellek, uzunlukla doğrusal olarak artar.
Görmede Yerel ve Küresel Dikkat#
Yüksek çözünürlüklü görüntüler de aynı sorunu doğurur; çünkü bir görme Transformer'ı (ViT), görüntüyü binlerce yama belirtecine dönüştürür. Swin Transformer, bu sorunu kaydırılmış yerel pencerelerle çözer. Ultralytics paketinde çalışan Meta'nın Segment Anything Model (SAM) modeli ise bloklar arasında pencereli ve küresel dikkati bir araya getirerek görüntü bölümleme yapar: ViT-B görüntü kodlayıcısı, 64 × 64'lük yama ızgarasının 14 × 14'lük çakışmayan pencerelerine 12 bloğunun 8'inde, 4.096 yamanın tümüne ise 2., 5., 8. ve 11. bloklarında dikkat eder.










