Transformer-XL
Transformer-XL, önceki metin bölümündeki gizli durumları önbelleğe alır ve göreli konumları kullanır; böylece dil modeli bölümler arasında bağlamı korur.
Transformer-XL, önceki parçanın gizli durumlarını önbelleğe alarak ve sonraki parçanın bunlara dikkat etmesini sağlayarak sabit uzunluktaki metin parçaları arasında bağlamı taşıyan bir dönüştürücü dil modelidir. Carnegie Mellon Üniversitesinden ve Google Brain'den Zihang Dai, Zhilin Yang ve çalışma arkadaşları, modeli ACL 2019'da Transformer-XL: Sabit Uzunluktaki Bağlamın Ötesinde Dikkatli Dil Modelleri başlıklı makaleyle tanıttı. Ayrı bağlam pencerelerinden oluşan sabit uzunluklu parçalarla eğitilmiş standart bir dönüştürücü, o anki parçasının başlangıcından öncesini göremez; yazarlar bu sorunu bağlam parçalanması olarak adlandırdı. Transformer-XL, tekrarlayan sinir ağlarından (RNNs) %80 ve standart dönüştürücülerden %450 daha uzun bağımlılıkları öğrendi.
Parça Düzeyinde Tekrarlama#
Model bir parçayı işlerken her katman, önceki parçanın önbelleğe alınmış gizli durumlarını geçerli parçanın durumlarıyla birleştirir. Sorgular yalnızca geçerli parçadan gelirken anahtarlar ve değerler her iki parçayı da kapsar; gradyanlar önbellekte durduğundan parça başına eğitim maliyeti sabit kalır. PyTorch içindeki tek bir dikkat katmanı bu örüntüyü gösterir:
import torch
from torch import nn
torch.manual_seed(0)
seg_len, dim = 4, 16
attn = nn.MultiheadAttention(dim, num_heads=2, batch_first=True)
hidden = torch.randn(1, 3 * seg_len, dim) # hidden states for three consecutive segments
memory = torch.empty(1, 0, dim) # nothing is cached before the first segment
for i, segment in enumerate(hidden.split(seg_len, dim=1), start=1):
# Queries come from the current segment; keys and values also cover the cached one
context = torch.cat([memory, segment], dim=1)
out, weights = attn(segment, context, context)
print(f"Segment {i}: {weights.shape[1]} queries attend over {weights.shape[2]} positions")
# Cache this segment for the next one; detach() stops gradients as in Transformer-XL
memory = segment.detach()İlk parçanın 4 sorgusu yalnızca o parçadaki 4 belirteci görür; sonraki her parçanın sorguları ise kendi 4 belirteciyle önbelleğe alınmış 4 belirteç olmak üzere toplam 8 belirteci görür. Bir parçadaki n katmanı, önceki parçanın n − 1 katmanındaki durumları okuduğundan, erişim her katmanda bir parça daha genişler; parça uzunluğu N ve katman sayısı L için yaklaşık N × L belirtece ulaşır:
Önbellek değerlendirmeyi de hızlandırır. Belirteçleri teker teker tahmin eden standart bir dönüştürücü, her yeni belirteç için pencerenin tamamını yeniden hesaplamak zorundadır. Transformer-XL ise önbelleğe alınmış durumları yeniden kullanır; bu da değerlendirme sırasında onu 1.800 kattan fazla hızlandırmıştır. Ultralytics YOLO26 izleme sistemi de bir betik videoyu model.track() öğesine her seferinde bir kare vererek ilettiğinde aynı parçalanma sorunuyla karşılaşır: persist=True, çağrılar arasında izleyicinin durumunu korur; böylece her nesne kareden kareye aynı kimliği taşır.
Göreli Konumsal Kodlama#
Önbelleğe alınmış durumları yeniden kullanmak, mutlak konumları bozar: Önbelleğe alınmış parçanın ilk belirteci ile geçerli parçanın ilk belirteci aynı konum gömüsünü taşır. Transformer-XL bunun yerine her dikkat puanını sorgu ve anahtarın içeriklerinin yanı sıra aralarındaki uzaklığın sinüzoidal kodlamasına ve tüm konumlar arasında paylaşılan, biri içerik diğeri konum için öğrenilmiş iki yanlılığa göre hesaplar. Puanlar yalnızca uzaklıklara bağlı olduğundan model, değerlendirme sırasında eğitimde gördüğünden daha uzun bir önbelleğe dikkat edebilir. Günümüzdeki büyük dil modellerinin (LLM'ler) çoğunda kullanılan döner konum gömmeleri (RoPE) de dikkat puanlarının göreli konuma bağlı olmasını sağlar.
Sonuçlar ve Etkisi#
Transformer-XL beş kıyaslamada yeni en iyi sonuçlara ulaştı: enwik8'de karakter başına 0,99 bit, text8'de 1,08 bit; WikiText-103'te 18,3, One Billion Word'de 21,8 ve Penn Treebank'te şaşkınlık değeri 54,5; üstelik ince ayar yapılmadı. Yalnızca WikiText-103 üzerinde eğitilen model, binlerce belirteç uzunluğunda, makul ölçüde tutarlı yeni makaleler üretti. Aynı yazarların birçoğunun geliştirdiği XLNet, doğal dil anlama ön eğitimini Transformer-XL mimarisi üzerine kurdu. DeepMind Compressive Transformer ise eski bellekleri atmak yerine sıkıştırarak önbelleği genişletti.
Transformer-XL ve İlgili Modeller#
- Uzun kısa süreli bellek (LSTM): Her belirteçte tek bir gizli durumu günceller; bu nedenle çok eskiden gelen bilginin aradaki her adımdan geçmesi gerekir.
- Longformer: Pencereli ve küresel dikkat kullanarak 4.096 belirteçlik bir belgenin tamamını yineleme olmadan bir kerede okur.
- KV önbelleği: Yeniden hesaplanmalarını önlemek için üretim sırasında önceki belirteçlerin anahtarlarını ve değerlerini saklar. Transformer-XL'in belleği eğitimde de kullanılır ve gradyanlar parça sınırında durdurulur.
- Durum uzayı modelleri (SSM'ler): Tüm geçmişi sabit boyutlu bir duruma sıkıştırır.










