Multi-Tenant Cache: İzolasyon ve Paylaşım Stratejileri
Self-hosted bir LLM service'i 100 farklı şirkete hizmet veriyor. Her şirketin kendi context'i, ama altta paylaşılan model. Cache izolasyonu nasıl?
Şükrü Yusuf KAYA
12 min read
AdvancedMulti-Tenant: 100 Şirkete Tek Model
SaaS LLM service: 100 farklı şirket aynı vLLM cluster'ı kullanıyor. Her şirketin kendi system prompt'u, kendi knowledge base'i, kendi kullanıcıları var.
Sorular:
- Bir şirketin cache'i diğerinin cache'iyle karışabilir mi? (security)
- Cross-tenant prefix sharing mümkün mü? (efficiency)
Cache Pool Stratejileri#
Her tenant kendi cache pool'u. Karışma yok.
Tenant A → Cache Pool A Tenant B → Cache Pool B
Avantaj: Tam izolasyon, security garantili.
Dezavantaj: Bellek verimsizliği; benzer prompt'lar duplicate cache.
Güvenlik: Cache'te Leak Riski Var Mı?#
Modül 2 Ders 10'da kanıtladık: cache lossless ve deterministik. Cache hit'te modelin gördüğü prefix bir önceki istekteki prefix ile aynı bytes.
Tehdit modeli:
- Tenant A "[secret_key=ABC]" cache'liyor
- Tenant B "[secret_key=" prefix'ini deneyip cache hit gözlemliyorsa, secret'ı çıkarabilir mi?
Cevap: Hayır, eğer:
- API tenant_id'yi prepend ediyorsa (prefix tenant'a özel)
- Cache pool tenant başına ayrı
- Side-channel attacks (latency timing) önlenmişse
Cevap evet, eğer:
- Naive shared pool kullanıyorsan
- Latency observation ile cache hit/miss tespit edilebiliyorsa
Güvenlik Best Practice
Multi-tenant LLM service'i kurarken prefix tenant ile başlasın (örn. ). Cross-tenant cache sharing ekonomik gibi görünür ama timing-based attack riski var.
[tenant_id=ABC]vLLM ile Multi-Tenant Setup#
python
# Her request tenant_id ile prefix'lensindef make_tenant_prompt(tenant_id, user_prompt): return f"[tenant:{tenant_id}]\n\n{user_prompt}" # vLLM'e gönderdef query(tenant_id, user_msg): return client.chat.completions.create( model="llama-3-8b", messages=[ {"role": "system", "content": make_tenant_prompt(tenant_id, SYSTEM)}, {"role": "user", "content": user_msg} ], )Tenant-prefixed prompts
Provider'lara Kıyasla#
Anthropic, OpenAI, Gemini'de cache per-org izole. Sen sadece kendi org'unun cache'ini hit edebilirsin. Cross-org leak provider tarafında engellenmiş.
Self-hosted'da bu izolasyonu sen sağlamalısın. Üstüne audit logging ekle: hangi tenant ne kadar cache kullandı.
✓ Pekiştir#
Bir Sonraki Derste#
GPU memory ekonomisi: cache vs throughput tradeoff'u.
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