İçeriğe geç

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 dakikalık okuma
İleri

Multi-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:
  1. Tenant A "[secret_key=ABC]" cache'liyor
  2. 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.
[tenant_id=ABC]
). Cross-tenant cache sharing ekonomik gibi görünür ama timing-based attack riski var.

vLLM ile Multi-Tenant Setup#

python
# Her request tenant_id ile prefix'lensin
def make_tenant_prompt(tenant_id, user_prompt):
return f"[tenant:{tenant_id}]\n\n{user_prompt}"
 
# vLLM'e gönder
def 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...

İlgili İçerikler

Multi-Tenant LLM Cache İzolasyonu — Şükrü Yusuf KAYA | Prompt Caching & Context Engineering