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.

Bu kılavuzu dinleyinAI tarafından anlatılan · ~2 min

Bu sayfada2 dakika okuma
  1. Genel Bakış
  2. Derin Dalış
  3. Gerçek Dünya Uygulaması
  4. Ayrıştırılmış Ön Doldurma ve Kod Çözme Hizmetinin Geleceği
  5. Uygulamaya koymak
  6. Keşfetmeye Devam Edin
  7. Sık sorulan sorular

Genel Bakış

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.

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.

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.

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.

Uygulamaya koymak

Neden önemli?

  • 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.
  • Kalite kontrolü. Daha iyi mühendislik seçenekleri, üretimdeki güvenilirlik olaylarını azaltır.

Dikkat edin

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

Sonraki adımlar

  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

Ücretsiz bülten

Günlük AI brifingini alın

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

Take the Disaggregated Prefill and Decode Serving quiz

Her yanıtla ilgili anında geri bildirim ve bir kursu geçtiğinizde doğrulanabilir bir kimliğe sahip paylaşılabilir bir sertifika.

Testi başlat

Ü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

Sık sorulan sorular

Ayrıştırılmış Önceden Doldurma ve Kod Çözme Sunumu Nedir?

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.