Teknik KILAVUZ

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.

2 min readSon güncelleme

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ı

1

Uygulamadan önce gecikmeyi, kaliteyi ve maliyet hedeflerini tanımlayın.

2

Gerçekçi yük ve veri koşulları altında kıyaslama yapın.

3

Hatalar, sapmalar ve kullanıcı etkisi için cihaz izleme.

4

Ö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.

Testi başlat

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.