Yarı Hassasiyet
Yarım duyarlıklı (FP16) hesaplamanın daha hızlı olması, bellek kullanımının azalması ve model dağıtımının verimli olması sayesinde yapay zekayı nasıl hızlandırdığını keşfedin.
Yarı hassasiyet, FP16 olarak da bilinir, bir sayıyı temsil etmek için 16 bit bellek kullanan bir kayan nokta sayı formatıdır; bu, daha yaygın olan 32 bit tek hassasiyetli (FP32) veya 64 bit çift hassasiyetli (FP64) formatların aksinedir. Derin öğrenme bağlamında, yarı hassasiyet kullanmak bir modelin bellek ayak izini ve hesaplama gereksinimlerini önemli ölçüde azaltır. Bu ödünleşme, azaltılmış sayısal aralık ve hassasiyet pahasına gelir. Bununla birlikte, modern teknikler, özellikle karışık hassasiyetli eğitim, model doğruluğu üzerinde minimum etkiyle daha hızlı eğitim ve çıkarım sağlayarak FP16'yı verimli makine öğreniminin (ML) temel taşı haline getirmiştir.
Yarı Hassasiyet (Half-Precision) Nasıl Çalışır?
FP32'den FP16'ya geçmek, model ağırlıklarını ve aktivasyonları depolamak için gereken bellek miktarını yarıya indirir. Bu, daha büyük modeller, daha büyük batch boyutları veya daha az belleğe sahip GPU'lar üzerinde eğitim yapılmasını sağlar. Ayrıca, NVIDIA Tensor Çekirdekleri gibi modern GPU'lar, 16 bit matris işlemlerini 32 bit işlemlere göre çok daha yüksek hızlarda gerçekleştirmek için özel olarak tasarlanmıştır.
FP16 ile ilgili temel zorluk, eğitim sırasında kaybolan gradyanlar gibi sorunlara yol açabilen sınırlı sayısal aralığıdır. Bunu önlemek için, yarı hassasiyet neredeyse her zaman karma hassasiyetli bir yaklaşım kullanılarak uygulanır. Bu strateji, hız için çoğu hesaplamayı FP16'da gerçekleştirmeyi içerir, ancak sayısal kararlılığı korumak için ağırlık güncellemeleri ve belirli kayıp fonksiyonu hesaplamaları gibi kritik işlemler için stratejik olarak FP32'yi kullanır. PyTorch ve TensorFlow gibi derin öğrenme çerçeveleri, otomatik karma hassasiyetli eğitim için yerleşik destek sunar.
Uygulamalar ve Örnekler
Yarı hassasiyet, öncelikle karma hassasiyet teknikleri aracılığıyla yaygın olarak kullanılır:
- Model Eğitimini Hızlandırma: Görüntü sınıflandırması veya doğal dil işleme (NLP) gibi büyük derin öğrenme modellerinin eğitimi, karma duyarlılık kullanılarak önemli ölçüde hızlandırılabilir, bu da eğitim süresini ve maliyetlerini azaltır. Ultralytics HUB gibi platformlar genellikle bulut eğitim oturumları sırasında bu optimizasyonları kullanır.
- Nesne Algılama Çıkarımını Optimize Etme: Ultralytics YOLO11 gibi modeller, daha hızlı gerçek zamanlı çıkarım için FP16 hassasiyetiyle ONNX veya TensorRT gibi formatlara aktarılabilir. Bu, birden fazla video akışını analiz eden bir güvenlik sistemi veya yüksek hızlı bir üretim hattında kalite kontrolü gibi yüksek verimliliğe ihtiyaç duyan uygulamalar için çok önemlidir.
- Kaynak Kısıtlı Cihazlarda Dağıtım: FP16 modellerinin azaltılmış bellek ayak izi ve hesaplama maliyeti, NVIDIA Jetson gibi uç yapay zeka platformlarında veya TensorFlow Lite veya Apple'ın Core ML'si gibi çerçeveler kullanan mobil cihazlarda dağıtım için uygun hale getirir.
- Büyük Dil Modellerinin (LLM'ler) Eğitimi: GPT-3 ve diğer temel modeller gibi modellerin muazzam boyutu, modelleri belleğe sığdırmak ve eğitimi makul zaman dilimlerinde tamamlamak için 16 bitlik formatların kullanılmasını gerektirir.
Yarı Hassasiyet ve Diğer Formatlar
- Bfloat16 (BF16): Google tarafından geliştirilen alternatif bir 16-bit format olan Bfloat16, FP16'ya kıyasla üsse daha fazla, mantise daha az bit ayırır. Bu, ona FP32 ile aynı dinamik aralığı verir, bu da onu yetersiz akışa ve taşmaya karşı daha dirençli hale getirir, ancak daha düşük hassasiyet pahasına. Google'ın TPU'larında yoğun bir şekilde kullanılır. Google Cloud AI Blog'unda hakkında daha fazla bilgi edinebilirsiniz.
- Model Nicemlemesi (Model Quantization): Her ikisi de model optimizasyon teknikleri olmasına rağmen, model nicemlemesi (model quantization) genellikle kayan nokta ağırlıklarını (FP32 veya FP16) daha düşük bitli tamsayı formatlarına, en yaygın olarak 8 bitlik tamsayılara (INT8) dönüştürür. Bu, özellikle CPU'larda ve belirli hızlandırıcılarda daha da büyük hızlanmalar sağlayabilir, ancak genellikle model performansında önemli bir düşüşü önlemek için Nicemleme Duyarlı Eğitim (Quantization-Aware Training - QAT) gibi daha dikkatli bir kalibrasyon süreci gerektirir.
- Tek Duyarlıklı (FP32): Bu, çoğu derin öğrenme çerçevesindeki varsayılan formattır. Yüksek hassasiyet ve geniş bir dinamik aralık sunarak eğitimi sağlamlaştırır. Ancak, yarı duyarlıklıdan daha yavaş ve daha fazla bellek yoğundur, bu da onu büyük modelleri dağıtmak veya maksimum hız gerektiren uygulamalar için daha az ideal hale getirir. Bu formatlar arasındaki ödünleşimler, çeşitli model karşılaştırmalarında gösterildiği gibi önemli bir husustur.