Context Window
Bağlam penceresi, bir modelin tek bir istekte dikkat edebileceği en yüksek belirteç sayısıdır; istem, geçmiş, belgeler ve yanıt bu sınırı paylaşır.
Bağlam penceresi, bir modelin tek bir istekte dikkate alabileceği en yüksek belirteç sayısıdır. Bir büyük dil modeli (LLM) için okuduğu ve yazdığı her şey bu bütçeyi paylaşır: sistem istemi, araç tanımları, konuşma geçmişi, getirilen belgeler, kullanıcının sorusu ve modelin oluşturduğu yanıt. Pencerenin dışındaki metin modele hiç ulaşmaz; bu nedenle uzun bir konuşmanın önceki turları kesildiğinde sohbet robotu başlangıçtaki konuşmayı izleyemez. Pencereler, GPT-3'teki 2.048 belirteçten 2023'ün sonlarında GPT-4 Turbo'daki 128K belirtece ve 2024'te Google Gemini 1.5 Pro'daki 1 milyona yükseldi; Meta'nın Llama 4 Scout modeli ise 10 milyon belirteç sunduğunu belirtiyor.
Bağlam Penceresini Neler Doldurur#
Belirteçleştirme, metni İngilizcede ortalama yaklaşık dört karakterden oluşan alt sözcük parçalarına böler; bu nedenle 128K belirteçlik bir pencere yaklaşık 300 sayfaya denk gelir. Görsel-dil modeli (VLM) de görseller için, genellikle görsel başına yüzlerce yama belirteci olmak üzere belirteç harcar; bu nedenle uzun bir video pencereyi, aynı videonun dökümünden çok daha hızlı doldurur. Üretilen belirteçler de aynı sınıra dahildir ve sağlayıcılar pencere içinde çıktı uzunluğu için ayrı bir üst sınır belirler. Uzun konuşmalar veya yapay zekâ aracıları çalıştıran uygulamalar bu nedenle her turda istemi oluşturur ve hangi içeriğin tutulacağına karar verir:
Pencereler Neden Sınırlıdır#
Uzunlukla birlikte iki maliyet artar. Öz dikkat, her belirteci diğer tüm belirteçlerle karşılaştırır; bu nedenle dikkat hesaplaması belirteç sayısıyla karesel olarak büyür. Metin üretimi sırasında KV önbelleği, önceki her belirtecin anahtarlarını ve değerlerini tutar: 32 katmana ve her biri 128 boyutlu 8 anahtar-değer başlığına sahip Llama 3.1 8B, 16 bit hassasiyette belirteç başına 128 KiB saklar; bu da tam 131.072 belirteçlik pencerede 16 GiB eder ve ağırlıklarının kullandığı 16 GB'ı aşar.
Pencere boyutunu eğitim de belirler. 8K belirteçlik dizilerle eğitilen bir model, bu uzunluğu aşan konumları hiç görmemiştir; dolayısıyla pencereyi uzatmak, döner konum gömmelerini (RoPE) YaRN gibi yöntemlerle yeniden ölçeklendirmeyi ve daha uzun metinlerle kısa süreli ince ayar yapmayı gerektirir. Uzun pencereleri sunmak bellek tasarrufu sağlayan tekniklere dayanır: flash attention tam puan matrisini saklamadan kesin dikkati hesaplar, gruplanmış sorgu dikkati (GQA) KV önbelleğini küçültür, kayan pencere dikkati her belirteci yakınındaki belirteçlerle sınırlar ve halka dikkati tek bir diziyi çok sayıda GPU'ya böler.
İlan Edilen ve Etkin Bağlam#
Bir milyon belirteci kabul eden model, bunların tümünü eşit derecede iyi kullanmaz. 2023 tarihli Lost in the Middle çalışması, ilgili pasaj istemin başında veya sonunda olduğunda modellerin en iyi yanıtları verdiğini, ortasındayken ise en kötü sonuçları aldığını ortaya koydu. Samanlıkta iğne (NIAH) testleri, eklenen tek bir bilginin her derinlik ve uzunluktaki hatırlanma başarısını ölçer. Daha zor olan RULER kıyaslaması, 32K belirteç veya daha fazlasını desteklediğini iddia eden 17 modelin yalnızca yarısının 32K'da tatmin edici performans gösterdiğini buldu. Girdiler büyüdükçe görülen kademeli düşüşe bağlam çürümesi denir; bilgi getirim destekli üretim (RAG) ve bağlam mühendisliği, pencereye yalnızca ilgili içeriği koyarak bu sorunu azaltır.
Bağlam Penceresi ve İlgili Terimler#
- Alıcı alan: Bir evrişimli sinir ağının (CNN) tek bir çıktısını etkileyen giriş görseli bölgesi. Boyutu çekirdek boyutları ve derinlikle sabittir; bağlam penceresi ise belirteç bütçesidir.
- Yığın boyutu: Birlikte işlenen bağımsız dizilerin sayısı. Bağlam penceresi her dizinin uzunluğunu sınırlar.
- Bellek: Vektör veritabanında saklanan epizodik bellek gibi aracı belleği, pencerenin dışında kalıcıdır ve ilgili olduğunda pencereye geri kopyalanır.
Açık Kelime Dağarcıklı Algılamada Bağlam Pencereleri#
Görsel modellerinin içindeki metin kodlayıcılarının da pencereleri vardır. Ultralytics YOLOE ve YOLO-World, her sınıf istemini bağlam penceresi 77 belirteç olan CLIP ailesi bir metin kodlayıcısıyla kodlar; Ultralytics metin kodlayıcısı ise varsayılan olarak daha uzun istemleri keser. Aynı CLIP belirteçleyici, nelerin kesildiğini gösterir:
import clip
from clip.simple_tokenizer import SimpleTokenizer
prompt = (
"a warehouse worker wearing a yellow high-visibility vest, a white hard hat, blue gloves and clear safety "
"glasses, standing beside a red forklift that carries wooden pallets stacked with brown cardboard boxes, "
"under bright ceiling lights in a narrow aisle between tall metal shelves, next to a fire extinguisher "
"mounted on the wall, a green emergency exit sign, an open loading dock door and a black dog"
)
# CLIP's BPE tokenizer wraps the text in start and end tokens
tokenizer = SimpleTokenizer()
print(f"Prompt length: {len(tokenizer.encode(prompt)) + 2} tokens")
# The text encoder reads a fixed 77-token window, so truncation drops the tail
tokens = clip.tokenize(prompt, truncate=True)[0]
kept = tokenizer.decode(tokens[1:-1].tolist())
print(f"Window: {len(tokens)} tokens ending in '{' '.join(kept.split()[-4:])}'")
print(f"'black dog' kept: {'black dog' in kept}")İstem 80 belirteç uzunluğundadır; bu nedenle pencere, ilk 75 metin belirtecini başlangıç ve bitiş işaretçileriyle birlikte tutar, "loading dock door and" ifadesinde sona erer ve kodlayıcı görmeden önce "a black dog" ifadesini atar.










