Ayrıştırılmış Önceden Doldurma ve Kod Çözme Sunumu
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.
Genel Bakış
It matters because these two phases have opposite hardware appetites, and forcing them onto the same machines wastes capacity and hurts latency.
Derin Dalış
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.
Teknik Bilgi
İki aşama darboğazları bakımından farklılık gösterir. Önceden doldurma, tüm bilgi istemi belirteçlerini paralel olarak işler, böylece FLOP'ları bilgi istemi uzunluğuna göre ölçeklenir ve tensör çekirdeklerini maksimuma çıkarır. Kod çözme otoregresiftir: her yeni belirtecin, HBM'den tam KV önbelleğini yeniden okuyan bir ileri geçişe ihtiyacı vardır, bu nedenle aktarım, hesaplamayla değil bellek bant genişliğiyle kontrol edilir. Ayrıştırma, her havuz için boyutlandırma, toplulaştırma ve hatta farklı paralellik seçerek ve ardından KV önbelleğini ön doldurma çalışanlarından kod çözme çalışanlarına göndererek bundan yararlanır.
Stratejik Etki
Maliyet ve bütçe
Mimari kararlar yıllarca performansı ve işletme maliyetini etkiler.
Daha net kararlar
Teknik eğitim, ekiplerin yalnızca en yenisini değil, doğru yığını seçmesine de yardımcı olur.
Quality control
Daha iyi mühendislik seçenekleri, üretimdeki güvenilirlik olaylarını azaltır.
Ayrıştırılmış Ön Doldurma ve Kod Çözme Hizmetinin Geleceği
Ü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.
Gerçek Dünya Uygulaması
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.
Riskler ve Korkuluklar
Bir kıyaslamayı optimize etmek daha geniş sistem zayıflıklarını gizleyebilir.
Altyapı ve bakım maliyetleri genellikle hafife alınır.
Sistemler karmaşıklaştıkça güvenlik ve gözlemlenebilirlik boşlukları büyüyebilir.
Uygulama Yol Haritası
Uygulamadan önce gecikmeyi, kaliteyi ve maliyet hedeflerini tanımlayın.
Gerçekçi yük ve veri koşulları altında kıyaslama yapın.
Hatalar, sapmalar ve kullanıcı etkisi için cihaz izleme.
Ölçeklendirmeden önce geri alma ve olay müdahale yollarını hazırlayın.
Keşfetmeye Devam Edin
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the Disaggregated Prefill and Decode Serving quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
Next guide
Kubernetes'te KServe ve Model Sunumu
Sık sorulan sorular
What is Disaggregated Prefill and Decode Serving?
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.
Ön doldurma ve kod çözmeyi farklı GPU havuzlarına ayırmanın temel donanım nedeni nedir?
Ö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.
Ön doldurma çalışanlarından kod çözme çalışanlarına hangi veri yapısının aktarılması gerekir?
Ö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 kurulumunda ayrıştırma özellikle hangi sorunu azaltır?
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.
Neden ön dolum agresif bir şekilde gruplandırılabiliyor ama farklı ayarlamalardan elde edilen faydalar çözülebiliyor?
Ö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 önbelleğini ayrıştırılmış havuzlar arasında taşımak için genellikle hangi ara bağlantılar kullanılır?
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.