Ultralytics YOLO27: Bekleme listesine katıl.
YOLO'yu lisansla
Ultralytics Sözlüğüne dön

Mixed Precision

Karma hassasiyetli eğitim, bellek kullanımını ve eğitim süresini azaltmak için sinir ağlarını 16 bitlik matematik ve FP32 ana ağırlıklarla eğitir. Kayıp ölçekleme, BF16 ve AMP'yi ele alır.

Karma hassasiyet, bir sinir ağının matematiksel işlemlerinin çoğunu FP16 (yarı hassasiyet) veya BF16 gibi 16 bitlik bir kayan nokta biçiminde çalıştırırken, model ağırlıklarının 32 bitlik (FP32) ana kopyasını koruyan ve sayısal açıdan hassas işlemleri FP32'de yürüten bir eğitim tekniğidir. 16 bitlik değerler, FP32'ye kıyasla belleğin ve bant genişliğinin yarısını kullanır; modern GPU'larda bulunan Tensor Core'lar da bu değerleri çok daha hızlı çarpar. Böylece karma hassasiyet, FP32 doğruluğunu korurken eğitimi kısaltır ve belleğe daha büyük yığın boyutlarının sığmasını sağlar. Micikevicius ve diğerlerinin 2018'de açıkladığı; FP32 ana ağırlıkları, FP16 aritmetiğini ve kayıp ölçeklemeyi bir araya getiren yöntem, derin öğrenme çerçevelerinin artık Otomatik Karma Hassasiyet (AMP) olarak otomatikleştirdiği yöntemdir.

Karma Hassasiyet Nasıl Çalışır#

16 bitlik eğitimde geri yayılımın ve ağırlık güncellemelerinin FP32 eğitimindeki doğrulukla eşleşmesini üç unsur sağlar:

  1. FP32 Ana Ağırlıkları: Optimizasyon algoritması her güncellemeyi ağırlıkların FP32 kopyasına uygular. FP16 yalnızca yaklaşık üç anlamlı ondalık basamağı koruduğundan, doğrudan FP16 ağırlığına eklenen küçük bir güncelleme genellikle yuvarlama nedeniyle kaybolur.
  2. İşlem Başına Hassasiyet: Autocast bağlamı, en büyük hız artışını Tensor Core'lardan aldıkları için matris çarpımlarını ve evrişimleri 16 bitte çalıştırır; indirgemeleri, softmax'ı ve kaybı ise FP32'de tutar.
  3. Kayıp Ölçekleme: FP16, yaklaşık 6 × 10⁻⁸ değerinden küçük büyüklükleri gösteremez; bu nedenle birçok küçük gradyan alt taşmayla sıfıra yuvarlanır. Geri yayılımdan önce kaybı bir ölçek faktörüyle çarpmak her gradyanı FP16 aralığına taşır; ağırlık güncellemesinden önce gradyanlar aynı faktöre bölünür.

PyTorch AMP içinde, torch.autocast işlem başına tür dönüşümünü, GradScaler ise kayıp ölçeklemeyi yönetir:

import torch
from torch import nn

# Use FP16 on an NVIDIA GPU and BF16 on CPU
device = "cuda" if torch.cuda.is_available() else "cpu"
dtype = torch.float16 if device == "cuda" else torch.bfloat16

model = nn.Linear(512, 10).to(device)  # master weights stay in FP32
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)
scaler = torch.amp.GradScaler(device, enabled=dtype == torch.float16)  # loss scaling for FP16 only

x = torch.randn(64, 512, device=device)
with torch.autocast(device_type=device, dtype=dtype):
    out = model(x)  # the matrix multiply runs in 16-bit
    loss = out.float().pow(2).mean()

scaler.scale(loss).backward()
scaler.step(optimizer)
scaler.update()
print(f"Output: {out.dtype}, weights: {model.weight.dtype}, gradients: {model.weight.grad.dtype}")

CPU'da bu kod parçası katman çıktısı için torch.bfloat16, ağırlıklar ve gradyanları için torch.float32 yazdırır; NVIDIA GPU'da çıktı torch.float16 olur. Tek bir eğitim adımında 16 bitlik matematik ve FP32 ana ağırlıkları birlikte bulunur.

PyTorch'un GradScaler özelliği ölçeği dinamik olarak ayarlar. 65,536 ile başlar, ölçeklenmiş gradyanlar inf veya NaN değerleri içerdiğinde ölçeği yarıya indirip adımı atlar; taşma olmadan art arda 2,000 adım tamamlandığında ölçeği ikiye katlar. Böylece faktör, gradyanların taştığı eşiğin hemen altında dengelenir.

FP16, BF16 ve Daha Düşük Hassiyetler#

FP16, üstel kısım için 5, anlamlı kısım için 10 bit kullanır; bu nedenle hassastır, ancak 65,504'ün üzerinde taşar. BF16, FP32'nin 8 üstel bitini koruyarak yaklaşık 3.4 × 10³⁸'e kadar aynı aralığı kapsar; yalnızca 7 anlamlı biti olduğundan, daha kaba yuvarlama pahasına kayıp ölçeklemeye ihtiyaç duymaz. BF16, Ampere neslinden itibaren NVIDIA GPU'larda, Google TPU'larında ve yakın tarihli birçok CPU'da çalışır; büyük dil modelleri için yaygın eğitim biçimidir. Aynı yaklaşım, NVIDIA'nın Transformer Engine aracılığıyla Hopper ve Blackwell GPU'larda FP8 biçimlerine, Blackwell'de ise NVFP4 gibi FP4 biçimlerine uzanır.

Uygulamada Karma Hassasiyet#

AMP ile ilgili temel pratik risk, 16 bitlik hesaplamalarda NaN kayıplar üreten bir model veya GPU'dur. Ultralytics YOLO26 eğitimi AMP'yi varsayılan olarak etkinleştirir ve amp=True ile CUDA GPU'larda bir YOLO26n modelinin FP32 ve AMP tahminlerini önce karşılaştırır; sonuçlar uyuşmazsa veya GPU, GTX 16 serisi gibi AMP altında NaN kayıplar ürettiği bilinen bir seriye aitse FP32'ye döner. amp="bf16" ayarı, kayıp ölçekleme kapalıyken BF16 autocast'i etkinleştirir.

Karma hassasiyet, eğitimin bellek veya zamanla sınırlı olduğu her yerde yaygın biçimde kullanılır. Otonom araçlar geliştiren ekipler, milyonlarca yüksek çözünürlüklü kare üzerinde nesne algılama modelleri eğitir; etkinleştirme belleğinin yarıya inmesi daha büyük görüntü ve yığın boyutlarına olanak tanır. Tıbbi görüntü analizinde 3B BT ve MRI hacimleri çoğunlukla FP32'de GPU belleğine sığmaz; 16 bitlik etkinleştirmeler, bütün hacimler üzerinde segmentasyon modellerinin eğitilmesini mümkün kılar.

  • Model Kuantizasyonu: Kuantizasyon, eğitilmiş bir modeli daha hızlı çıkarım için INT8 gibi düşük hassasiyetli tamsayılara dönüştürür; karma hassasiyet ise eğitimi hızlandırır ve kayan noktalı ağırlıkları korur.
  • Kuantizasyon Farkındalıklı Eğitim: QAT, INT8 dağıtımından sonra modelin doğruluğunu koruması için eğitim sırasında tamsayı yuvarlamasını taklit eder.
  • Yarı Hassasiyet: Yarı hassasiyet, FP16 sayı biçiminin kendisini ifade eder; karma hassasiyet ise bu biçimi FP32 ile birleştiren eğitim tekniğidir. FP32 ana ağırlıkları veya kayıp ölçekleme olmadan yalnızca FP16 ile eğitim yapmak, küçük güncellemeleri yuvarlamayla, küçük gradyanları da alt taşmayla kaybettirir ve çoğu zaman yakınsamayı engeller.

Çözümleri keşfet

Sporda bilgisayarlı görü

Sporda bilgisayarlı görü

Ultralytics YOLO'nun oyuncu ve top takibi, performans analitiği, antrenörlük içgörüleri ve sporcu rehabilitasyonuyla spor alanında görsel yapay zekâyı nasıl güçlendirdiğini keşfet.
Daha fazla bilgi edin
Hava görüntüleri için bilgisayarlı görü

Hava görüntüleri için bilgisayarlı görü

İHA ve hava görüntülerini Ultralytics YOLO ile tarım, su ürünleri yetiştiriciliği, koruma çalışmaları ve jeo-uzamsal analiz için gerçek zamanlı içgörülere dönüştür.
Daha fazla bilgi edin
Havacılıkta bilgisayarlı görü

Havacılıkta bilgisayarlı görü

Uçak denetimi, pistteki yabancı madde tespiti, havaalanı yer operasyonları ve kompozit malzeme kusurlarının tespiti için Ultralytics YOLO ile havacılık ve uzay sektöründe bilgisayarlı görü uygula.
Daha fazla bilgi edin
Güvenlikte bilgisayarlı görü

Güvenlikte bilgisayarlı görü

Ultralytics YOLO modelleriyle her sahayı koru. Görsel yapay zekâ; çevre izleme, tehdit tespiti, plaka tanıma ve iş yeri güvenliğini destekler.
Daha fazla bilgi edin
Robotikte bilgisayarlı görü

Robotikte bilgisayarlı görü

Ultralytics YOLO modelleriyle daha akıllı makinelere güç ver. Robotikte görsel yapay zekâ; otonom navigasyonu, algılamayı, nesne takibini ve gerçek zamanlı kontrolü destekler.
Daha fazla bilgi edin
Lojistikte bilgisayarlı görü

Lojistikte bilgisayarlı görü

Ultralytics YOLO modelleriyle lojistiği kolaylaştır. Görüntü yapay zekâsı; paket denetimini, ayrıştırmayı, araç takibini ve gerçek zamanlı depo güvenliği izlemeyi mümkün kılar.
Daha fazla bilgi edin
Perakendede bilgisayarlı görü

Perakendede bilgisayarlı görü

Ultralytics YOLO modelleriyle perakendeyi yeniden tasarla. Görüntü yapay zekâsı; envanter takibini, raf izlemeyi, kuyruk yönetimini ve daha kapsamlı müşteri analizlerini mümkün kılar.
Daha fazla bilgi edin
Sağlık hizmetlerinde bilgisayarlı görü

Sağlık hizmetlerinde bilgisayarlı görü

Ultralytics YOLO modelleriyle sağlık çözümleri geliştir. Sağlık hizmetlerinde görüntü yapay zekâsı; daha hızlı tıbbi görüntüleme, daha akıllı tanı ve hasta takibini mümkün kılar.
Daha fazla bilgi edin
Üretimde bilgisayarlı görü

Üretimde bilgisayarlı görü

Ultralytics YOLO modelleriyle üretimi optimize et. Görsel yapay zekâ; kalite kontrolünü, kusur tespitini, kişisel koruyucu donanım uyumunu ve montaj hattı otomasyonunu destekler.
Daha fazla bilgi edin
Otomotivde bilgisayarlı görü

Otomotivde bilgisayarlı görü

Ultralytics YOLO modelleriyle otomotivde bilgisayarlı görüden yararlan. Görsel yapay zekâ; daha akıllı yollar için yol güvenliğini, sürüş desteğini ve araç otomasyonunu ileri taşır.
Daha fazla bilgi edin
Tarımda bilgisayarlı görü

Tarımda bilgisayarlı görü

Ultralytics YOLO modelleriyle akıllı tarıma görüntü yapay zekâsı kazandır. Daha yüksek ve akıllı verim için mahsul izleme, hayvan takibi ve hassas tarımı destekle.
Daha fazla bilgi edin

Geleceğin yapay zekasını birlikte inşa edelim!

Makine öğreniminin geleceğine yolculuğuna başla