Yazı

Çoklu GPU Çıkarım Paralelizmi: Kurum İçi Tensor ve Pipeline Bölümleme

On-Premises AI · AI Architecture · Model Routing · Advanced

Kurum içi dağıtımlarda büyük model çıkarımını birden fazla GPU'ya dağıtmak için tensor paralelizmi ve pipeline paralelizminin pratik karşılaştırması.

Bir bilgisayar işlemci çipinin yakın çekimi

Tek bir GPU yeterli olmadığında

Günümüzde mevcut en büyük açık ağırlıklı modeller, herhangi bir tek GPU'nun bellek kapasitesini aşmaktadır. FP16 formatında 70 milyar parametreli bir model, yalnızca model ağırlıkları için yaklaşık 140 GB GPU belleği gerektirir; KV önbellek, aktivasyon belleği ve çerçeve ek yükü bunun üzerine eklenir. Kuantizasyon ile bu miktar yönteme bağlı olarak 35-70 GB'a düşürülse bile, birçok model tek bir cihaza sığmaz. Bu modeller için çoklu GPU çıkarımı isteğe bağlı değil, bir ön koşuldur.

Ancak bir model tek bir GPU'ya sığsa bile, verimi ve gecikmeyi iyileştirmek için birden fazla cihaza bölme nedenleri vardır. Tek bir GPU üzerinde 13B parametreli bir model sunan sistem, verim doygunluğa ulaşmadan yaklaşık 20 eşzamanlı isteği işleyebilir. Bu modeli iki GPU'ya dağıtmak, daha fazla paralel istek işlemeyi etkinleştirerek verimi artırabilir veya modelin farklı bölümlerini eşzamanlı işleyerek istek başına gecikmeyi azaltabilir.

Kurum içi dağıtımlar, paralelizm stratejisi seçimini bulut ortamlarına kıyasla daha kritik kılan belirli kısıtlamalarla karşı karşıyadır. GPU ara bağlantı bant genişliği donanım yapılandırmaları arasında dramatik şekilde değişir: NVLink aynı düğümdeki GPU'lar arasında 600-900 GB/s sağlarken, PCIe 4.0 x16 yalnızca 32 GB/s, düğümler arası InfiniBand ise 25-50 GB/s sağlar. Paralelizm stratejisi donanım topolojinizle eşleşmelidir, aksi takdirde iletişim ek yükü birden fazla GPU kullanmanın tüm faydasını ortadan kaldıracaktır.

Tensor paralelizmi: katmanları GPU'lara bölme

Tensor paralelizmi (TP), modelin bireysel katmanlarını birden fazla GPU'ya böler. Her GPU, her katmanın bir dilimini tutar ve her katmanın çıktısını paralel olarak hesaplamak için birlikte çalışırlar. Bir transformer modeli için bu, dikkat başlıklarının ve ileri beslemeli ağ matrislerinin GPU'lar arasında sütun veya satır bazında bölümlendiği, her GPU'nun kendi kısmını hesapladığı ve sonra nihai çıktıyı üretmek için kısmi sonuçları ilettiği anlamına gelir.

Tensor paralel çıkarımdaki temel işlemler, her katmanın hesaplamasından sonra gerçekleşen all-reduce ve all-gather iletişimleridir. Bu iletişim her transformer katmanında gerçekleşir; yani TP, çıkarım boyunca GPU'lar arasında yüksek frekanslı, orta büyüklükte iletişim üretir.

TP'nin avantajı düşük gecikmedir. Tüm GPU'lar her tokeni eşzamanlı olarak işlediğinden, tek bir tokeni işleme süresi tam modeli tek GPU'da çalıştırmaya kıyasla azalır. Etkileşimli sohbet gibi gecikmeye duyarlı uygulamalar için TP tercih edilen stratejidir. NVLink bağlantılı GPU'larda 2 yönlü TP ile büyük modellerde token başına gecikme azaltmaları tipik olarak %30-40'tır.

Dezavantajı iletişim bant genişliği gereksinimidir. Her katmanda gerçekleşen all-reduce işlemleri yüksek bant genişlikli, düşük gecikmeli ara bağlantılar gerektirir. NVLink üzerinde iletişim ek yükü hesaplama süresine göre küçüktür. PCIe üzerinde ek yük önemli hale gelir: 70B modelin katmanı için her all-reduce onlarca megabayt veri transferi içerir ve 80 transformer katmanı ile kümülatif iletişim maliyeti toplam çıkarım süresinin yarısını tüketebilir.

Pipeline paralelizmi: modeli aşamalara bölme

Pipeline paralelizmi (PP), modelin farklı katmanlarını farklı GPU'lara atar. GPU 0 katmanlar 0-19'u, GPU 1 katmanlar 20-39'u, GPU 2 katmanlar 40-59'u ve GPU 3 katmanlar 60-79'u tutabilir. Bir istek GPU 0'da girer, her aşamadan sıralı olarak geçer ve GPU 3'ten tamamlanmış çıktı ile çıkar.

PP'deki iletişim kalıbı TP'den temelden farklıdır. Her katmandaki all-reduce işlemleri yerine, PP aşamalar arasında gizli durum tensörünün noktadan noktaya transferlerini gerçekleştirir. Bu transferler daha az sıklıktadır ve boyut olarak daha küçüktür. Bu, PP'yi sınırlı ara bağlantı bant genişliğine çok daha toleranslı kılar.

PP, GPU'lar PCIe üzerinden veya ağ ara bağlantıları üzerinden birden fazla düğüme yayılarak bağlandığında doğru tercihtir. İletişim hacmi, PCIe 3.0 bant genişliğinin bile çoğu model için yeterli olacağı kadar düşüktür.

Çıkarım için PP'nin birincil dezavantajı pipeline kabarcıklarıdır. Tek bir istek işlenirken, bir seferde yalnızca bir aşama aktiftir ve diğer GPU'lar bekler. Bu, tek bir istek için PP'nin sıfır gecikme faydası sağladığı ve belleği yalnızca GPU'lar arasında dağıttığı anlamına gelir. PP'nin verim faydası pipeline'ı birden fazla istekle doldurmaktan gelir: GPU 3 istek 1'i işlerken, GPU 2 istek 2'yi, GPU 1 istek 3'ü işler ve böyle devam eder. Yeterli eşzamanlı istekle tüm aşamalar meşgul kalır.

Hibrit paralelizm ve pratik yapılandırmalar

Üretim dağıtımları genellikle her iki stratejiyi hibrit paralelizm yapılandırmasında birleştirir. Tipik kalıp, düğüm içinde tensor paralelizmini (NVLink'in yüksek bant genişliği sağladığı yerde) ve düğümler arasında pipeline paralelizmini (ağ bant genişliğinin darboğaz olduğu yerde) kullanmaktır.

Optimal yapılandırma, belirli donanım ve iş yükünüze bağlıdır. Yaygın kurum içi kurulumlar için pratik yönergeler:

Tek düğüm, NVLink'li 2 GPU: 2 yönlü TP kullanın. NVLink bant genişliği all-reduce iletişimini verimli şekilde yönetir ve TP en iyi tek istek gecikmesini sağlar.

Tek düğüm, NVLink'li 4-8 GPU: NVLink alan boyutuna kadar TP kullanın. Tüm GPU'ların tam NVLink bağlantısına sahip olduğu DGX tarzı sistemlerde 4 veya 8 yönlü TP kullanın. NVLink'in yalnızca GPU çiftlerini bağladığı sistemlerde, NVLink çiftleri içinde 2 yönlü TP ve çiftler arasında PP kullanın.

Tek düğüm, yalnızca PCIe bağlantılı GPU'lar: TP yerine PP'yi tercih edin. Model kuantizasyonla tek GPU'ya sığıyorsa, tek GPU'da çalıştırın ve diğerlerini verimi artırmak için ek model replikaları olarak kullanın.

Çoklu düğüm kümesi: Düğümler arasında her zaman PP kullanın. Her düğüm içinde iç düğüm ara bağlantısına göre TP kullanın (NVLink: TP, PCIe: PP veya tek GPU replikaları).

Paralelizm performansını ölçme ve optimize etme

Bir paralelizm stratejisi seçtikten sonra, gerçek performansı ölçmek ve darboğazları belirlemek için sunum yığınınızı araçlarla donatın. İzlenecek temel metrikler ilk tokene kadar süre (TTFT), tokenlar arası gecikme (ITL), verim (tüm eşzamanlı isteklerde saniye başına token) ve cihaz başına GPU kullanımıdır.

TP yapılandırmaları için, çıkarım çerçevenizin profil oluşturma araçlarını kullanarak all-reduce işlemlerinde harcanan süreyi izleyin. İletişim süresi toplam token başına sürenin %20'sini aşıyorsa, ara bağlantınız darboğazdır. Çözümler arasında TP derecesini azaltma, iletişim-hesaplama örtüşmesini etkinleştirme veya daha hızlı bir ara bağlantıya yükseltme yer alır.

PP yapılandırmaları için pipeline kabarcık oranını izleyin: her GPU'nun önceki aşamadan girdi veya sonraki aşamadan çıktı tüketimi bekleyerek boşta kaldığı sürenin oranı. Yüksek kabarcık oranı, pipeline'ı doldurmak için daha fazla eşzamanlı istek gerektiği anlamına gelir. Pipeline'ı doyurmak için gereken minimum toplu iş boyutunu pipeline aşama sayısına yaklaşık eşit olarak hesaplayın.

Ölçülen verimi teorik maksimumla karşılaştırın. TP için, N GPU ile teorik verim, tek GPU veriminin N katı eksi iletişim ek yüküdür. PP için, teorik verim tek GPU verimidir ve tek istek gecikmesi aşama sayısıyla orantılıdır. Ölçülen verim teorik değerin %70'inin altındaysa, darboğazın iletişim mi, bellek bant genişliği mi yoksa aşamalar arası yük dengesizliği mi olduğunu araştırın.

Dağıtımınız için doğru seçimi yapmak

TP, PP ve hibrit paralelizm arasındaki karar üç soruya indirgenebilir. Birincisi, ara bağlantı topolojiniz nedir? NVLink TP'yi mümkün kılar; PCIe ve ağ ara bağlantıları PP'yi tercih eder. İkincisi, gecikme gereksiniminiz nedir? Etkileşimli uygulamalar düşük istek başına gecikme için TP'ye ihtiyaç duyar; toplu işleme PP'nin pipeline gecikmesini tolere edebilir. Üçüncüsü, eşzamanlılık düzeyiniz nedir? PP pipeline'ı doldurmak için eşzamanlı isteklere ihtiyaç duyar.

NVLink'li çoklu GPU sunucularında 30B-70B parametre aralığında modeller çalıştıran çoğu kurumsal kurum içi dağıtım için, tek düğümdeki tüm GPU'larda tensor paralelizmi varsayılan seçimdir. En iyi gecikmeyi sağlar, modern NVLink yapılandırmalarıyla 8 GPU'ya kadar iyi ölçeklenir ve vLLM, TGI ve TensorRT-LLM dahil başlıca çıkarım çerçeveleri tarafından iyi desteklenir.

Tek düğümün ötesine ölçeklenirken, her düğüm içinde TP'yi korurken düğümler arasında pipeline paralelizmi ekleyin. Bu hibrit yaklaşım, iletişim stratejisini donanım hiyerarşisinin her düzeyinde mevcut bant genişliğine uyarlayarak hem verim hem de gecikme performansını en üst düzeye çıkarır.

Paralelizm yapılandırmanızı model dağıtım spesifikasyonunuzun bir parçası olarak belgelendirin. TP derecesi, PP derecesi, GPU-aşama eşlemesi ve donanım topolojisi varsayımlarını dahil edin. Donanım değiştiğinde paralelizm yapılandırmanızı yeniden gözden geçirin. Bir donanım yapılandırması için optimize edilmiş bir strateji, bir diğerinde yetersiz olabilir.

Öne çıkan görsel: Bill Fairs tarafından Unsplash'ta yayınlanmıştır.