Skip to content

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
Intermediate

Context 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#

TeknikQuality LossLatency Costİdeal Senaryo
TruncationYüksek0Asla (sadece fail-safe)
Static summaryOrta-Düşük0 (önceden)Knowledge base
Dynamic summaryOrtaYüksek (ekstra LLM call)Multi-turn history
ExtractionDüşük-Orta (yapısal)OrtaQ&A, RAG over docs
Semantic dedupÇok düşükDüşük (embedding)RAG retrieval
LLMLinguaOrta-DüşükYüksekAşı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

Context Compression Teknikleri: Token Küçültme — Şükrü Yusuf KAYA | Prompt Caching & Context Engineering