Yapay zeka modellerinin çıkarım (inference) aşamasında batch size hesaplama, sistem performansını optimize etmek için kritik bir adımdır.
Yapay zeka modellerinin çıkarım (inference) aşamasında batch size hesaplama, sistem performansını optimize etmek için kritik bir adımdır. Batch size, bir seferde işlenecek veri örneği sayısını belirler ve GPU belleği kullanımı, gecikme süresi ile işleme kapasitesi arasında hassas bir denge kurar. Yanlış belirlenmiş bir batch size, bellek taşmalarına, düşük verimliliğe veya artan maliyetlere yol açabilir. Bu makalede, kurumsal ortamlar için pratik hesaplama yöntemlerini adım adım ele alacağız. Hesaplama sürecini anlamak, modellerinizin üretim ortamında maksimum verimle çalışmasını sağlar ve kaynak israfını önler. Özellikle büyük ölçekli uygulamalarda, bu optimizasyon doğrudan iş sürekliliğini etkiler.
Batch size, derin öğrenme modellerinde inference sırasında paralel işleme için belirlenen veri grubunun büyüklüğünü ifade eder. Küçük batch boyutları düşük bellek tüketimi sunsa da, her istek için overhead artar ve throughput düşer. Büyük batch’ler ise GPU’ların paralel işlem gücünden faydalanır, ancak bellek sınırlarını zorlayabilir. Inference senaryolarında, gerçek zamanlı uygulamalar (örneğin, sohbet botları) düşük latency için küçük batch’leri tercih ederken, toplu işleme (batch processing) yüksek throughput için büyük batch’leri kullanır.
Performans etkilerini değerlendirmek için şu faktörleri göz önünde bulundurun: GPU modeli (örneğin, NVIDIA A100’ün 40 GB belleği), model boyutu (parametre sayısı) ve girdi veri tipi (resim, metin). Optimal batch size, sistem kaynaklarını tam kapasite kullanırken hata riskini minimize eder. Pratikte, bu değeri test ederek belirlemek en güvenilir yöntemdir; örneğin, TensorRT veya ONNX Runtime gibi araçlarla bellek profillemesi yapın.
Bellek kullanımı hesabı, batch size belirlemenin temel taşıdır. Formül şu şekildedir: Toplam bellek = (Model ağırlıkları + Aktivasyonlar + Girdi/Çıktı tamponları) × batch size × precision çarpanı. Örneğin, 1 GB model için FP16 precision ile aktivasyonlar 2 GB eklerse, 24 GB GPU belleği olan bir kartta maksimum batch size yaklaşık (24 – 3) / 3 = 7 olur. Bu hesabı pratikte PyTorch’un torch.cuda.memory_allocated() fonksiyonu ile doğrulayın. Bellek rezervasyonu için %80 doluluk sınırı koyun ki dinamik batching sırasında taşma olmasın.
Throughput’u maksimize etmek için batch size’i artırın, ancak latency artışı kabul edilebilir seviyede tutun. Hedef throughput = (saniyede işlenen örnek sayısı). Testlerde, batch size 1’de 100 ms latency varken batch 32’de 200 ms’ye çıkabilir ama throughput 32 kat artar. Araçlar gibi NVIDIA Triton Inference Server ile çoklu model servislerinde dinamik batching uygulayın: Scheduler, gelen istekleri birleştirerek optimal boyuta getirir. Latency bütçenizi (örneğin, 500 ms) aşmamak için üst sınırı belirleyin.
Her GPU mimarisine göre ayarlayın; Ampere serisi tensor core’ları büyük batch’lerde daha verimli. Model için quantization (INT8) uygulayarak batch size’i 2 kat artırabilirsiniz. Örnek: ResNet-50 modeli 224×224 RGB girdilerde, V100 GPU’da batch 64 ideal throughput verir. Hesaplamada, peak bellek kullanımını nvidia-smi ile izleyin ve padding stratejileriyle girdi boyutlarını standartlaştırın.
Uygulamaya geçmek için şu adımları izleyin: 1) Modeli yükleyin ve tek örnekle bellek kullanımını ölçün. 2) Batch size’i ikiye katlayarak artırın, her seferinde peak belleği not edin. 3) Latency ve throughput metriklerini kaydedin (örneğin, requests per second). 4) Optimal noktayı belirleyin: Throughput plato yapana kadar. Python örneği: for bs in [1,2,4,8,16,32]: time_inference = measure_latency(model, batch=bs); print(f”Batch {bs}: {time_inference} ms”). Bu döngüyle 5 dakikada tablo oluşturun.
Yazılım mühendisleri için takeaway: Inference pipeline’ınızı containerize edin (Docker + Kubernetes) ve auto-scaling ile batch size’i yüküne göre uyarlayın. Örnek senaryo: E-ticaret öneri sisteminde, 1000 istek/dakika için batch 16, latency 150 ms hedefiyle %90 GPU kullanım sağlar.
Sonuç olarak, AI model inference batch size hesaplama, sistematik testler ve formül tabanlı yaklaşımlarla gerçekleştirilmelidir. Bu yöntemleri uygulayarak, kurumsal projelerinizde verimliliği %50’ye varan oranda artırabilirsiniz. Sürekli izleme ve A/B testlerle optimizasyonu sürdürün; böylece modelleriniz ölçeklenebilir ve maliyet etkili kalır.