Ultralytics YOLO27: Bekleme listesine katıl.
YOLO'yu lisansla
Ultralytics Sözlüğüne dön

Prompt Caching

İstem önbellekleme, bir LLM'nin tekrarlanan istem öneki için hesapladığı anahtar-değer durumlarını yeniden kullanır; böylece sonraki istekler bu hesaplamayı atlar ve daha az maliyetli olur.

Önek önbelleğe alma olarak da adlandırılan istem önbelleğe alma, bir büyük dil modelinin (LLM) istemin başlangıcı için hesapladığı ara sonuçları saklar ve metni tamamen aynı olan bir önekle başlayan sonraki isteklerde yeniden kullanır. Sistem istemi, araç tanımları, örnekler kümesi, uzun bir belge veya o ana kadarki konuşma geçmişi gibi uzun ve değişmeyen bir önek, ardından da kısa ve yeni bir bölüm içeren çok sayıda istek vardır. Önbellek isabetinde sunucu yalnızca yeni tokenları işler; bu da ilk çıktı tokenına kadar geçen süreyi kısaltır ve barındırılan API'lerde önbelleğe alınmış girdinin fiyatını normal ücretin bir bölümüne düşürür.

İstem Önbelleğe Alma Nasıl Çalışır?#

Bir transformer LLM iki aşamada yanıt verir. Ön doldurma aşamasında her katman, her istem tokenı için bir anahtar ve değer vektörü hesaplar; kod çözme aşamasında üretilen her yeni token, dikkat mekanizması aracılığıyla tüm bu anahtar ve değerlere dikkat eder. KV önbelleği, üretilen her tokenın istemi yeniden hesaplamaması için bu tensörleri aynı istek içinde saklar. İstem önbelleğe alma ise bunları istekler arasında saklar. Bu modellerde dikkat nedensel olduğundan, bir tokenın anahtarları ve değerleri yalnızca kendisinden önceki tokenlara bağlıdır; dolayısıyla aynı öneke sahip iki istemin o önek için anahtarları ve değerleri aynıdır ve yeniden hesaplama yerine saklanan kopya kullanılabilir.

Aşağıdaki örnek, Hugging Face Transformers'tan GPT-2 ile yeniden kullanımı gösteriyor. Örnek, 409 tokenlık bir sistem istemini bir kez önceden dolduruyor, ardından önbelleğe alınmış önekin üzerine yalnızca iki sorunun kendi tokenlarını çalıştırarak yanıt veriyor ve sonucu her şeyi baştan hesaplamayla karşılaştırıyor:

import copy

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("gpt2")
model = AutoModelForCausalLM.from_pretrained("gpt2")

# A long system prompt shared by every request, followed by different user questions
system = "You answer questions about a camera store. " + "Returns are accepted within 30 days with a receipt. " * 40
questions = [" Question: Can I return a lens?", " Question: Do you ship abroad?"]
prefix_ids = tokenizer(system, return_tensors="pt").input_ids

with torch.no_grad():
    # Prefill the shared prefix once and keep its key-value cache
    prefix_cache = model(prefix_ids).past_key_values
    for question in questions:
        ids = tokenizer(question, return_tensors="pt").input_ids
        # Cache hit: only the question's tokens run through the model
        cached = model(ids, past_key_values=copy.deepcopy(prefix_cache)).logits[0, -1]
        # No cache: the whole prompt is computed from scratch
        full = model(torch.cat([prefix_ids, ids], dim=1)).logits[0, -1]
        same = torch.allclose(cached, full, atol=1e-3)
        print(f"Computed {ids.shape[1]} of {prefix_ids.shape[1] + ids.shape[1]} tokens, same next-token scores: {same}")

Computed 8 of 417 tokens, same next-token scores: True ve Computed 7 of 416 tokens, same next-token scores: True çıktısını yazdırıyor: her istek, isteminin %2'sinden azını modelden geçirdi ve tüm hesaplamanın ürettiğiyle aynı sonraki token puanlarını aldı.

Açık kaynaklı model sunumu motorları bu işlemi otomatik olarak uygular. vLLM, KV önbelleğini PagedAttention belleğinin düzeni olan sabit boyutlu bloklarda tutar; her yeni istek için eşleşen en uzun önekin bloklarını yeniden kullanır ve GPU belleği azaldığında en uzun süredir kullanılmayan blokları çıkarır. SGLang'ın RadixAttention özelliği, önbelleğe alınan önekleri bir radix ağacında tutar; böylece ortak başlangıç bölümü olan istekler bu bölümü yeniden kullanabilir. SGLang makalesi, diğer en gelişmiş çıkarım motorlarına kıyasla 6,4 kata kadar daha yüksek iş hacmi bildiriyor. In Gim ve çalışma arkadaşlarının MLSys 2024'te sunduğu Prompt Cache makalesi, yeniden kullanımı tam eşleşen öneklerin ötesine, şablonlar ve belgeler gibi tanımlı istem modüllerine genişletiyor; ilk tokena kadar geçen sürede GPU'da 8 kattan CPU'da 60 kata kadar düşüş bildiriyor.

LLM API'lerinde İstem Önbelleğe Alma#

Barındırılan API'ler aynı mekanizmayı ücret karşılığında sunar. OpenAI'ın istem önbelleğe alma özelliği desteklenen modellerde varsayılan olarak açıktır; Anthropic'in Claude istem önbelleğe alma özelliğiyse istek başına bir kez veya en fazla dört içerik bloğunda kullanılabilen cache_control alanıyla etkinleştirilir. Anthropic, önbellek okumalarını temel girdi fiyatının onda biri veya daha düşük bir fiyattan; varsayılan beş dakikalık önbelleğe yazmayıysa temel fiyatın 1,25 katından ücretlendirir ve her isabet beş dakikalık ömrü sıfırlar. Her iki sağlayıcı da yalnızca tamamen aynı öneki eşleştirir: Anthropic önce araçları, ardından sistem istemini, sonra da mesajları karşılaştırır; bu nedenle bir araç tanımını düzenlemek, ondan sonra önbelleğe alınan her şeyi geçersiz kılar. OpenAI'ın kılavuzu da sabit yönergeleri ve başvuru materyallerini başa, kullanıcıya özel ayrıntıları sona koymayı önerir.

Uzun ve ortak önekleri olan iş yükleri en çok kazanç sağlar:

  • Yapay zekâ ajanları: Her adımda araç tanımlarını ve önceki adımın istemiyle en son eylemi ve sonucunu içeren konuşma geçmişinin tamamını yeniden gönderir.
  • Sohbet botları: Bir konuşmadaki her tur, önceki turun istemini genişletir; bu nedenle geçmiş yeni mesaja kadar önbelleğe alınır.
  • Belge soru yanıtlama: Tek bir uzun sözleşme, rapor veya depoyla ilgili birçok soru işlenmiş belgeyi yeniden kullanır; bilgi erişim hatları da aynı bölümler yeniden getirildiğinde bu belgeyi tekrar kullanır.
  • Az örnekli istemler: Sabit onlarca örnek bir kez hesaplanır ve her girdi için yeniden kullanılır.

Açık sözcük dağarcıklı görsel modeller, istem hesaplamasını benzer şekilde yeniden kullanır. Ultralytics YOLOE, "forklift" gibi sınıf istemlerini bir kez, set_classes() çağrıldığında MobileCLIP metin kodlayıcısı ile kodlar ve ortaya çıkan gömüleri modelde saklar; böylece sonraki tahminlerde metin kodlayıcıyı tamamen atlar. save_prompt_embeddings() ise bunları, sonraki bir oturumun kodlayıcıyı yeniden çalıştırmak yerine load_prompt_embeddings() ile yüklediği bir NPZ dosyasına yazar.

  • KV önbelleği: Tek bir üretimdeki belirteçler arasında anahtarları ve değerleri yeniden kullanır. İstem önbelleğe alma ise bunları ayrı istekler arasında yeniden kullanır.
  • Anlamsal önbelleğe alma: Tüm yanıtları saklar ve yeni bir sorgu daha önceki bir sorguyla aynı anlama geldiğinde yanıtı döndürerek modeli tamamen atlar. İstem önbelleğe alma, istemin yeni kısmında modeli çalıştırmaya ve yeni bir yanıt üretmeye devam eder.
  • İstem sıkıştırma: İstemin kendisini kısaltır; bu nedenle her istekle değişen metinler için uygundur. İki yöntem birlikte iyi çalışır: İstemin sabit kısmı önbelleğe alınırken değişken kısmı sıkıştırılır.
  • İstem mühendisliği: İstemin ne söyleyeceğine karar verir. Önbelleğe alma yalnızca sunucunun istemin ne kadarını yeniden hesaplayacağını değiştirir; önbellek isabeti, kayan nokta yuvarlaması dışında sonraki belirteç puanlarını değiştirmez.

Çözümleri keşfet

Sporda bilgisayarlı görü

Sporda bilgisayarlı görü

Ultralytics YOLO'nun oyuncu ve top takibi, performans analitiği, antrenörlük içgörüleri ve sporcu rehabilitasyonuyla spor alanında görsel yapay zekâyı nasıl güçlendirdiğini keşfet.
Daha fazla bilgi edin
Hava görüntüleri için bilgisayarlı görü

Hava görüntüleri için bilgisayarlı görü

İHA ve hava görüntülerini Ultralytics YOLO ile tarım, su ürünleri yetiştiriciliği, koruma çalışmaları ve jeo-uzamsal analiz için gerçek zamanlı içgörülere dönüştür.
Daha fazla bilgi edin
Havacılıkta bilgisayarlı görü

Havacılıkta bilgisayarlı görü

Uçak denetimi, pistteki yabancı madde tespiti, havaalanı yer operasyonları ve kompozit malzeme kusurlarının tespiti için Ultralytics YOLO ile havacılık ve uzay sektöründe bilgisayarlı görü uygula.
Daha fazla bilgi edin
Güvenlikte bilgisayarlı görü

Güvenlikte bilgisayarlı görü

Ultralytics YOLO modelleriyle her sahayı koru. Görsel yapay zekâ; çevre izleme, tehdit tespiti, plaka tanıma ve iş yeri güvenliğini destekler.
Daha fazla bilgi edin
Robotikte bilgisayarlı görü

Robotikte bilgisayarlı görü

Ultralytics YOLO modelleriyle daha akıllı makinelere güç ver. Robotikte görsel yapay zekâ; otonom navigasyonu, algılamayı, nesne takibini ve gerçek zamanlı kontrolü destekler.
Daha fazla bilgi edin
Lojistikte bilgisayarlı görü

Lojistikte bilgisayarlı görü

Ultralytics YOLO modelleriyle lojistiği kolaylaştır. Görüntü yapay zekâsı; paket denetimini, ayrıştırmayı, araç takibini ve gerçek zamanlı depo güvenliği izlemeyi mümkün kılar.
Daha fazla bilgi edin
Perakendede bilgisayarlı görü

Perakendede bilgisayarlı görü

Ultralytics YOLO modelleriyle perakendeyi yeniden tasarla. Görüntü yapay zekâsı; envanter takibini, raf izlemeyi, kuyruk yönetimini ve daha kapsamlı müşteri analizlerini mümkün kılar.
Daha fazla bilgi edin
Sağlık hizmetlerinde bilgisayarlı görü

Sağlık hizmetlerinde bilgisayarlı görü

Ultralytics YOLO modelleriyle sağlık çözümleri geliştir. Sağlık hizmetlerinde görüntü yapay zekâsı; daha hızlı tıbbi görüntüleme, daha akıllı tanı ve hasta takibini mümkün kılar.
Daha fazla bilgi edin
Üretimde bilgisayarlı görü

Üretimde bilgisayarlı görü

Ultralytics YOLO modelleriyle üretimi optimize et. Görsel yapay zekâ; kalite kontrolünü, kusur tespitini, kişisel koruyucu donanım uyumunu ve montaj hattı otomasyonunu destekler.
Daha fazla bilgi edin
Otomotivde bilgisayarlı görü

Otomotivde bilgisayarlı görü

Ultralytics YOLO modelleriyle otomotivde bilgisayarlı görüden yararlan. Görsel yapay zekâ; daha akıllı yollar için yol güvenliğini, sürüş desteğini ve araç otomasyonunu ileri taşır.
Daha fazla bilgi edin
Tarımda bilgisayarlı görü

Tarımda bilgisayarlı görü

Ultralytics YOLO modelleriyle akıllı tarıma görüntü yapay zekâsı kazandır. Daha yüksek ve akıllı verim için mahsul izleme, hayvan takibi ve hassas tarımı destekle.
Daha fazla bilgi edin

Geleceğin yapay zekasını birlikte inşa edelim!

Makine öğreniminin geleceğine yolculuğuna başla