Scalability
Ölçeklenebilirlik, bir sistemin kaynak ekleyerek daha fazla veriyi, kullanıcıyı veya hesaplama yükünü işleyebilme yeteneğidir. Dikey ve yatay ölçeklendirme, Amdahl yasası ve çok GPU'lu yapay zekâ.
Ölçeklenebilirlik, performansı ve iş birimi başına maliyeti kabul edilebilir düzeyde tutarken kaynak ekleyerek artan iş yükünü (daha fazla veri, kullanıcı, istek veya daha büyük bir model gibi) karşılayabilme yeteneğidir. Donanımı iki katına çıkarmak yapılabilecek işi neredeyse iki katına çıkarıyorsa sistem iyi ölçeklenir; ek makineler zamanlarını birbirini bekleyerek geçiriyorsa kötü ölçeklenir. Yapay zekâda ölçeklenebilirlik üç noktada geçerlidir: büyük veriyi alıp ön işlemden geçirmesi gereken veri işlem hatları, birçok hızlandırıcıya yayılan eğitim işleri ve çıkarım gecikmesini artırmadan daha fazla isteği yanıtlaması gereken çıkarım hizmetleri.
Dikey ve Yatay Ölçeklendirme#
Dikey ölçeklendirme veya ölçek artırma, iş yükünü daha büyük bir makineye taşır: daha fazla CPU çekirdeği, daha fazla RAM veya daha fazla belleğe sahip bir GPU. Kod değişikliği gerektirmez; ancak mevcut en büyük makinede sınıra ulaşır ve tek bir arıza noktası bırakır. Yatay ölçeklendirme veya ölçek genişletme, daha fazla makine ekler ve işi bu makineler arasında böler. Bunun sabit bir üst sınırı yoktur, ancak yazılımın işi bölmesi, yükü dengelemesi ve sonuçları koordine etmesi gerekir. Web ve çıkarım hizmetleri durum bilgisi tutmadıklarında kolayca yatay ölçeklenir: oturumları ve verileri paylaşılan depolarda tutarak her çoğaltmanın her isteği yanıtlayabilmesini sağlarlar. Veritabanları ise verilerini anahtara göre makineler arasında bölümlendirerek yatay ölçeklenir.
Bulut platformları yatay ölçeklendirmeyi otomatikleştirir. Kubernetes üzerinde Yatay Pod Otomatik Ölçekleyici, replika sayısını mevcut replika sayısının gözlemlenen metriğin hedef değere oranıyla çarpımını yukarı yuvarlayarak hesaplar: CPU kullanımı ortalama %90 olan 4 replika, hedef %60 iken 6'ya çıkar. Bu otomasyon, bulut bilişimin esneklik olarak adlandırdığı şeydir ve sunucusuz bilişim trafik durduğunda replika sayısını sıfıra indirir.
Ölçeklendirmenin Sınırları#
Her paralel iş, sonraki toplu işi okuma, sonuçları eşitleme veya bir kontrol noktası yazma gibi bölünemeyen işler içerir. Gene Amdahl, 1967'de bu seri kesrin kaç işlemci eklenirse eklensin hız artışını sınırladığını gösterdi. Bu sonuç artık Amdahl yasası olarak bilinir:
# Amdahl's law: speedup on n workers when a fraction p of the work runs in parallel
p = 0.95 # parallel fraction; the other 5% runs on one worker
for n in (1, 8, 64, 512):
speedup = 1 / ((1 - p) + p / n)
efficiency = speedup / n # share of the added hardware doing useful work
print(f"{n:>4} workers: {speedup:5.1f}x speedup, {efficiency:4.0%} efficiency")
print(f"Limit with unlimited workers: {1 / (1 - p):.0f}x")İşin %95'i paralel olduğunda 8 çalışan, %74 verimlilikle 5,9 kat; 64 çalışan, %24 verimlilikle 15,4 kat; 512 çalışan ise %4 verimlilikle 19,3 kat hız artışı sağlar ve çalışan sayısı ne olursa olsun 20 katı aşmak mümkün değildir. John Gustafson 1988'de gerçek kullanıcıların makineyle birlikte problemi de büyüttüğüne, dolayısıyla paralel kısmın büyüyüp seri payın küçüldüğüne dikkat çekti. Sabit bir problemde hız artışını ölçmeye güçlü ölçeklendirme, problemi donanımla birlikte büyütmeye ise zayıf ölçeklendirme denir; büyük ölçekli eğitim çalışmaları bu ikinci düzende işler. İletişim de başka bir sınır getirir: veri paralelliğiyle yapılan eğitimde eklenen her GPU'nun her adımda gradyanları diğerleriyle paylaşması gerekir; bu nedenle bir işin ne kadar ölçeklenebileceğini çoğu zaman ağ bant genişliği belirler.
Eğitimi ve Çıkarımı Ölçeklendirme#
Dağıtık eğitim, modelin tek bir aygıta sığıp sığmamasına göre bir paralellik stratejisi seçer. Veri paralelliğinde her GPU modelin tam bir kopyasını tutar, her toplu işin kendi bölümünü işler ve PyTorch'un DistributedDataParallel uygulamasında olduğu gibi tümüyle azaltma yoluyla gradyanları diğer GPU'larla ortalar. Tek bir GPU'ya sığmayacak kadar büyük modeller, tümüyle parçalı veri paralelliği, tensör paralelliği veya işlem hattı paralelliği ile bölünür; gradyan biriktirme ise daha az aygıtta büyük etkin toplu iş boyutlarına ulaşmayı sağlar.
Ultralytics YOLO, çoklu GPU eğitimi için veri paralelliğini kullanır: device=[0, 1] değerini geçirmek, torch.distributed.run aracılığıyla DistributedDataParallel çalışan süreçlerini başlatır ve grubu eşit olarak böler; böylece iki GPU'da batch=64 ayarı her GPU'ya adım başına 32 görüntü verir.
Her istek küçük ve bağımsız olduğundan çıkarım farklı biçimde ölçeklenir. İstekleri toplu işlerde gruplamak, gecikmeyi az miktarda artırırken GPU kullanımını ve iş hacmini yükseltir; sürekli toplu işleme de belirteçleri tek tek üreten LLM'ler için aynı işi yapar. Model sunumu sistemleri, trafik arttıkça yük dengeleyicinin arkasına yeni çoğaltmalar ekler. Model niceleme ve budama her çoğaltmanın maliyetini düşürür, böylece aynı donanım daha fazla isteğe hizmet eder. Uç yapay zekâ ise çıkarımı tek bir veri merkezine değil, binlerce aygıta dağıtarak ölçeklenir.
Ölçeklenebilirlik ve İlgili Terimler#
- Performans: Bir sistemin belirli bir yükte ne kadar hızlı veya doğru olduğu; gecikme, iş hacmi ya da doğrulukla ölçülür. Ölçeklenebilirlik, yük ve kaynaklar arttıkça bu değerlerin nasıl korunduğunu açıklar.
- Esneklik: Gün içindeki talep değiştikçe kaynakların otomatik olarak eklenip kaldırılması; çoğu zaman yatay ölçeklenmiş bir hizmetin çoğaltmalarını ekleyip kaldırma yoluyla yapılır.
- Ölçekleme yasaları: Bir modelin kaybı ile parametreleri, eğitim verileri ve hesaplama kaynakları arasındaki deneysel ilişkiler. Model kalitesini tahmin ederler; sistemin ölçeklenebilirliği ise gerektirdikleri hesaplama kaynaklarının verimli kullanılıp kullanılamayacağını belirler.










