Context Compression: Bilgiyi Küçültme Teknikleri
Bütçe yetmiyor mu? Compression. Summarization, extraction, semantic deduplication ve LLM-based summarization teknikleri. Hangisi ne zaman?
Şükrü Yusuf KAYA
13 min read
IntermediateContext Compression: Bilgiyi Küçültme
Bütçe yetmediği zaman ne yaparsın? Context'i daha akıllı kullan: küçült.
5 ana compression tekniği var. Hepsinin yeri farklı.
1. Truncation (Asla)#
context = context[:50_000] # ilk 50K karakter
Ne zaman: Asla. Bilgi kaybı garanti, cache miss kesin.
Truncation'ın tek geçerli kullanımı: hata durumlarında "fail safe" — kullanıcı 1M token gönderdi, sen 200K'ya kes ve uyar.
2. Summarization#
Uzun metni özetle. İki seviye:
a) Static summarization (önceden hazırla)
# Şirket KB 500K → 50K özet KB_FULL = open("full_kb.txt").read() # 500K KB_SUMMARY = open("kb_summary.txt").read() # 50K (önceden LLM ile özetlendi) # Production'da KB_SUMMARY kullan
Trade-off: Detay kaybı. Çözüm: hybrid — özeti context'e koy, gerektiğinde tool ile full doc'tan çek.
b) Dynamic summarization (runtime'da)
# Conversation 50 turn'e ulaştı def summarize_old_turns(history, keep_last=10): old = history[:-keep_last] new = history[-keep_last:] summary = llm.summarize(old) # küçük model ile özet return [{"role": "system", "content": f"Önceki konuşma özeti: {summary}"}, *new]
Trade-off: Her özetleme LLM call'u = ekstra maliyet.
3. Extraction#
Önemli bilgiyi çıkar, gerisini at.
# 100 sayfalık PDF → 20 madde halinde özetlenmiş bullet list def extract_key_facts(document): response = llm.extract( document, schema={ "key_facts": [{"fact": "string", "source_page": "int"}] } ) return response.key_facts
Ne zaman: Structured tasks (Q&A, classification). Reasoning veya creative gerektiren tasks için risk yüksek (extracted detaylarda bilgi kaybı).
4. Semantic Deduplication#
Tekrar eden bilgiyi çıkar.
# 10 retrieved doc'tan 5'i benzer içeriği tekrarlıyor def dedupe_docs(docs, similarity_threshold=0.85): unique = [] for doc in docs: if not any(similarity(doc, u) > similarity_threshold for u in unique): unique.append(doc) return unique
Ne zaman: RAG retrieval'larında. Vector DB top-K'da benzer doc'lar yaygın (özellikle redundant kaynak verilerde).
5. Compression with Special Models#
LLMLingua, LongLLMLingua gibi modeller var: bir prompt'u "anlamı kaybetmeden" %50-70 daraltır. Microsoft Research'ten.
# pip install llmlingua from llmlingua import PromptCompressor llm_lingua = PromptCompressor() compressed = llm_lingua.compress_prompt( long_context, ratio=0.5, # %50'ye küçült ) # Bu compressed prompt'u Claude'a ver
Trade-off: Ek inference adımı (küçük model). Bazen anlam kaybı.
Compression Karar Matrisi#
| Teknik | Quality Loss | Latency Cost | İdeal Senaryo |
|---|---|---|---|
| Truncation | Yüksek | 0 | Asla (sadece fail-safe) |
| Static summary | Orta-Düşük | 0 (önceden) | Knowledge base |
| Dynamic summary | Orta | Yüksek (ekstra LLM call) | Multi-turn history |
| Extraction | Düşük-Orta (yapısal) | Orta | Q&A, RAG over docs |
| Semantic dedup | Çok düşük | Düşük (embedding) | RAG retrieval |
| LLMLingua | Orta-Düşük | Yüksek | Aşırı uzun context |
Pratik Senaryolar#
Çözüm: Dynamic summarization — ilk 30 turn'ü özetle (~5K token), son 20 turn'ü tut.
Cache impact: Summary stabilize olunca cache yeniden inşa edilir. Periyodik (her 10 turn) yap, daha sık değil.
✓ Pekiştir#
Bir Sonraki Derste#
Modül 5 bitirme sınavı: context engineering'in 7 dersi.
Yorumlar & Soru-Cevap
(0)Yorum yazmak için giriş yap.
Yorumlar yükleniyor...
Related Content
1. Temeller — Context Penceresi Ekonomisi
Bu Eğitim Hakkında ve Prompt Caching Neden Önemli?
Start Learning1. Temeller — Context Penceresi Ekonomisi
Token Ekonomisi 101: Input vs Output Cost Asimetrisi
Start Learning1. Temeller — Context Penceresi Ekonomisi