Hızlandırıcı seçmek ve bellek bütçesi çıkarmak
Hızlandırıcı seçimi bir bellek bütçesi hesabıyla başlar: ağırlık belleği (parametre sayısı × duyarlılığın bayt karşılığı; bf16'da 2, int8'de 1 bayt), KV önbelleği (2 × katman × KV kafa sayısı × kafa boyutu × bayt × aynı anda tutulan token) ve aktivasyon ile parçalanma payı toplanır; toplam, cihaz belleğinin tamamına değil pay ayrılmış hâline sığmalıdır. Hız tarafında belirleyici olan tepe işlem gücü değil bellek bant genişliğidir, çünkü çözümleme her token için ağırlıkları yeniden okur.
ÖNKOŞULLAR
- Çalıştırmayı planladığınız modelin katman sayısı, kafa yapısı ve kafa boyutunu okuyabileceğiniz yapılandırma dosyası veya model kartı
- Hedef eşzamanlılık ile girdi ve çıktı uzunluğu dağılımını içeren bir iş yükü profili
- Aday donanımın bellek kapasitesi, bellek bant genişliği ve desteklenen sayı biçimleri bilgisi
- Kısa ölçümler yapabileceğiniz bir deneme cihazına veya saatlik kiralanmış bir örneğe erişim
GEREKEN ARAÇLAR
- Not defteri ortamı veya hesap tablosu (bellek bütçesi modeli için)
- Cihaz bellek kullanımını ve bant genişliğini okuyabilen izleme aracı
- Kısa yük testi koşabilen bir çıkarım sunucusu kurulumu
- Model yapılandırma dosyalarına erişim (katman, kafa ve sözlük bilgisi)
- Nicemleme ve dönüştürme araç zinciri
- 01
İş yükünü çıkarım profili olarak yaz
Hedef model, tepe eşzamanlılık, girdi ve çıktı uzunluğu dağılımı ile ilk token hedefini tek sayfada yazın; bellek bütçesi bu girdiler olmadan hesaplanamaz.
Donanım kararı iş yükünün fonksiyonudur, tersi değil. Aynı modeli çalıştıran iki ürün — kısa sorulara cevap veren bir asistan ile uzun belgeleri özetleyen bir hat — tamamen farklı bellek profilleri üretir. Profil yazılmadan yapılan kart karşılaştırması, hangi sütunun bağlayıcı olduğunu bilmeden yapılan bir karşılaştırmadır.
Profil girdisi Bellek bütçesinde neyi belirler Model ve ağırlık duyarlılığı Ağırlık belleğini Tepe eşzamanlı istek KV havuzunun genişliğini Girdi uzunluğu dağılımı Ön doldurma tamponlarını ve KV'nin büyüme hızını Çıktı uzunluğu dağılımı İsteğin cihazı ne kadar süre meşgul edeceğini İlk token süresi hedefi Ön doldurma için gereken işlem gücünü Beş satır da yazılmadan hiçbir kart karşılaştırması anlamlı değildir. - 02
Ağırlık belleğini duyarlılığa göre hesapla
Parametre sayısını duyarlılığın bayt karşılığıyla çarpın: bf16 için parametre başına 2 bayt, int8 için 1 bayt, 4 bit için yaklaşık yarım bayt artı ölçek katsayıları.
Ağırlık belleği hesabın en kolay ve en kesin kısmıdır: parametre sayısı ile parametre başına bayt sayısının çarpımı. Bayt karşılıkları tanım gereği sabittir, ölçüm değildir. Nicemlenmiş biçimlerde bunun üzerine küçük bir ek yük gelir, çünkü ölçek katsayıları ve sıfır noktaları da saklanır.
Duyarlılık Parametre başına bayt 70 milyar parametre varsayımıyla ağırlık fp32 4 yaklaşık 280 GB bf16 / fp16 2 yaklaşık 140 GB int8 1 yaklaşık 70 GB 4 bit yaklaşık 0,5 yaklaşık 35 GB + ölçek katsayıları Parametre sayısı varsayımdır, bir ölçüm değil. Son sütun yalnızca çarpma işleminin sonucudur; kendi modelinizin gerçek parametre sayısıyla tekrarlayın. Nicemleme bellekten kazandırır ve çözümlemede okunan bayt azaldığı için çoğu durumda hızlandırır; karşılığında çıktı kalitesinden bir miktar ödün verir. Bu ödünün büyüklüğü göreve göre değişir ve yalnızca kendi değerlendirme setinizde ölçülerek bilinir — varsayılmaz. Ayrıca her sayı biçimi her donanımda hızlı çekirdeklerle desteklenmez; destek matrisini seçimden önce doğrulayın.
Uzman karışımı (MoE) mimarilerde ayrımı unutmayın: bellek toplam parametre sayısına göre, işlem gücü ise her token için etkinleşen parametre sayısına göre ölçeklenir. Böyle bir model belleği doldurur ama işlem gücünü aynı oranda yormaz; kart seçiminde bu iki sütun farklı yönlere çeker.
- 03
KV önbelleğini token başına formülle
Token başına KV maliyeti 2 × katman × KV kafa sayısı × kafa boyutu × bayt'tır; bunu eşzamanlı istek ve dizi uzunluğuyla çarparak toplam KV bütçesini çıkarın.
python # VARSAYIM: değerler modelin yapılandırma dosyasından okunmalıdır. katman = 80 kv_kafa = 8 # gruplanmış dikkatte; çok başlı dikkatte kafa sayısına eşittir kafa_boyutu = 128 bayt = 2 # bf16 token_basina = 2 * katman * kv_kafa * kafa_boyutu * bayt # 2: anahtar ve değer eszamanli_istek = 32 ortalama_dizi = 8000 # girdi + üretilen token toplam_kv = token_basina * eszamanli_istek * ortalama_dizi print(token_basina / 1024, "KiB/token") print(toplam_kv / 1024**3, "GiB toplam KV")Formülün iki çarpanı doğrudan ürün kararıdır: eşzamanlılık ve dizi uzunluğu. Yani "kaç kullanıcıya aynı anda hizmet vereceğiz" ile "bağlamı ne kadar uzun tutacağız" aslında tek bir bellek kararıdır. Birini büyütmek diğerinin bütçesini daraltır.
Kafa yapısı burada belirleyicidir. Gruplanmış veya tek anahtar-değer kafası kullanan mimarilerde KV kafa sayısı düştüğü için token başına maliyet doğrusal olarak azalır; bu çoğu zaman modelin cihaza sığması ile sığmaması arasındaki farktır. Model kartındaki kafa sayısını değil, anahtar-değer kafa sayısını okuyun.
- 04
Kalan payı aktivasyon ve parçalanma için ayır
Ağırlık ve KV toplamından sonra kalan belleği geçici aktivasyon tamponları, parçalanma ve çalışma zamanı yükü için ayırın; cihazı tavanına kadar doldurmayın.
Bellek yetmezliği hataları neredeyse hiçbir zaman kararlı durumda ortaya çıkmaz. Ön doldurma sırasındaki geçici tamponlar toplu iş büyüklüğü ile istem uzunluğunun çarpımına göre büyür; ortalama istemle sorunsuz çalışan bir yapılandırma, alışılmadık uzunlukta tek bir istek geldiğinde çöker.
- Çalışma zamanı ve sürücü bağlamı
- Model ağırlıkları
- KV önbelleği havuzu
- Ön doldurma sırasındaki geçici aktivasyon tamponları
- Bellek ayırıcının parçalanma payı
- Çok cihazlı çalışmada iletişim tamponları
- Spekülatif çözümleme kullanılacaksa taslak modelin ağırlıkları
Doğrulama adımı: bütçeyi yazdıktan sonra en uzun istem senaryosunu tepe eşzamanlılıkla birlikte deneyin. Bu iki koşul ayrı ayrı sorun çıkarmasa da birlikte geldiklerinde çıkarır; üretimde de birlikte gelirler.
- 05
Bant genişliği tavanını hesapla
Çözümleme adımı bellek bant genişliğine bağlıdır: saniyedeki token üst sınırı, bant genişliğinin bir token için okunan ağırlık baytına bölünmesiyle kabaca bulunur.
Tek bir isteğin token üretim hızını belirleyen şey tepe işlem gücü değil, ağırlıkları bellekten okuma hızıdır: her üretilen token için ağırlıkların baştan sona okunması gerekir. Bu yüzden kart karşılaştırırken bakılacak ilk sütun bant genişliğidir; başlık hâlindeki işlem gücü rakamı çözümleme hızını tahmin etmez.
Aşama Darboğaz Neyi büyütmek yardım eder Ön doldurma İşlem gücü Daha yüksek işlem gücü, parçalı ön doldurma Çözümleme Bellek bant genişliği Daha yüksek bant genişliği, toplu işlem, daha az ağırlık baytı Çok cihazlı çalışma Cihazlar arası bağlantı Daha hızlı bağlantı, daha az bölme Üç satır tek bir kart seçiminde farklı yönlere çeker; hangisinin bağlayıcı olduğunu iş yükü profili söyler. Toplu işlem bu tavanı istek başına değil hat başına iyileştirir: aynı ağırlık okuması birden çok dizi için kullanıldığından verim yükselir, tek bir isteğin token hızı ise yükselmez. Sunum katmanındaki toplu işlem ve önbellek ayarları ayrı bir rehberin konusudur; burada yalnızca donanım tavanını belirlemek yeterlidir.
- 06
Çok cihazlı düzeni ve bağlantıyı seç
Model tek cihaza sığmıyorsa tensor paralelliğini yalnızca yüksek bant genişlikli bağlantı varken seçin; yavaş bağlantıda ardışık düzen daha güvenli ama gecikmesi yüksektir.
Düzen Neyi böler Bağlantı ihtiyacı Gecikmeye etkisi Tensor paralelliği Her katmanın ağırlıklarını Yüksek: her katmanda toplama Tek istek hızlanır; bağlantı yavaşsa tersine döner Ardışık düzen paralelliği Katmanları cihazlara Orta: yalnızca bölüm sınırlarında Verim korunur, tek istek gecikmesi artar Kopyalama Yalnızca trafiği Düşük Kuyruk beklemesi düşer, tek istek hızı değişmez Model tek cihaza sığıyorsa kopyalama neredeyse her zaman en basit ve en öngörülebilir seçenektir. Bölme, bir maliyettir: tensor paralelliğinde her katmanda cihazlar arasında veri toplanır ve bu iletişim çözümlemenin her adımında tekrarlanır. Bağlantı yeterince hızlı değilse eklenen kart gecikmeyi düşürmek yerine artırır. Karar sırası bu yüzden nettir: önce sığdır, sığıyorsa kopyala; sığmıyorsa en az bölme ile sığdır.
- 07
Şirket içi ve bulut kararını doluluk üzerinden ver
Kararı kendi doluluk oranınız üzerinden verin: sürekli ve öngörülebilir yük sahipliğe, değişken ve henüz kanıtlanmamış talep kiralamaya yaklaştırır.
Ölçüt Şirket içi lehine Bulut lehine Doluluk Sürekli ve yüksek Değişken; tepe/ortalama oranı büyük Talep belirsizliği Talep ölçülmüş ve kararlı Talep henüz kanıtlanmadı Veri ikametgâhı Veri kurum dışına çıkamıyor Uygun bölge sözleşmeyle sağlanabiliyor Tedarik süresi Beklemeye tahammül var Hemen başlamak gerekiyor Operasyon kapasitesi Donanım ve sürücü işletebilen ekip var Ekip uygulamaya odaklanmalı Yenileme riski Yenileme planı ve bütçesi yazılı Risk sağlayıcıda kalsın Satırların çoğu aynı tarafa düşmüyorsa karar henüz olgunlaşmamıştır; pilotla veri toplayın. Hesabı kendi rakamlarınızla kurun, hazır bir eşikle değil. Sahiplik tarafında donanım, barındırma, enerji, operasyon ekibi ve kullanılmayan kapasite; kiralama tarafında birim fiyat çarpı gerçek kullanım, artı taşınma ve bağımlılık maliyeti. İki tarafı da aynı doluluk varsayımıyla karşılaştırın; sahiplik ancak yüksek ve sürekli dolulukta öne geçer.
Hibrit bir kurgu — taban yükü sahip olunan donanımda, tepe yükü kiralanan kapasitede — kâğıt üzerinde her iki tarafın iyisini alır. Bedeli, iki yığını birden çalışır ve güncel tutmanın operasyon maliyetidir; bu maliyeti hesaba katmadan yapılan hibrit kararı genellikle geri alınır.
SIK DÜŞÜLEN TUZAKLAR
Bütçeyi yalnızca ağırlık boyutuna göre çıkarmak
Eşzamanlılığı belirleyen kalem KV önbelleği ve aktivasyon payıdır. Yüklenirken rahat sığan bir model, tepe eşzamanlılıkta belleği doldurur ve üretimde bellek hatası verir.
Bellek planını ortalama istem uzunluğuna kurmak
Ön doldurma tamponları istem uzunluğuyla büyür. Dağılımın kuyruğundaki tek bir uzun istek, ortalamaya göre boyutlanmış yapılandırmayı tepe saatte düşürür.
Nicemlemeyi bedava hız saymak
Nicemleme bellekten kazandırır ve okunan bayt azaldığı için genelde hızlandırır, ama kalite tarafında bir bedeli vardır. Bedelin büyüklüğü göreve göre değişir; kendi değerlendirme setinizde ölçülmeden karara girmemelidir.
Başlık işlem gücü rakamına bakarak karar vermek
Çözümleme bellek bant genişliğine takılır. Tepe işlem gücü yüksek ama bant genişliği düşük bir kart, tek istek token hızında beklenenin altında kalır.
Kart sayısını artırıp gecikmenin düşmesini beklemek
Tensor paralelliği her katmanda iletişim ekler. Bağlantı yeterince hızlı değilse eklenen her cihaz, kazandırdığı hesaptan fazlasını iletişimde geri alır.
KONTROL LİSTESİ
- Model, tepe eşzamanlılık ve dizi uzunluğu varsayımları yazılı
- Ağırlık belleği hedef duyarlılıkta hesaplandı
- Token başına KV maliyeti formülle çıkarıldı ve tepe eşzamanlılıkla çarpıldı
- Aktivasyon, parçalanma ve çalışma zamanı için ayrılan pay belirlendi
- En uzun istem senaryosu tepe eşzamanlılıkla birlikte denendi
- Bant genişliği tavanı hesaplandı ve ölçülen token hızıyla karşılaştırıldı
- Çok cihazlı düzen seçildiyse bağlantı bant genişliği ve topolojisi doğrulandı
- Şirket içi ve bulut karşılaştırması aynı doluluk varsayımıyla belgelendi
Maddelerin tamamı işaretlenmeden kurulum üretime alınmamalı.
Sık sorulan sorular
Bir modelin kaç GB belleğe ihtiyacı olduğunu nasıl hesaplarım?
Üç kalemi toplayın: ağırlıklar (parametre sayısı × parametre başına bayt), KV önbelleği (2 × katman × KV kafa sayısı × kafa boyutu × bayt × aynı anda tutulan toplam token) ve aktivasyon, parçalanma ile çalışma zamanı için ayrılan pay. Toplam, cihaz belleğinin tamamına değil, pay ayrılmış hâline sığmalıdır.
KV önbelleği neden bu kadar yer kaplıyor?
Çünkü hem eşzamanlı istek sayısıyla hem de her isteğin dizi uzunluğuyla birlikte doğrusal büyür: uzun bağlamlı ve çok kullanıcılı bir kurulumda ağırlıkların yanında kayda değer bir yer tutar. Gruplanmış anahtar-değer kafası kullanan mimarilerde KV kafa sayısı düştüğü için bu maliyet doğrusal olarak azalır.
Nicemleme belleği düşürürken neyi kaybettiriyorum?
Çıktı kalitesinden bir miktar ödün verirsiniz; kayıp göreve ve nicemleme yöntemine göre değişir, evrensel bir oranı yoktur. Kesin olan tek kazanç bellektir: ağırlık boyutu parametre başına bayt karşılığıyla doğrudan küçülür. Çözümleme hızındaki artış ise koşulludur — okunan ağırlık baytı azaldığı için bant genişliğine takılı düşük toplu işte belirgindir, toplu iş büyüyüp darboğaz işlem gücüne kaydıkça erir ve çözme ek yükü kazancı yiyebilir. Kalite etkisi yalnızca kendi değerlendirme setinizde ölçülerek bilinir.
Şirket içi hızlandırıcı mı bulut mu daha mantıklı?
Belirleyici ölçüt doluluk ve talep belirsizliğidir. Yük sürekli, öngörülebilir ve yüksekse; ekip donanım işletebiliyorsa ve veri ikametgâhı zorunluysa sahiplik öne geçer. Talep henüz kanıtlanmamışsa, tepe/ortalama oranı büyükse veya hemen başlamak gerekiyorsa kiralama daha az risk taşır.
Kaynaklar
- 01Hızlandırıcı üreticilerinin bellek, bant genişliği ve sayı biçimi dokümantasyonu — Donanım üreticileri · Dokümantasyon
- 02Model kartları ve mimari yapılandırma dosyaları — Model sağlayıcıları · Dokümantasyon
- 03Sinaptik Research — bellek bütçesi hesap notları — Sinaptik Lab · Teknik rapor
BUILD
Bu rehberi kurumunuzda uygulayalım mı?
Aynı mimariyi kendi verinizle kurmak için discovery oturumundan üretime kadar birlikte ilerliyoruz.
