Bağlam Penceresi
- İngilizcesi
- Context Window
- Okunuşu
- kontekst vindo
Günlük kullanımda iki ad da yaygın.
Kısaca
Bağlam penceresi, bir LLM'nin prompt, konuşma geçmişi ve kendi yanıtı dahil aynı anda dikkate alabildiği, token cinsinden en fazla metin miktarıdır.
Bağlam penceresi (context window) nedir?
Bağlam penceresi, bir LLM'nin tek bir istek için çalışma belleğidir. Modelin aynı anda görebildiği her şeyi kapsar: sistem prompt'u, o ana kadarki konuşma, eklediğiniz belgeler ya da araç sonuçları ve üretmekte olduğu yanıt. Boyutu token cinsinden ölçülür ve modeller arasında birkaç bin token ile bir milyon veya daha fazlası arasında çok değişir.
Bir LLM'nin istekler arasında belleği yoktur. Sohbet uygulamaları, her yeni mesajla tüm konuşmayı yeniden göndererek hafıza hissi yaratır; bu yüzden uzun bir sohbet pencereyi giderek doldurur. Sınıra ulaşıldığında uygulama eski mesajları atmak, özetlemek ya da hata döndürmek zorundadır; sığmayan her şey model için kesinlikle görünmezdir.
Bir benzetme masadır: daha büyük bir masa aynı anda daha fazla kâğıdı serebilmenizi sağlar, ama başka bir odadaki dosya dolabında kalan kâğıtları yine de okuyamazsınız. Daha büyük pencereler modellerin uzun belgelerle ya da bütün kod tabanlarıyla çalışmasına izin verir, ancak her istek daha pahalıya gelir, daha yavaş yanıtlanır ve modeller çok uzun bir bağlamın ortasına gömülü ayrıntılara daha az dikkat edebilir.
Bağlam penceresi modelin bilgisi değildir. Modelin eğitim sırasında öğrendikleri ağırlıklarında saklanır; bağlam penceresi ise yalnızca o anki istekte gönderdiklerinizi tutar. RAG'in var olma nedeni de budur: her belgeyi pencereye sığdırmaya çalışmak yerine yalnızca en ilgili parçaları getirir ve bunları bağlama yerleştirir.
Önemli noktalar
- Bağlam penceresi, bir LLM'nin tek istekte işleyebileceği en fazla token sayısıdır.
- Sistem prompt'unu, geçmişi, eklenen belgeleri ve modelin çıktısını içerir.
- LLM'ler durumsuzdur (stateless); bu yüzden sohbet uygulamaları konuşmayı her mesajla yeniden gönderir.
- Daha büyük pencereler daha pahalıdır ve modelin ayrıntılara odaklanmasını zorlaştırabilir.
- RAG ve özetleme, en ilgili bilgiyi pencereye sığdırmaya yardımcı olur.
Örnek
type Message = { role: string; content: string };
const countTokens = (m: Message) => Math.ceil(m.content.length / 4); // rough estimate
// Keep the system prompt plus as many recent messages as fit in the window
function fitToWindow(messages: Message[], maxTokens: number): Message[] {
const [system, ...history] = messages;
let used = countTokens(system);
const kept: Message[] = [];
for (const message of history.reverse()) {
used += countTokens(message);
if (used > maxTokens) break; // older messages no longer fit and are dropped
kept.unshift(message);
}
return [system, ...kept];
}Sık sorulan sorular
Bağlam penceresi aşıldığında ne olur?
İstek ya hata verir ya da uygulama, genellikle en eski mesajları atarak veya özetleyerek içeriği kesmek zorunda kalır. Model dışarıda bırakılan hiçbir şeyi göremez; bu yüzden önceki ayrıntıları kaybedebilir.
Daha büyük bir bağlam penceresi her zaman daha mı iyidir?
Her zaman değil. Daha büyük pencere daha fazla materyal eklemenize izin verir, ancak her istek daha yavaş ve pahalı hale gelir ve modeller çok uzun girdilerdeki ayrıntıları gözden kaçırabilir. Yalnızca en ilgili bilgiyi göndermek çoğu zaman daha iyi yanıtlar verir.
Bağlam penceresi modelin yanıtını da kapsar mı?
Evet. Girdi token'ları ve üretilen çıktı token'ları aynı pencereyi paylaşır; bu yüzden çok uzun bir prompt yanıta daha az yer bırakır. Birçok API ayrıca çıktı token'ları için ayrı bir üst sınır belirler.
İlgili sayfalar
- LLMYapay Zekâ ve Makine Öğrenmesi, s. 28LLM, çok büyük metin yığınlarıyla eğitilmiş ve bir sonraki en olası metin parçasını tekrar tekrar tahmin ederek dil üreten bir makine öğrenmesi modelidir.
- TokenYapay Zekâ ve Makine Öğrenmesi, s. 43Token, bir LLM'nin okuduğu ve ürettiği temel metin birimidir; genellikle bir sözcük, sözcük parçası ya da noktalama işaretidir ve sayısal bir kimliğe eşlenir.
- PromptYapay Zekâ ve Makine Öğrenmesi, s. 35Prompt, bir LLM gibi bir yapay zekâ modeline hangi görevi yapmasını ve nasıl bir yanıt istediğinizi söylemek için verdiğiniz girdi metni ya da yönergelerdir.
- RAGYapay Zekâ ve Makine Öğrenmesi, s. 38RAG, bir LLM'in soru anında getirilen ilgili belgelere dayanarak yanıt vermesini sağlayan ve yanıtları güncel, özel verilere dayandıran bir tekniktir.
- TransformerYapay Zekâ ve Makine Öğrenmesi, s. 45Transformer, bir dizideki her token'ın diğerleriyle ilişkisini attention ile tartan ve çoğu modern LLM'e güç veren bir sinir ağı mimarisidir.
- Context EngineeringYapay Zekâ ve Makine Öğrenmesi, s. 10Context engineering, işi güvenilir biçimde yapabilsin diye LLM'in her çağrıda ne gördüğünü (talimatlar, belgeler, araç sonuçları, geçmiş) seçme pratiğidir.
- ChunkingYapay Zekâ ve Makine Öğrenmesi, s. 9Chunking, uzun belgeleri embedding'e çevrilip saklanmadan önce küçük parçalara böler; böylece bir RAG sistemi yalnızca ilgili kısımları bulup modele iletebilir.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin