SON DAKİKA

Nvdia

“GPU Bellek Değişimi ile Model Dağıtım Maliyetlerini Düşürürken Performansı Koruma”

Büyük dil modellerini (LLM’ler) geniş ölçeklerde dağıtmak, iki ana zorlukla karşı karşıya bırakır: yüksek talepler sırasında hızlı yanıt verme sağlamak ve GPU maliyetlerini yönetmek. Kurumlar genellikle, zirve talep dönemlerinde ek GPU’lar temin etmek ile hizmet seviyesi sözleşmesini (SLA) riske sokmak arasında kalır. Bu durumda iki seçenek ortaya çıkar:

  1. En kötü durum trafik senaryolarını yönetmek için çok sayıda GPU ile pek çok replik dağıtmak; bu durum, donanımın çoğu zaman boşta kalması nedeniyle bütçeyi tüketir.
  2. Sıfırdan agresif bir şekilde ölçeklenmek, bu durumda kullanıcıların gecikme yaşamalarına neden olur.

Ne ilk yaklaşım ne de ikinci yöntem ideal değildir. İlk seçenek bütçenizi aşındırırken, ikinci seçenek kullanıcılarınızı hayal kırıklığına uğratır.

NVIDIA Run:ai GPU bellek değiştirme, aynı zamanda model sıcak değiştirme olarak da bilinir, GPU bellek kısıtlamalarını ele alarak ve otomatik ölçeklendirme verimliliğini artırarak çıkarımlar için GPU kullanımını en üst düzeye çıkarmayı amaçlayan yeni bir yeniliktir.

Model Sıcak Değiştirmenin Önemi

Sıcak değiştirme, modellerin hizmetinde kaynak yönetimi için daha dinamik bir yaklaşım sunar. Bu yöntem, birden fazla modelin aynı GPU’ları paylaşabilmesine olanak tanır; bu durumda toplam bellek ihtiyaçları mevcut GPU kapasitesini aşsa bile. İşte nasıl çalıştığı:

  1. Dinamik bellek dışlama: Beklenti içinde olmayan, belirli bir süre boyunca talep almayan modeller GPU belleğini işgal etmez. Kullanılmadığında, CPU belleğine aktarılarak yer tasarrufu sağlanır.
  2. Hızlı etkinleştirme: Bir talep alındığında, model hemen GPU belleğine geri aktarılır ve bu işlem düşük gecikme ile gerçekleşir.
  3. Daha fazla model replikası, daha az donanım: Bu, birden fazla modelin aynı donanımı paylaşmasına olanak tanır ve her zaman açık olan makinelerin sayısını önemli ölçüde azaltır. Ayrıca, sunucunun (yani CPU süreci) GPU kısmı dışarıda kaldığında bile aktif kalması, repliğin hızlı bir şekilde yeniden etkinleştirilmesine yardımcı olur, çünkü sunucu zaten başlatılmıştır.

Sıcak değiştirme ile organizasyonlar tahmin edilemez iş yüklerini etkili bir şekilde yönetebilirken, maliyet açısından aşırı donanım temin etme riskinden de kaçınabilirler.

GPU Bellek Değiştirme: Performans Validasyonu

GPU bellek değiştirme performansını gösterme amacıyla gerçek dünya LLM dağıtım senaryolarını simüle ettik.

Test edilen modeller

Donanım ve yazılım ortamı

  • GPU: NVIDIA L40S (48 GB) PCIe Gen4 x8 üzerinden bağlantılı, maksimum teorik bant genişliğinin yarısıyla sınırlıdır.
  • Örnek tipi: AWS g6e.4xlarge
  • Planlayıcı: NVIDIA Run:ai Scheduler (v2.19)
  • Çıktı motoru: vLLM versiyon 0.6.4, varsayılan yapılandırmalarla
  • Sunucu görüntüsü düğümde önceden yüklüydü ve model ağırlıkları EBS depolamada önbelleğe alındı, tüm senaryolarda ağ trafiği fazla olmadan kullanıldı.

Metotlar

  • İlk token zamanı (TTFT): İlk talebin sunucuya ulaşması anından modelin ilk tokenı üretmesine kadar geçen süre ölçüldü. Gerçek üretim ortamını simüle etmek için vLLM’nin resmi test senaryosu kullanılarak ısınma aşaması devre dışı bırakıldı.

Giriş koşulları

  • İçerik uzunlukları: 128 token ve 2,048 token, modeller EOS tokenında duracak şekilde ayarlandı.

Üç Farklı Dağıtım Senaryosunda Gecikme ve Verimlilik Karşılaştırması

Üç ayrı senaryoyu değerlendirdik:

  1. Sıfırdan ölçekleme: Bir modeli sıfırdan yüklemenin TTFT’si ölçüldü.
  2. Tek bir GPU üzerindeki modeller arasında GPU bellek değişimi: Bir modelin CPU bellekten GPU belleğine geri yüklendiğinde TTFT’yi değerlendirdik.
  3. Temel (sıcak modeller): Modelin zaten GPU belleğinde mevcut olduğu durumda TTFT ölçüldü.

1. Sıfırdan Ölçekleme – Uzun Gecikmeler

Sıfırdan ölçekleme, pod’un başlatılmasını, modelin GPU’ya yüklenmesini ve ilk isteğin işlenmesini içerir. Beklendiği üzere, bu yaklaşım, en yüksek TTFT’yi oluşturdu çünkü başlatma gecikmeleri mevcuttu.

Model Giriş Uzunluğu (Token) TTFT (sn)
Llama 3.1 8B Instruct 128 159.49
2,048 159.77
Mistral-7B 128 145.90
2,048 146.90
Falcon-11B 128 207.07
2,048 208.13
Tablo 1. Sıfırdan ölçekleme sonuçları Llama 3.1 8B Instruct, Mistral-7B ve Falcon-11B ile.

TTFT, daha küçük modeller için genellikle 140 saniyeyi aşarken, daha büyük modeller için 200 saniyenin üzerine çıktı. Bu gecikmeler, 208 saniyeye kadar uzayabiliyor ve gerçek zamanlı uygulamalar için pratik değildir. Bu durum, üretimde sıfırdan ölçeklemenin verimsizliğini gözler önüne seriyor.

2. GPU Bellek Değişimi – Optimum Verimlilik

Bu testte, modeller CPU belleğinde başlatıldı ve talepler geldiğinde dinamik olarak GPU belleğine değiştirildi. İlk grup, Llama 3.1 8B ve Mistral-7B‘den oluşurken, ikinci grup Llama 3.1 8B ve Falcon-11B‘yi içeriyordu. Aşağıdaki sırayla ilerledik:

  1. Bir modele talep gönderildi, bu model GPU belleğine yüklenirken TTFT kaydedildi.
  2. Bu model görevi tamamladıktan sonra otomatik olarak yeniden CPU belleğine alındı ve ikinci modele talep gönderildi. Benzer şekilde, ikinci model GPU belleğine alındı ve TTFT kaydedildi.

Not: GPU bellek değişimi ile TTFT, PCI bant genişliği ve modeller arasında CPU ile GPU belleği arasında geçiş süresi ile sınırlandırılır.

Model Giriş Uzunluğu (Token) TTFT (sn)
Mistral-7B 128 2.4
2,048 2.57
Llama 3.1 8B Instruct 128 2.9
2,048 3
Tablo 2. GPU bellek değişimi sonuçları Mistral-7B ve Llama 3.1 8B Instruct ile.
Model Giriş Uzunluğu (Token) TTFT (sn)
Falcon-11B 128 2.93
2,048 3.13
Llama 3.1 8B Instruct 128 2.9
2,048 3.13
Tablo 3. GPU bellek değişimi sonuçları Falcon-11B ve Llama 3.1 8B Instruct ile.

Her iki grup—Llama 3.1 8B Instruct ile Mistral-7B ve Llama 3.1 8B Instruct ile Falcon-11B—modeller ve giriş uzunlukları boyunca tutarlı sonuçlar gösterdi. Falcon-11B, beklenildiği gibi, bellek ayak izi nedeniyle Mistral-7B‘den biraz daha uzun TTFT gösterdi. Ancak bu fark (~0.5 saniye) minimaldir ve gerçek dünya senaryoları için kabul edilebilir performans aralıklarındadır.

Bu sonuçlar—giriş dizisi uzunluğuna bağlı olarak yalnızca 2-3 saniye—sıfırdan ölçekleme yöntemine kıyasla %50-66’lık bir iyileşme göstermektedir. Bu, model türüne ve giriş uzunluğuna bağlı olarak değişiklik göstermektedir.

3. Temel Performans – Sıcak Modeller, Yüksek Maliyetler

Bir temel oluşturarak, modellerin GPU belleğinde tamamen yüklü olduğu durumda TTFT ölçtük. Bu durum, gecikme açısından teorik en iyi senaryoyu temsil eder.

Model Giriş Uzunluğu (Token) TTFT (sn)
Llama 3.1 8B Instruct 128 0.038
2,048 0.21
Mistral-7B 128 0.036
2,048 0.17
Falcon-11B 128 0.05
2,048 0.25
Tablo 4. Sıcak model performansları Llama 3.1 8B Instruct, Mistral-7B ve Falcon-11B kullanılarak temel olarak değerlendirilmiştir.

Sıcak modeller, neredeyse anında yanıtlar sunarken, GPU’yu her zaman o modele tam olarak tahsis edilmesini gerektirir. Birden fazla model veya replikayı yönetirken bu durum, GPU’ların düşük talep dönemlerinde önemli ölçüde kullanılmamasına yol açarak yüksek maliyetlere neden olur.

Maliyet Verimliliği ve Performans Dengelemesi

GPU bellek değişimi, performans ve maliyet arasında ideal dengeyi sağlayarak TTFT’yi sadece birkaç saniyeye indirmektedir. Bu, organizasyonların iş yüklerini daha az GPU üzerinde toplarken, katı SLA koşullarını korumalarını sağlar ve hem verimlilik hem de güvenilirlik sunar. Her zaman açık sıcak modellere kıyasla bu yaklaşım, sadece küçük bir gecikme farkıyla önemli maliyet tasarrufları sağlamaktadır.

NVIDIA Run:ai Model Streamer, sıfırdan ölçekleme senaryolarında TTFT’yi birkaç on saniye azaltmaya yardımcı olsa da, GPU bellek değiştirme, TTFT’yi 10 saniyenin altına düşürerek bu tür SLA’ları gerektiren uygulamalar için ideal bir çözüm sunmaktadır.

GPU bellek değiştirme ile GPU verimliliğini en üst düzeye çıkarabilir, boşta kalma maliyetlerini minimize edebilir ve kullanıcılarınızın beklediği yanıt hızını sürdürebilirsiniz.Bize ulaşın ve GPU bellek değişimini canlı izleyerek NVIDIA Run:ai’nın AI altyapınızı nasıl dönüştürebileceğini daha fazla öğrenin.

Kaynak

Nvdia Blog

Düşüncenizi Paylaşın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İlgili Teknoloji Haberleri