Semantic Caching
Anlamsal önbellekleme, yeni bir sorgu öncekilerle aynı anlama geldiğinde saklanmış bir LLM yanıtını döndürür; gömmeleri eşleştirerek model çağrılarını atlar ve maliyeti düşürür.
Anlamsal önbellekleme, bir büyük dil modelinin (LLM) veya başka bir üretici modelin yanıtlarını saklar ve ifade biçimi farklı olsa bile önceki bir istekle aynı anlama gelen yeni isteklerde bu yanıtları yeniden kullanır. Önbellek her istemi bir gömüme dönüştürür, en benzer saklanmış istemi bulur ve benzerlik bir eşiği geçtiğinde kayıtlı yanıtı döndürür. Önbellek isabetinde model hiç çağrılmaz; böylece gecikme milisaniyelere düşer ve istek hiçbir token tüketmez. Eşleştirme anlama dayandığı için "Parolamı unuttum" ve "Parolamı nasıl sıfırlarım?" aynı yanıtı kullanabilir; istem metnini anahtar olarak kullanan tam eşleşmeli bir önbelleğin ise bu yanıtı iki kez saklaması gerekirdi. Zilliz, 2023'te bu yaklaşım için açık kaynaklı GPTCache kütüphanesini yayımladı. Vektör veri tabanları ve API ağ geçitleri artık bu özelliği yerleşik olarak sunuyor.
Anlamsal Önbellek Nasıl Çalışır#
Bir cümle gömme modeli gelen istemi kodlar ve vektör araması, genellikle kosinüs benzerliği kullanarak daha önce yanıtlanmış istemlerin gömümleriyle karşılaştırır. Küçük önbellekler belleğe sığar; büyükler ise yaklaşık en yakın komşu dizinine sahip bir vektör veri tabanında tutulur. Önbellek isabet etmediğinde model yeni bir yanıt üretir ve yeni istemin gömümüyle yanıt birlikte, genellikle bir sona erme süresiyle saklanır.
Önbellek anahtarı, doğru yanıtı değiştiren diğer tüm öğeleri kapsamalıdır. Farklı bir sistem istemi, model sürümü, kullanıcı izin düzeyi veya geri getirilen belge kümesiyle oluşturulan yanıtlar ayrı kapsamlar altında saklanır; böylece bir müşterinin önbelleğe alınmış yanıtı başka bir müşteriye asla sunulmaz. Güncellik de aynı özeni gerektirir: Bir fiyat, politika veya kaynak belge değiştiğinde eski sürümle oluşturulmuş kayıtlar yeni istemlerle eşleşmeye devam eder. Bu nedenle her kayıt için bir yaşam süresi belirlenir ve kaynak verileri değiştiğinde ilgili kapsam temizlenir.
Benzerlik Eşiğini Seçme#
Eşik, iki istemin aynı yanıtı paylaşmaya devam edebileceği farklılık miktarını belirler. Bu örnek, üç kayıtlı bir önbellekte kodlayıcı olarak Sentence Transformers içindeki all-MiniLM-L6-v2 modelini kullanıyor:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("all-MiniLM-L6-v2")
# Earlier prompts whose answers are already stored in the cache
cached = ["How do I reset my password?", "What are your opening hours?", "How do I cancel my subscription?"]
cached_embeddings = model.encode(cached)
# Each new prompt reuses the closest cached answer if it clears the threshold
queries = ["I forgot my password, how can I change it?", "When does the store open?", "How do I cancel my order?"]
for query in queries:
query_embedding = model.encode(query)
scores = model.similarity(query_embedding, cached_embeddings)[0]
best = scores.argmax().item()
status = "hit" if scores[best] >= 0.7 else "miss"
print(f"{query} -> {cached[best]} ({scores[best]:.2f}, {status})")Parola sorusunun farklı ifadesi 0.89 puan alır ve doğru bir isabet oluşturur. Açılış saatleri sorusunun farklı ifadesi yalnızca 0.61 puan alır ve eşleşmez. "Siparişimi nasıl iptal ederim?" sorusu, "Aboneliğimi nasıl iptal ederim?" sorusuna karşı 0.71 puan alır ve yanlış yönergeleri döndürür. Gömme benzerliği ortak sözcükleri ve konuyu ölçtüğünden, tek bir eşik bu üç durumu birbirinden ayıramaz. Üretim önbellekleri bu açığı, kodlayıcıyı kendi trafiklerinden alınan farklı ifadeli soru çiftleriyle ince ayar yaparak, kategori başına eşik belirleyerek veya önbelleğe alınmış yanıt sunulmadan önce her aday isabeti iki istemi birlikte puanlayan bir yeniden sıralayıcıya göndererek daraltır.
Anlamsal Önbelleklemenin Kullanım Alanları#
Anlamsal önbellekleme, çok sayıda kullanıcının aynı soruları sorduğu ve yanıtların yavaş değiştiği destek sohbet botları, şirket içi yardım masaları ve kararlı belgeler üzerinde çalışan geri getirmeyle zenginleştirilmiş üretim (RAG) asistanları gibi alanlarda yarar sağlar. Kişiselleştirilmiş, zamana duyarlı veya yaratıcı istekler ise yeniden kullanılan bir yanıt onlar için yanlış ya da tekrarlı olacağından fazla yarar sağlamaz.
LLM sunumunda kullanılan diğer iki önbellek farklı katmanlarda çalışır:
- İstem önbellekleme: Model sunucusu, aynen tekrarlanan bir istem önekinin hesaplanmış durumlarını saklayarak ön doldurma aşamasını kısaltır; model yine de yeni bir yanıt üretir.
- KV önbelleği: Daha önceki token'ların anahtarları ve değerleri tek bir üretim boyunca tutulur; böylece her yeni token için bunları yeniden hesaplamak gerekmez.
Anlamsal arama, bir sorgu için belgeleri geri getirmek üzere aynı gömme aramasını kullanır; anlamsal önbellek ise tamamlanmış yanıtları geri getirir. Bu işlem çoğu zaman uygulamalarla model sağlayıcıları arasında yer alan bir yapay zekâ ağ geçidinin içinde yapılır.
Görüntüler de aynı şekilde önbellek anahtarı olabilir. Ultralytics YOLO'daki embed(), her görüntü için bir özellik vektörü döndürür. Böylece görüntü sınıflandırma için eğitilmiş bir YOLO26 modeli, birbirine çok benzeyen kamera karelerinin bir görüntü-dil modelinin önceki açıklamasını yeniden kullanmasını sağlayan arama anahtarını sunabilir.










