SıradakiSonraki rehber
Kubernetes'te KServe ve Model Sunumu
Teknik
Teknik KILAVUZ
Büyük dil modeli çıkarımını iki ayrı aşamaya (ön doldurma ve kod çözme) bölen ve bunları farklı GPU havuzlarında çalıştıran bir hizmet mimarisi.
Bu kılavuzu dinleyinAI tarafından anlatılan · ~2 min
Bu önemlidir çünkü bu iki aşamanın donanım istekleri birbirine zıttır ve bunları aynı makinelere zorlamak kapasite israfına neden olur ve gecikmeye zarar verir.
Bir LLM cevap verdiğinde iki aşamada çalışır. Önceden doldurma, istemin tamamını bir kerede okur ve anahtar-değer (KV) önbelleğini oluşturur; bu, GPU'nun matematik birimlerini doyuran büyük, paralel, hesaplamaya bağlı bir patlamadır. Decode daha sonra teker teker jetonlar üretir ve her adım KV önbelleğinin tamamını okur; bellek bant genişliğine bağlı, hafif hesaplamalı bir damlamadır. Birlikte çalıştırın, uzun bir ön doldurma herkesin kod çözme işlemini durdurur (satır başı engelleme) ve ikisinin gruplanması parazit yaratır. Ayrıştırma, bir GPU havuzuna önceden doldurma ve diğerinde kod çözme işlemi uygulayarak KV önbelleğini NVLink veya InfiniBand gibi hızlı ara bağlantılar üzerinden aralarında aktarır. Her havuz bağımsız olarak ayarlanıp ölçeklendirilerek iyi girdi iyileştirilir, kuyruk gecikmesi yumuşatılır ve operatörlerin sıkı ilk jetona ulaşma süresi ve çıktı başına jeton süresi hedeflerine aynı anda ulaşmalarına olanak sağlanır.
Bir sohbet asistanı, uzun belge istemlerini işlem ağırlıklı bir ön doldurma kümesine yönlendirir, ardından yazma gecikmesini sorunsuz tutmak için bellek açısından optimize edilmiş bir kod çözme kümesinden yanıtları aktarır.
NVIDIA Dynamo ve vLLM, operatörlerin ayrı ön doldurma ve kod çözme çalışan gruplarını konuşlandırmasına olanak tanır, böylece uzun istemler dizisi devam eden nesilleri dondurmaz.
Mooncake (Moonshot AI'den Kimi tarafından kullanılır) ön doldurma ve kod çözmeyi ayrıştırır ve gereksiz istem yeniden hesaplamasını uygun ölçekte kesmek için dağıtılmış bir KV önbellek havuzu ekler.
Kod tamamlama hizmeti, kısa istemler için küçük bir ön doldurma havuzu ve büyük bir kod çözme havuzu ayırır; çünkü maliyetin çoğu, çok sayıda çıktı jetonunun akışından kaynaklanır.
Üretim yığınlarında ayrıştırmanın varsayılan haline gelmesini bekleyin. DistServe, Splitwise ve Mooncake gibi sistemler bunu popüler hale getirdi ve vLLM ve NVIDIA Dynamo artık ayrıştırılmış modlar sunuyor. Araştırmalar, KV-önbellek aktarım optimizasyonlarını, önbellek havuzu oluşturmayı ve istekler arasında yeniden kullanmayı, değişen trafik altında ön doldurma/kod çözme oranlarının dinamik olarak yeniden dengelenmesini ve ön ek önbelleğe alma ve parçalı ön doldurma ile daha sıkı entegrasyonu teşvik ediyor. Bağlam pencereleri milyonlarca jetona dönüştükçe, uygun maliyetli, düşük gecikmeli hizmet için bu aşamaları ayırmak giderek daha önemli hale geliyor.
Ücretsiz bülten
Hafta içi her sabah sade İngilizce yazılmış, doğrulanmış üç yapay zeka hikayesi. Sonsuza kadar ücretsiz, reklam yok.
Hafta içi her gün bir e-posta. Tek tıklamayla aboneliğinizi iptal edin. Adresinizi asla satmayız veya paylaşmayız.
Kendinizi test edin
Her yanıtla ilgili anında geri bildirim ve bir kursu geçtiğinizde doğrulanabilir bir kimliğe sahip paylaşılabilir bir sertifika.
Ücretsiz AI eğitimini destekleyin. AI Understanding, bir 501(c)(3) kâr amacı gütmeyen kuruluştur; hiçbir zaman reklam yoktur, ödeme duvarı yoktur. Bağış yap
Büyük dil modeli çıkarımını iki ayrı aşamaya (ön doldurma ve kod çözme) bölen ve bunları farklı GPU havuzlarında çalıştıran bir hizmet mimarisi. Bu önemlidir çünkü bu iki aşamanın donanım istekleri birbirine zıttır ve bunları aynı makinelere zorlamak kapasite kaybına neden olur ve gecikmeye zarar verir.
Önceden doldurma, istemin tamamını paralel olarak işler ve bilgi işlemi doyururken kod çözme, her adımda KV önbelleğini okur ve bellek bant genişliğiyle sınırlıdır; ayrı, bağımsız olarak ayarlanmış havuzları haklı çıkaran zıt istekler.
Önceden doldurma, istem için KV önbelleğini oluşturur; kod çözmenin oluşturmaya devam etmesi için bu önbelleğe ihtiyacı vardır, bu nedenle önbellek hızlı bir ara bağlantı üzerinden kod çözme havuzuna gönderilir.
Paylaşılan GPU'larda uzun bir ön doldurma patlaması, devam eden kod çözme adımlarını engelleyebilir; onları ayırmak bu girişimi önler ve kuyruk gecikmesini dengeler.
Önceden doldurma, tüm istem belirteçlerini birlikte işler, böylece daha büyük gruplar tensör çekirdeklerini iyi besler; decode her seferinde bir jeton üretir ve bellek tarafından kontrol edilir, dolayısıyla farklı şekilde ölçeklenir.
KV önbellek aktarımının yeni darboğaz haline gelmemesi için NVLink (düğüm içi) ve InfiniBand (düğümler arası) gibi yüksek bant genişliğine sahip, düşük gecikmeli bağlantılara ihtiyaç vardır.
Öğrenmeye devam et
Bu konu için daha fazla rehber seçildi
SıradakiSonraki rehber
Kubernetes'te KServe ve Model Sunumu
Teknik