LLMScalecanlı Hugging Face verisi

Kapasite planı — bir yükün gecikme hedeflerini karşılaması için kaç GPU gerekir

Yükü tarif et: saniyede kaç istek geliyor, ne uzunlukta ve ne kadar hızlı cevaplanmalı. LLMScale bunu kaç vLLM kopyasının taşıyacağını ve her birinin kaç GPU'da çalışacağını hesaplar.

1

Model seç

gömülü DBgatedllama8.03B parametre·32L · 4096d · 32/8 headGQA
2

Yük

ⓘModelin tüm kopyalarına her saniye gelen istek sayısı.dağıtımın tamamında
Dakikada yaklaşık 60, günde 86.000 istek.Dakikada yaklaşık 120, günde 173.000 istek.Dakikada yaklaşık 300, günde 432.000 istek.Dakikada yaklaşık 600, günde 864.000 istek.Dakikada yaklaşık 1.200, günde 1.728.000 istek.Dakikada yaklaşık 3.000, günde 4.320.000 istek.Dakikada yaklaşık 6.000, günde 8.640.000 istek.
ⓘvLLM'in kabul ettiği en uzun istek, prompt ve cevap birlikte.--max-model-len
token
≈ 3.100 kelime, yaklaşık 6 sayfa. Kısa bir sohbete ya da tek bir sayfaya yeter.≈ 6.100 kelime, yaklaşık 12 sayfa. Uzun bir konuşma ya da sorusuyla birlikte bir rapor.≈ 12.300 kelime, yaklaşık 25 sayfa. Uzun bir konuşma ya da sorusuyla birlikte bir rapor.≈ 24.600 kelime, yaklaşık 49 sayfa. Uzun bir belge ya da bir grup kaynak dosyası.≈ 49.200 kelime, yaklaşık 98 sayfa. Uzun bir belge ya da bir grup kaynak dosyası.≈ 98.300 kelime, yaklaşık 197 sayfa. Tek bir istekte bir kitap ya da bütün bir kod tabanı. Bu modelin maksimumu.
ⓘBir istekte gönderilen ortalama token sayısı.
token
≈ 380 kelime. Biraz geçmişiyle bir sohbet turu.≈ 750 kelime, yaklaşık 2 sayfa. Biraz geçmişiyle bir sohbet turu.≈ 1.500 kelime, yaklaşık 3 sayfa. Getirilmiş metin parçalarıyla bir soru ya da uzun bir konuşma.≈ 3.000 kelime, yaklaşık 6 sayfa. Getirilmiş metin parçalarıyla bir soru ya da uzun bir konuşma.≈ 6.000 kelime, yaklaşık 12 sayfa. Uzun bir belge ya da bir grup dosya.≈ 12.000 kelime, yaklaşık 24 sayfa. Uzun bir belge ya da bir grup dosya.
ⓘBir isteğin ortalama geri aldığı token sayısı.
token
≈ 48 kelime. Kısa bir cevap ya da bir araç çağrısı.≈ 96 kelime. Kısa bir cevap ya da bir araç çağrısı.≈ 190 kelime. Tipik bir sohbet cevabı.≈ 380 kelime. Tipik bir sohbet cevabı.≈ 750 kelime, yaklaşık 2 sayfa. Uzun bir cevap: bir makale, bir rapor ya da kod.≈ 3.000 kelime, yaklaşık 6 sayfa. Düşünen bir modelin, akıl yürütmesi de dahil olan cevabı.
ⓘHer prompt'un başında, tüm istekler için aynı olan token'lar; örneğin bir sistem prompt'u. Bir kez cache'lenir.bir kez cache'lenir, yeniden hesaplanmaz
token
Tüm prompt'ların paylaştığı bir şey yok.≈ 190 kelime. Kısa, ortak bir talimat.≈ 380 kelime. Bir sistem prompt'u.≈ 750 kelime, yaklaşık 2 sayfa. Bir sistem prompt'u.≈ 1.500 kelime, yaklaşık 3 sayfa. Araç şemaları ya da örnekler içeren uzun bir sistem prompt'u.
3

Gecikme hedefleri

ⓘBir kullanıcının isteği gönderdikten sonra ilk token'ı ne kadar bekleyebileceği.TTFT
s
Anında gibi hissettirir; editördeki kod tamamlamanın istediği budur.Sohbet ürünlerinin hedeflediği süre.RAG, ajanlar ve uzun prompt'lar için kabul edilebilir.RAG, ajanlar ve uzun prompt'lar için kabul edilebilir.Prompt'u okumanın zaman aldığı uzun belgeler için.
ⓘSonraki her token'ın ne kadar sürebileceği; cevabın ne hızla aktığını belirler.TPOT · kullanıcı başına 20 tok/s
ms
Kullanıcı başına saniyede 50 token, dakikada yaklaşık 2.250 kelime. Kimsenin okuyamayacağı kadar hızlı: ajanlar ve başka bir programın kullandığı kod için.Kullanıcı başına saniyede 33 token, dakikada yaklaşık 1.500 kelime. Okuma hızından rahatça hızlı: sohbetteki olağan hedef.Kullanıcı başına saniyede 25 token, dakikada yaklaşık 1.130 kelime. Okuma hızından rahatça hızlı: sohbetteki olağan hedef.Kullanıcı başına saniyede 20 token, dakikada yaklaşık 900 kelime. Okuma hızından rahatça hızlı: sohbetteki olağan hedef.Kullanıcı başına saniyede 10 token, dakikada yaklaşık 450 kelime. Hızlı bir okurun temposu civarında.
4

Donanım

Ne gerekiyor

1 × H100 SXM 80GB
1 × vLLM; her biri tek GPU'da çalışır ve saniyede 11.1 isteğe kadar taşır
token başına süreyle sınırlı
İlk token süresi
103 ms
hedef 1.0 s
Çıktı token'ı başına süre
30.7 ms
hedef 50 ms
Decode'daki dizi
79
kopya başına, payına düşen yükte
KV cache kapasitesi
214
ortalama boyutta dizi
Bir kopyanın (1 GPU) vLLM komutunu aç
Düzenler, en ucuzdan başlayarak
DüzenKopyaGPUkopya başına istek/sSınır
1 GPU1111.1token başına süreyle sınırlı
TP 21223.1token başına süreyle sınırlı
PP 21222.3token başına süreyle sınırlı
PP 31332.2token başına süreyle sınırlı
TP 41447.5token başına süreyle sınırlı
TP 2 · PP 21446.2token başına süreyle sınırlı
PP 41444.5token başına süreyle sınırlı
PP 51550.1token başına süreyle sınırlı

Ortalama uzunluklara sahip, ani sıçramaların olmadığı sabit trafik için bir planlama modeli. Prompt'ları okumak her kopyanın zamanından bir pay alır ve decode süresini aynı katsayıyla uzatır; decode'daki dizi sayısı Little yasasına göre belirlenir. Hızları, üreticinin tepe değerinin %92'si olarak alınan bellek bant genişliği ile GeForce kartlarda %90 (ölçülmüş), diğer kartlarda %60 (tahmini) olarak alınan yoğun tensor işlem gücü sınırlar; üstüne her adımda katman başına sabit bir maliyet, tensor-paralel grupta katman başına iki all-reduce ve her istek için ilk tokendan önce yaklaşık 6 ms eklenir. Pipeline aşamalarının her biri bir batch çalıştırır ve o kadar kopyanın hızına ulaşır; aşamalar arası aktarım ve uzman paralelliğinin dağıtımı all-reduce gibi sayılır, henüz ölçülmemiş bir tahmindir. Tek NVIDIA GPU'da bu, vLLM 0.31 ölçümlerine yaklaşık %10–15 yakındır. Bellek kullanımı vLLM'in kendi hesabından alınır. Ani yükler için boş kapasite bırak. Strix Halo'da katman maliyeti ve tensor işlem gücü ölçüldü (vLLM ROCm), ama dörtten fazla dizi ve kısa prompt'lar 3 kata kadar yavaş; diğer AMD, Apple ve birleşik bellekli cihazlarda ve MoE modellerde prompt okumada hızlar üst sınır olarak kalır.

Plan nasıl hesaplanıyor

Bir kopya, VRAM hesaplayıcısının yerleştirdiği gibi yerleştirilmiş bir vLLM örneğidir: tek GPU, bir tensor-parallel grup, bu grupların pipeline aşamaları ya da MoE'de uzmanları veri-paralel sıralara dağıtılmış hâli. Belli bir istek hızında zamanının bir kısmını prompt'ları okumaya harcar. Prompt süresi, prompt'un FLOP sayısının GPU'nun erişilebilir yoğun tensor işlem gücüne bölünmesiyle hesaplanır; bu işlem gücü GeForce kartlarda tepe değerin ölçülmüş %90'ı, diğer kartlarda ise tahmini %60'ıdır. Ağırlıkları bir kez okumak daha uzun sürüyorsa prompt süresi olarak bu süre alınır. Zamanın geri kalanı decode adımlarına gider; böylece prompt ve decode süreleri aynı katsayıyla uzar. Belirli bir batch boyutundaki adım süresi decode modelinden gelir: ağırlıklar ile KV cache'i okuma süresi ve matris çarpımlarının süresinden uzun olanıdır. Planlayıcı, ilk token süresini, çıktı token'ı başına süreyi ve KV cache'i sınırlar içinde tutan en yüksek hızı bulur ve yükü buna böler.

  • prefill payı f = kopya başına saniyedeki istek × prefill süresi
  • çıktı token'ı başına süre = batch'teki decode adımı ÷ (1 − f)
  • decode'daki dizi = saniyedeki istek × çıktı token'ı × çıktı token'ı başına süre
  • GPU = ⌈saniyedeki istek ÷ bir kopyanın kapasitesi⌉ × bir kopyadaki GPU

Maks context'teki tek isteğin sığdığı, 8 GPU'ya kadarki her düzeni, model daha fazlasını istiyorsa hesaplayıcının en az sayısını da dener ve en ucuzdan başlayarak listeler. Pipeline aşamalarının her biri bir batch çalıştırır; böylece aşamalı bir kopya, o kadar tek aşamalı kopya kadar hızlıdır. Bir tensor-parallel grubun taşıyamadığı modeli sığdıran onlardır. Ortak prefix bir kez cache'lenir ve yeniden hesaplanmaz. İstek gelişlerinin sabit olduğu, prompt ve çıktı uzunluklarının da ortalama değerlerinde kaldığı varsayılır; ani yükselmeler ve uzun kuyruklu dağılımlar içeren gerçek trafik için ek pay gerekir.

Sık sorulanlar

Tek GPU'ya sığan bir model neden birkaç GPU isteyebilir?
Bellek bir modelin çalışıp çalışmadığını söyler; yük ise kaç kopya gerektiğini. Her isteğin önce prompt'u okunur, bu işlem gücüne bağlıdır; sonra cevabı bitene kadar her decode adımında bir yer tutar. Llama 3.1 8B tek bir H100'e rahatça sığar; ancak 2.048 token'lık prompt'lar, 256 token'lık cevaplar ve token başına 50 ms hedefiyle bir H100 saniyede yaklaşık 10 istek taşır, dolayısıyla saniyede 15 istek için iki H100 gerekir.
Tensor parallelism neden bazen daha fazla GPU'ya mal olmaz?
Bir modeli GPU'lara bölmek, her adımın okuduğu ağırlıkları ve her prompt'un gerektirdiği işi de böler; böylece her adım kısalır ve her prompt daha çabuk okunur. Bir kopyayı sınırlayan bir gecikme hedefiyse, tek kopya olarak iki GPU tek GPU'nun iki katından fazlasını taşıyabilir; kopyayı KV cache ya da ham işlem hızı sınırlıyorsa ayrı kopyalar da aynı işi görür ve daha basittir.
Rakamlara ne kadar güvenebilirim?
Birinci dereceden tahminlerdir. Bellek, gerçek açılışlarla doğrulanmış vLLM muhasebesinden gelir. Hızlar üretici tepe değerlerini belirtilen verimliliklerle kullanır; kuyruk modeli sabit gelişler varsayar. GPU sayısını ortalama yükün için taban kabul et, ani yükler için %20 ile %30 ekle ve tek bir kopyada bir benchmark ile doğrula.