Bağlam (Context) Sağlama: Tekniği, Tuzakları, Limitleri
Modelin bilmesi gereken arka plan bilgisini nasıl ve nereye yerleştirirsin? Bağlam pencereleri, lost-in-the-middle problemi ve XML/Markdown ayraç teknikleri.
Şükrü Yusuf KAYA
13 dakikalık okuma
BaşlangıçBağlam Sağlama: LLM'in Görüş Alanı
Modelin eğitim verisinde olmayan bilgileri prompt içinde sunmana bağlam (context) denir.
3 ana yöntem:
Bu derste Inline Context'e odaklanıyoruz.
Bağlamı Nereye Yerleştirmeli?#
3 seçenek var:
Sabit, oturum boyunca değişmez bilgi için. Şirket politikası, davranış kuralı, sabit referans dökümanı.
system: "Sen X şirketinin destek asistanısın. İade politikası: 14 gün, kullanılmamış olmalı. İletişim: support@x.com, 0850-XXX-XXXX..."
Anthropic önerisi: Uzun bağlamı prompt'un başında koy, kullanıcı sorusunu sona koy. Bu, modelin "yeni" bilgiyi (soruyu) en iyi hatırladığı yerdir.
Lost-in-the-Middle Problemi#
Uzun bağlamda LLM'ler başı ve sonu çok iyi hatırlar, ortayı kaçırabilir.
Çözümler:#
- Önemli bilgiyi başa veya sona koy
- Açık olarak işaretle: "ÖNEMLİ: ..."
- Her belgeye sıra numarası ver (XML ile)
- Talimatı sonda tekrarla: Uzun bir belge sonrası "Hatırlatma: cevabı JSON formatında ver"
Context Window Limitleri (2026)#
Bağlam Penceresi (Token)#
| Model | Window |
|---|---|
| Claude Opus 4.6 | 1M |
| Claude Sonnet 4.6 | 1M |
| Claude Haiku 4.5 | 200K |
| GPT-5 | 256K |
| GPT-4o | 128K |
| Gemini 2.5 Pro | 2M |
| Llama 4 Behemoth | 128K |
| Mistral Large 3 | 128K |
Pratik Anlam#
- 1 sayfa kitap ≈ 250-500 token
- 1 saatlik podcast transcript ≈ 30K-50K token
- "Savaş ve Barış" tamamı ≈ 600K token
Yani: Claude Sonnet 4.6 tüm Tolstoy romanını tek prompt'ta okuyabilir!
Ama unutma:
- Daha uzun = daha pahalı (token başı ücret)
- Daha uzun = daha yavaş (latans artar)
- Çoğu görev 5K-30K token ile zaten halloluyor
Bağlam Sıkıştırma#
python
# Bağlam ÇOK uzun — sıkıştır# Strateji: özet → soru-cevap import osfrom anthropic import Anthropicfrom dotenv import load_dotenvload_dotenv() client = Anthropic(api_key=os.getenv("ANTHROPIC_API_KEY")) # Aşama 1: Belgeyi özetle (başka bir model çağrısı)def summarize(long_doc: str) -> str: r = client.messages.create( model="claude-haiku-4-5-20251001", max_tokens=500, system="Verilen belgeyi en önemli 5 bullet'ta özetle.", messages=[{"role": "user", "content": long_doc}], ) return r.content[0].text # Aşama 2: Özet üzerinden soru cevapdef ask(summary: str, question: str) -> str: r = client.messages.create( model="claude-haiku-4-5-20251001", max_tokens=500, system="Verilen özet bağlamını kullanarak soruyu cevapla.", messages=[ {"role": "user", "content": f"<context>\n{summary}\n</context>\n\nSoru: {question}"} ], ) return r.content[0].text long_doc = """[Buraya 50 sayfalık belge gelir]Bir e-ticaret şirketinin 2025 yıllık raporu...[uzun metin]""" ozet = summarize(long_doc)print("Özet:", ozet) cevap = ask(ozet, "Şirketin en kârlı kategorisi neydi?")print("Cevap:", cevap) Iki aşamalı sıkıştırma: maliyet ve hız azalır.
Sıkıştırmanın bedeli: Detay kayıp. Eğer cevap belgenin "ortasında" küçük bir not ise özet onu kaçırabilir. Hassas vakalarda RAG (Modül 7) daha iyi.
Sık Sorulan Sorular
Evet ama dikkatli. Maliyet katlanır, latans artar, lost-in-the-middle riski büyür. Çoğu zaman RAG + 30K token bağlam, 1M token bağlamdan daha iyi sonuç verir.
Yorumlar & Soru-Cevap
(0)Yorum yazmak için giriş yap.
Yorumlar yükleniyor...
İlgili İçerikler
1. Temeller — Yapay Zekâ ve LLM'lere Giriş
Bu Eğitim Hakkında ve Verimli Çalışma Yöntemi
Öğrenmeye Başla1. Temeller — Yapay Zekâ ve LLM'lere Giriş
Yapay Zekâ → Üretken AI → LLM: Bağlamsal Harita
Öğrenmeye Başla1. Temeller — Yapay Zekâ ve LLM'lere Giriş