Makale Bülteni — DistServe
Prefill ve decode aşamalarını ayrı GPU kümelerine dağıtarak karşılıklı kaynak parazitini önleyen ve sunucu kapasitesini dört katına çıkaran mimari analizi.
Pekin Üniversitesi, StepFun ve UCSD araştırmacıları tarafından USENIX OSDI 2024’te yayımlanan “DistServe: Disaggregating Prefill and Decoding for Goodput-optimized Large Language Model Serving” başlıklı akademik makale, büyük dil modellerinin üretim altyapısındaki en büyük kaynak çatışmasına kökten bir sistem çözümü getiriyor1. Pratikte bu araştırma, aynı GPU üzerinde hem yoğun istem işleme (prefill) hem de kelime kelime metin akıtma (decode) yapmaya çalışırken iki aşamanın birbirinin ayağına basması krizine son veriyor. Hesaplama yoğun prefill havuzları ile bellek bant genişliği yoğun decode havuzlarını fiziksel olarak farklı sunuculara ayırıp aralarında yüksek hızlı KV önbellek aktarımı kurarak, katı hizmet seviyesi hedeflerinde (SLO) sunucu kapasitesini katlamayı başarıyor.
Akademik teorinin ötesinde kurumsal ölçekteki kıyaslama tablolarına baktığımızda ortaya çıkan verimlilik artışı oldukça etkileyicidir. Makale, vLLM ve Sarathi gibi modern birleşik motorlara kıyasla sıkı gecikme sınırları altında 4,48 kata varan kapasite (goodput) artışı ve %90 daha düşük P99 gecikme vadederken, bu ölçümler doğrudan kurumsal veri merkezi donanımı olan NVIDIA A100-80GB GPU kümeleri üzerinde kanıtlanmış durumda. Açık kaynak kod cephesinde ise LLMServe/DistServe resmi deposunda son commit 6 ay önce, OSDI 2024 teyitli ve 16 açık issue ile vLLM ve SGLang projelerinin bugünkü ayrıştırılmış servis mimarilerine yön veren çalışan bir referans altyapı yer alıyor2.
İddia ve Gerçeklik: DistServe
Büyük dil modellerinde çıkarım süreci taban tabana zıt iki fiziksel davranış sergiler. İlk aşama olan prefill, hesaplama gücüne (compute-bound) kilitlidir ve GPU tensör çekirdeklerini tam kapasite doyurur. İkinci aşama olan decode ise her adımda tek bir token ürettiği için bellek bant genişliğine (memory-bound) kilitlidir ve tensör çekirdeklerini boşta bırakır. Geleneksel sistemlerde bu iki süreç aynı GPU üzerinde bir arada çalışır (collocation). Yeni bir kullanıcı uzun bir doküman gönderdiğinde aniden başlayan prefill patlaması, ekranda akıcı metin bekleyen diğer onlarca kullanıcının decode döngüsünü duraklatır. Sonuç olarak ilk kelime süresi (TTFT) ile kelimeler arası gecikme (TPOT) sürekli çatışır ve P99 kuyruk gecikmeleri fırlar.
DistServe makalesinin getirdiği ana mimari çözüm, prefill ve decode operasyonlarını birbirinden tamamen bağımsız iki GPU işçi havuzuna (disaggregated worker pools) bölmektir. Prefill düğümleri sadece TTFT süresini düşürmek için yüksek tensör paralelliğiyle çalışırken, decode düğümleri sadece kesintisiz akış sağlamak için optimize edilir. Prefill tamamlandığında üretilen KV önbelleği, yüksek hızlı ağ kartları (RDMA over Converged Ethernet veya InfiniBand) üzerinden doğrudan hedef decode düğümünün GPU belleğine aktarılır. Bu sayede hiçbir decode işlemi prefill patlamaları yüzünden duraklamaz. Ancak bir sistem mimarı için madalyonun diğer yüzündeki altyapı bedelleri dikkatle incelenmelidir.
Ayrıştırılmış mimarinin en büyük fiziksel darboğazı ağ bant genişliğidir. Her istek için yüzlerce megabaytlık KV önbelleğini sunucular arasında uçurmak zorundasınız. Eğer kümenizde dört yüz veya sekiz yüz gigabitlik InfiniBand/RoCE ağları yoksa, yani standart bulut Ethernet hatları kullanıyorsanız, ağ aktarım süresi prefill süresini aşar ve tüm hız avantajı çöpe gider. Dahası prefill ve decode düğüm oranını (örneğin dörde dört mü yoksa ikiye altı mı) dinamik ayarlamak ciddi bir trafik tahmin yöneticisi gerektirir; trafik aniden uzun metin analizinden kısa sohbetlere kayarsa prefill sunucuları boş yatabilir.
Kod ve Entegrasyon Haritası
DistServe, OSDI 2024 sunumunun ardından açık kaynak dünyasına Ray ve PyTorch tabanlı çalışan bir küme orkestrasyon motoru olarak sunuldu2. Kod tabanı incelendiğinde, GPU’lar arası bellek aktarımını hızlandıran C++ CUDA IPC kütüphaneleri, otomatik paralellik planlayıcısı ve asenkron istek yöneticisi göze çarpmaktadır. Yazarların sunduğu kavramsal ayrıştırma, sektörün devleri tarafından hızla benimsendi.
Açık kaynak ekosistemindeki en kritik gelişme, vLLM ve SGLang çekirdek ekiplerinin DistServe prensiplerini doğrudan kendi resmi yol haritalarına alması oldu. vLLM, “Disaggregated Prefill and Decode” başlığı altında bağımsız prefill ve decode örneklerini birbirine bağlayan resmi mimariyi duyurdu3. Ancak bağımsız bir DistServe kümesi kurmak isteyen mühendisler için operasyonel zorluklar mevcuttur.
Hacker News ve Reddit tartışmalarında altyapı mühendisleri, Kubernetes üzerinde homojen vLLM podları yerine iki farklı uzmanlaşmış pod havuzunu yönetmenin getirdiği bakım karmaşıklığından bahsetmektedir4. Düğümlerden birinde yaşanacak tek bir ağ gecikmesi veya GPU arızası boru hattında zincirleme kuyruk kilitlenmelerine yol açabilmektedir. Yine de sıkı gecikme taahhütleri (SLO) altında çalışan veri merkezleri için ayrıştırma mimarisinin fiili standardı DistServe’dir.
Ticari Etki: Kimin İşine Yarar?
DistServe teknolojisi, kurumsal hizmet seviyesi anlaşmalarıyla (SLA) müşterilerine saniyede belirli sayıda token garantisi veren yapay zeka bulut sağlayıcıları, büyük çağrı merkezi sesli botları ve canlı finansal analiz platformları için doğrudan bir kâr marjı kurtarıcısıdır. P99 gecikme hedeflerini tutturamadığı için müşterilerine ceza ödeyen veya kapasitesinin yarısını atıl bekleten bir teknoloji şirketi, DistServe sayesinde aynı GPU parkurunda dört kat daha fazla müşteriye garantili gecikmeyle hizmet verebilir. Donanım verimliliği doğrudan zirveye tırmanır.
Aynı zamanda kullanıcıların uzun PDF raporları yüklediği ve anında özet beklediği kurumsal RAG sistemlerinde, prefill işlemlerinin canlı müşteri görüşmelerini dondurmasını engellemek eşsiz bir kullanıcı memnuniyeti sağlar. İki farklı görevi iki ayrı sunucu türüne tahsis etmek, donanım kaynaklarının her kuruşunun karşılığını vermesini sağlar.
Buna karşın tek bir sunucuyla yerel modeller çalıştıran bağımsız geliştiriciler veya düşük trafikli şirket içi araçlar için DistServe devreye almak anlamsız bir altyapı yüküdür. Çoklu GPU kümesi ve InfiniBand altyapısı olmayan ortamlarda birleşik vLLM çalıştırmak çok daha mantıklı bir mühendislik tercihidir. Özetle DistServe, devasa ölçekte model sunumu yapan ve gecikme cezalarına tahammülü olmayan tüm üst lig bulut mimarları için günümüzün en etkili veri merkezi orkestrasyon kaldıracıdır.