Yolo Vision Shenzhen
Shenzhen
Şimdi katılın
Sözlük

KV Önbelleği

KV Cache'in LLM gibi Transformer modellerini nasıl optimize ettiğini keşfedin. Bu tekniğin Ultralytics için çıkarım gecikmesini nasıl azalttığını ve verimliliği nasıl artırdığını öğrenin.

KV Önbelleği (Anahtar-Değer Önbelleği), öncelikle Büyük Dil Modelleri (LLM'ler) ve diğer Transformer tabanlı mimarilerde çıkarım gecikmesini hızlandırmak ve hesaplama maliyetlerini azaltmak için kullanılan kritik bir optimizasyon tekniğidir. Temelinde, KV önbelleği, dikkat mekanizması tarafından oluşturulan Anahtar ve Değer matrislerini depolar. Bu ara hesaplamaları kaydederek, model her yeni token oluşturduğunda konuşmanın tüm geçmişi için dikkat durumlarını yeniden hesaplamaktan kaçınır. Bu süreç, metin oluşturmayı metin üretme iş akışını kuadratik karmaşıklıkta bir işlemden doğrusal bir işleme dönüştürerek, sohbet robotları ve AI ajanlarıyla ile gerçek zamanlı etkileşimleri mümkün kılar.

Mekanizma ve Avantajlar

Standart bir Transformer modelinde, bir sonraki kelimeyi üretmek için bağlamı anlamak üzere önceki tüm kelimelere dikkat etmek gerekir. Önbellekleme olmadan, model her adımda tüm dizinin matematiksel ilişkilerini yeniden hesaplamak zorunda kalır. KV önbelleği bunu bir bellek bankası görevi görerek çözer.

  • Hız Artışı: Önceden hesaplanmış anahtarları ve değerleri bellekten geri getirerek, sistem çıkarım motorunu çıkarım motorunu. Bu, gerçek zamanlı çıkarım gibi uygulamalar için çok önemlidir. müşteri hizmetleri botları.
  • Kaynak Verimliliği: Bellek kullanımını (VRAM) artırırken, token başına gereken hesaplama (FLOP) miktarını önemli ölçüde azaltır. Bu dengeleme genellikle model niceleme veya sayfalama gibi tekniklerle yönetilir. Bu, işletim sistemlerinin RAM'i yönetme şekline benzer.
  • Genişletilmiş Bağlam: KV önbelleğinin verimli yönetimi, modellerin daha büyük bir bağlam penceresini işleyebilmesini sağlar. bağlam penceresiniişleyebilmelerini ve böylece uzun belgeleri işleyebilmelerini veya uzun süreler boyunca tutarlı konuşmalar sürdürebilmelerini sağlar.

Gerçek Dünya Uygulamaları

KV önbelleği, modern üretken yapay zeka uygulamalarının temel bileşenlerinden biridir, ancak ilkeleri aynı zamanda bilgisayar görme (CV).

  1. Üretken Sohbet Robotları: ChatGPT veya Claude KV önbelleklemeye büyük ölçüde dayanır. Bir kullanıcı bir takip sorusu sorduğunda, model tüm sohbet geçmişini baştan tekrar okumaz. Bunun yerine, yeni girişi önceki turun önbelleğe alınmış durumlarına ekler ve neredeyse anında yanıtlar verir.
  2. Video Anlama: video anlama görevlerinde, modeller kareleri sırayla işler. Metin belirteçlerine benzer şekilde, geçmiş karelerden alınan görsel özellikler, modelin tüm video geçmişini yeniden işlemeksizin track veya eylemleri tanımasına yardımcı olmak için önbelleğe alınabilir. Bu, özellikle eylem tanıma için önemlidir. eylem tanıma için önemlidir çünkü

Verimli Bellek Yönetimi

Modeller büyüdükçe, KV önbelleğinin boyutu bir darboğaz haline gelebilir ve gigabaytlarca GPU tüketebilir. Son gelişmeler, bu depolamayı optimize etmeye odaklanmaktadır.

  • PagedAttention: İşletim sistemlerindeki sanal bellekten esinlenerek, PagedAttention (vLLM tarafından tanıtılan) KV önbelleğinin bitişik olmayan bellek bloklarında depolanmasına olanak tanır. Bu, parçalanmayı azaltır ve model model sunumu.
  • KV Önbellek Niceleme: Yer kazanmak için, geliştiriciler genellikle karışık hassasiyet veya int8 kuantizasyonu uygularlar. Bu, bellek ayak izini azaltarak sınır AI cihazların yetenekli modelleri çalıştırmasına olanak tanır.
  • Hızlı Önbellekleme: Statik bir sistem komut isteminin KV durumlarının (örneğin, "Sen yardımcı bir kodlama asistanısın") bir kez hesaplanıp birçok farklı kullanıcı oturumunda yeniden kullanıldığı ilgili bir teknik. Bu, hızlı mühendisliği optimize etmek için temel bir özelliktir komut mühendisliği iş akışlarını büyük ölçekte

İlgili Kavramları Ayırt Etme

KV Cache'yi diğer önbellekleme ve optimizasyon terimlerinden ayırmak faydalıdır:

  • KV Önbelleği ve Hızlı Önbellekleme: KV Önbelleği genellikle tek bir nesil akışı sırasında kullanılan dinamik, belirteç bazlı belleği ifade eder. Hızlı önbellekleme ise, birden fazla bağımsız çıkarım çağrısında yeniden kullanılmak üzere sabit bir giriş talimatının işlenmiş durumunun depolanmasını ifade eder .
  • KV Önbellek ve Gömme: Gömme, anlamsal anlamı yakalayan giriş verilerinin (metin veya görüntüler) vektör temsilidir. KV önbellek, özellikle dizi oluşturma amacıyla, dikkat katmanları içinde bu gömmelerden türetilen etkinleştirmeleri (anahtarlar ve değerler) depolar.
  • KV Önbellek ve Model Ağırlıkları: Model ağırlıkları, sinir ağının statik, öğrenilmiş parametreleridir. KV önbellek, belirli bir girdi dizisinin ileri geçişi sırasında oluşturulan dinamik, geçici verilerden oluşur .

Örnek: Vizyon Modellerinde Bağlam

KV önbellekleme NLP'de en çok bilinen kavram olsa da, durumun korunması kavramı gelişmiş görme modellerine de uygulanır. Aşağıdaki örnekte, Ultralytics kullanarak durum (bağlam) aktarımı fikrini simüle ediyoruz. Burada izleyici, nesnelerin kimliğini kareler arasında korur; bu, önbelleğin bağlamı belirli bir süre boyunca korumasına benzer bir kavramdır.

from ultralytics import YOLO

# Load the Ultralytics YOLO26 model
model = YOLO("yolo26n.pt")

# Track objects in a video, maintaining identity state across frames
# The 'track' mode effectively caches object features to link detections
results = model.track(source="https://ultralytics.com/images/bus.jpg", show=False)

# Print the ID of the tracked objects
if results[0].boxes.id is not None:
    print(f"Tracked IDs: {results[0].boxes.id.numpy()}")

Veri kümelerini yönetmek ve optimize edilmiş modeller dağıtmak isteyen geliştiriciler, Ultralytics kullanabilirler. Bu platform, veri etiketlemeden verimli model dağıtımına. Dikkatin daha derin mekanizmalarıyla ilgilenenler için, PyTorch gibi kütüphaneler, bu önbellekleme mekanizmalarının uygulandığı temel yapı taşlarını sağlar.

Ultralytics topluluğuna katılın

Yapay zekanın geleceğine katılın. Küresel yenilikçilerle bağlantı kurun, işbirliği yapın ve birlikte büyüyün

Şimdi katılın