« Tüm yayınlar

Prefill/Decode Ayrıştırması Kuyruk Ekleyerek Tail Latency'yi Kötüleştirebilir

Prefill/decode ayrıştırması yeni kuyruklar ve KV transfer maliyeti ekleyerek tail latency'yi kötüleştirebilir; kontrol döngüsü yaklaşımı gerekiyor.

Prefill ve decode aşamalarını ayrı GPU havuzlarına bölmek mimari olarak temiz görünür: hesap-yoğun prompt işleme ile bellek bant genişliği-yoğun token üretimi birbirinden bağımsız ölçeklenir. Ancak bu ayrıştırma darboğazı ortadan kaldırmaz, onu routing, prefill kuyruğu, KV transferi ve decode kabul kuyruğu arasına dağıtır. Her aşama kendi panosunda 'başarılı' görünürken kullanıcı TTFT'de bekliyor olabilir.

Temmuz 2026 tarihli bir çalışma, üretim benzeri bir 2-prefill/2-decode A100 kurulumunda prefill yürütmesinin P95 TTFT'nin yalnızca %2-23'ünü oluşturduğunu, kalanının kuyruklama ve düğümler arası KV transferi olduğunu gösteriyor. Statik faz oranları, gerçek trafiğin ağır kuyruklu (heavy-tailed) doğasıyla çakışınca atıl kapasiteye yol açıyor.

Çözüm önerileri arasında koşullu deflection (decode düğümlerinin uygun durumda prefill parçaları işlemesi), Lynx'in kademeli KV transferi (tüm baytları beklemeden spekülatif decode başlatma) ve SpectrumKV gibi model bağımlı sıkıştırma politikaları yer alıyor. Router'ın en kısa kuyruk yerine tahmini tamamlanma süresine göre yönlendirme yapması, TTFT'yi optimize ederken TPOT'u koruyacak ayrı SLO'ların izlenmesi kritik.

Sonuç: ayrıştırma tek seferlik bir topoloji kararı değil, gözlem-tahmin-yerleştirme-doğrulama-adaptasyon döngüsü olarak yönetilmeli. Ölçüm her GPU havuzunun sınırında durursa, mimari optimize edilirken kullanıcı deneyimi kaybedilir.