Bir sohbet asistanına uzun bir konuşmanın ortasında "az önce ne demiştik?" diye sorduğunuzda bazen tam da beklediğiniz cevabı aldığınızı, bazense modelin sanki hiç konuşmamışsınız gibi davrandığını fark etmişsinizdir. Aynı model, aynı gün, aynı konu; ama davranışı bir tuhaf. Bu farkın arkasında modelin "zekâsı" ya da "ruh hali" yok. Arkasında çok daha somut bir şey var: Context Window.
Context Window, bir dil modelinin (LLM) belirli bir anda "görebildiği" ve üzerinde işlem yapabildiği metin penceresidir. Yani modelin size verdiği her cevap, o an bu pencerenin içinde duran kelimelere, cümlelere ve talimatlara bakılarak üretilir. Modelin bir zihni, bir hafızası, bir sezgisi yoktur; onun yerine, bu pencerenin içindeki metin uzayında yakınlık aramaları yaparak bir sonraki kelimeyi tahmin eder.
Başka bir deyişle, bir dil modelinin "zihni" dediğimiz şey büyük ölçüde onun Context Window'udur. Pencere ne kadar taze ve ilgili bilgiyle doluysa model o kadar isabetli konuşur. Pencere kirlendiğinde, dağıldığında ya da alakasız bilgiyle şiştiğinde modelin cevapları da bulanıklaşır.
Model her cevabı üretirken sıfırdan düşünmez; Context Window'un içindeki tüm metne bakar ve "buradaki örüntüye en yakın bir sonraki kelime ne olabilir?" sorusunu tekrar tekrar sorar. Sizin yazdığınız prompt, sistem talimatı, önceki mesajlar, yapıştırdığınız dokümanlar; hepsi bu pencerenin içindedir. Model, penceredeki metin uzayında arama yaparak en yakın olanı seçer ve cevabı kelime kelime üretir (generate eder).
Bu yüzden pencere içindeki her şey eşit derecede önemlidir. Konuşmanın başında verdiğiniz bir rol tanımı, ortada yapıştırdığınız uzun bir log, sonda sorduğunuz basit bir soru; hepsi aynı uzayda yer alır ve birbirini etkiler. Pencereye ne koyarsanız, modelin "o an düşündüğü şey" odur.
Bir başka önemli nokta: Context Window sonsuz değildir. Her modelin belirli bir kapasitesi vardır. Bu kapasite dolduğunda ya en eski mesajlar dışarı düşer ya da modelin yakınlık aramaları giderek zayıflar. "Nerede konuşmuştuk bunu, silmişim galiba" hissi tam olarak buradan gelir.
Üretken yapay zekâyla çalışan herkesin er ya da geç fark ettiği bir gerçek var: Modelin kalitesi sadece modelin kendisine değil, ona ne gösterdiğinize bağlı. Aynı model, kötü kurulmuş bir pencerede sıradan; iyi kurulmuş bir pencerede olağanüstü sonuçlar verebilir.
Bu, özellikle karmaşık işlerde belirgin hale geliyor. Örneğin bir yazılım problemine farklı bakış açılarından yaklaşmak istediğinizi düşünün. Aynı probleme bir yazılım mimarı (architect), bir junior engineer, bir senior engineer ve bir ürün yöneticisi (Product Manager) gözüyle bakmak istiyorsunuz. Tek bir modele bu rolleri sırayla oynatabilirsiniz; ama her rolün gerçekten farklı düşünebilmesi için Context Window'un o role uygun şekilde hazırlanmış olması gerekir. Pencere karışıksa, tüm roller birbirine benzer sesle konuşmaya başlar.
Yani Context Window sadece teknik bir kısıt değil; modelle kurduğunuz iletişimin sahnesi. O sahneyi nasıl kurarsanız, oyun da öyle oynanır.
Aslında bu kavramla farkında olmadan sürekli karşılaşıyorsunuz.
Her birinde model değişmiyor; değişen tek şey, o an modelin "gördüğü" metin.
Rolünüz ne olursa olsun, Context Window'u anlamak sizi yapay zekâ araçlarıyla çalışırken çok farklı bir yere taşır.
Ürün yöneticiyseniz (Product Manager): Ekibinize LLM tabanlı bir özellik tasarlatırken "model ne kadar akıllı?" sorusundan önce "modele ne göstereceğiz, ne kadar göstereceğiz, ne zaman temizleyeceğiz?" sorularını sormanız gerekir. Ürün deneyiminin kalitesi büyük ölçüde bu kararlarla belirlenir.
UX tasarımcısıysanız (UX Designer): Kullanıcının sohbet arayüzünde gördüğü şey ile modelin pencerede gördüğü şey aynı değildir. Kullanıcıya "model şu an neyi hatırlıyor, neyi unuttu, neyi görüyor?" sorularının cevabını hissettirmek, güven veren bir deneyimin temelidir.
Tasarımcıysanız: Prompt yazmayı bir metin işi olarak değil, bir sahne kurma işi olarak düşünün. Modele bir rol veriyorsanız, o rolün bağlamını, kısıtlarını ve amacını aynı pencerede tutmak zorundasınız. Yoksa rol yarım kalır.
Yapay zekâ üzerine çalışıyorsanız: Context Window'u bir "boyut" olarak değil, bir "kaynak" olarak yönetin. Neyin girdiğine, neyin çıktığına, neyin özetlenip neyin ham tutulduğuna dair mimari kararlar, sisteminizin davranışını doğrudan şekillendirir.
Her durumda temel prensip aynı: Modelin size verebileceği en iyi cevap, ona sunduğunuz en iyi pencereyle sınırlıdır.
Bir dil modeliyle çalışırken aslında bir zihinle değil, sürekli yeniden kurulan bir sahneyle konuşuyorsunuz; ve o sahnenin sınırlarını çizen şeyin adı Context Window.
Şimdi elelemlerin şeyi... İşin doğası dediği şey, zihin dediği şey aslında burada. Elelemin bir zihni yok. Elelemin konteks window'u var. Elelem söylediği her şeyi bu Context Window'a giren kelimelere, cümlelere göre belli aramalar yaparak hangisi yakınsa onu teker teker Generate ediyordu. Context Window ne kadar freshse o kadar fresh oluyor.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus sodales leo id commodo ornare.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus sodales leo id commodo ornare.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus sodales leo id commodo ornare.