YOLO Vision 2026:
Ultralytics Sözlüğüne dön

Gradient Checkpointing

Geri yayılım sırasında aktivasyonları yeniden hesaplayarak gradyan kontrol noktalamanın (gradient checkpointing) GPU belleğini nasıl azalttığını PyTorch örnekleri, ödünleşimler (tradeoffs) ve pratik eğitim rehberliği ile öğren.

Gradyan kontrol noktası oluşturma, ileri geçişten yalnızca seçilen ara aktivasyonları saklayan ve geri yayılım sırasında diğerlerini yeniden hesaplayan, bellek tasarrufu sağlayan bir eğitim tekniğidir. Aktivasyon kontrol noktası oluşturma olarak da adlandırılır, daha düşük tepe bellek kullanımı karşılığında ek hesaplama takası yapar. Adına rağmen bu teknik, parametre gradyanlarını veya model dosyalarını değil aktivasyonları kontrol noktalarına kaydeder; bu da aktivasyon tensörlerinin bir sinir ağının mevcut GPU belleğine sığmasını engellediğinde onu özellikle değerli kılar.

Gradyan Kontrol Noktası Oluşturma Nasıl Çalışır#

Standart bir ileri geçiş sırasında bir sinir ağı, aktivasyonlar adı verilen ara tensörleri hesaplar. Otomatik türev sistemi, PyTorch autograd mekanizmalarında açıklandığı gibi, daha sonra gradyanları hesaplamak için gereken aktivasyonları saklar. Derin ağlar, büyük partiler, yüksek çözünürlüklü görseller ve uzun girdi dizileri, bu kaydedilen tensörlerin önemli miktarda bellek tüketmesine neden olabilir.

Gradyan kontrol noktası oluşturma ağı segmentlere ayırır:

  1. İleri geçiş, seçilen segmentler için girdileri veya sınır aktivasyonlarını saklar.
  2. Bu segmentlerin içindeki diğer ara aktivasyonlar atılır.
  3. Geri geçiş sırasında, kontrol noktası oluşturulmuş her segment, eksik değerleri yeniden oluşturmak için tekrar ileri yönde çalıştırılır.
  4. Yeniden oluşturulan aktivasyonlar, gradyanları hesaplamak için hemen kullanılır.

PyTorch aktivasyon kontrol noktası oluşturma API'si, bu davranışı torch.utils.checkpoint aracılığıyla dışarı aktarır. Eşdeğer kavramlar JAX gradyan kontrol noktası oluşturma ve yeniden materyalleştirme ile TensorFlow teyp kontrol noktası oluşturma olarak görünür.

Kontrol noktası yerleşimi ödünleşimi belirler. Daha fazla bölgeye kontrol noktası koymak genellikle daha fazla bellek tasarrufu sağlar ancak daha fazla işlemi tekrarlar. Aktivasyon ağırlıklı blokların çevresindeki seçici yerleşim, tüm ağı yeniden hesaplamaya kıyasla daha iyi bir denge sağlayabilir.

Ödünleşimler ve İlgili Teknikler#

Gradyan kontrol noktası oluşturma genellikle model parametrelerini, gradyanları ve optimizer durumlarını değiştirmeden bırakır. Birincil hedefi aktivasyon belleğidir ve bazı ileri hesaplamalar iki kez çalıştığı için eğitim yavaşlar. Tam sonuç mimariye, kontrol noktası sınırlarına, parti şekline ve donanıma bağlıdır.

Birkaç ilgili teknikten farklıdır:

  • Gradyan birikimi, model ağırlıklarını güncellemeden önce birden fazla mikro partiyi işleyerek her örneği aynı anda yüklemeden daha büyük etkili bir parti oluşturur. Gradyan kontrol noktası oluşturma ise bunun yerine her mikro parti için tutulan aktivasyonları azaltır.
  • Karışık hassasiyet, seçilen işlemler için daha düşük hassasiyetli veri türleri kullanır. PyTorch otomatik karışık hassasiyet iş akışı, belleği azaltabilir ve uyumlu işlemleri hızlandırabilirken, kontrol noktası oluşturma bilerek ek hesaplama ekler.
  • Parti boyutu küçültme, daha az örneği birlikte işleyerek belleği düşürür. Kontrol noktası oluşturma, daha büyük bir partinin veya girdi çözünürlüğünün uygun kalmasını sağlayabilir.
  • Eğitim kontrol noktaları, kurtarma veya sonraki çıkarım için ağırlıkları ve optimizer durumunu kaydeder. PyTorch model kontrol noktası kılavuzu, aktivasyonun yeniden hesaplanmasıyla ilgisi olmayan bu kalıcılık mekanizmasını açıklar.

Kontrol noktası oluşturulmuş kod, orijinal ve yeniden hesaplanan ileri yürütmeleri arasında işlevsel olarak tutarlı olmalıdır. Kontrol noktası oluşturulmuş bir bölge içindeki değiştirilebilir durum, cihaz aktarımları veya kontrolsüz rastgelelik hatalara veya yanlış gradyanlara neden olabilir. Kod çözücü tarzı transformer'larda, önbelleğe alınmış çıkarım durumu ileri grafiğin yeniden oluşturulmasıyla çakışabileceğinden, kontrol noktası oluşturulmuş eğitim sırasında bir anahtar-değer önbelleğinin de devre dışı bırakılması gerekebilir.

PyTorch Örneği#

Aşağıdaki örnek, bir eğitim adımında belleğe yoğun bir bloğu kontrol noktasına kaydeder:

import torch
from torch import nn
from torch.utils.checkpoint import checkpoint

torch.manual_seed(0)

block = nn.Sequential(
    nn.Linear(1024, 4096),
    nn.ReLU(),
    nn.Linear(4096, 1024),
)
optimizer = torch.optim.AdamW(block.parameters())
inputs = torch.randn(8, 1024, requires_grad=True)
targets = torch.zeros_like(inputs)

optimizer.zero_grad(set_to_none=True)
outputs = checkpoint(block, inputs, use_reentrant=False)
loss = nn.functional.mse_loss(outputs, targets)
loss.backward()
optimizer.step()

Yalnızca bloğun girdileri ve gerekli sınır bilgileri saklanır; dahili aktivasyonları loss.backward() sırasında yeniden oluşturulur. Gerçek projeler, PyTorch tepe ayrılmış GPU belleği gibi bir ölçüm kullanarak kontrol noktası olan ve olmayan çalıştırmaları karşılaştırmalıdır.

Gerçek Dünya Uygulamaları#

  • Yüksek çözünürlüklü bilgisayarlı görü: Tıbbi segmentasyon, havadan algılama ve endüstriyel denetim, özellik haritaları model ağırlıklarından daha fazla bellek tüketen büyük görüntüler üzerinde eğitim alabilir. Seçilen iskelet aşamalarına kontrol noktası koymak, girdileri agresif bir şekilde küçültmek yerine görüntü çözünürlüğünü koruyabilir veya parti başına ek örneklere izin verebilir.

  • Uzun dizili transformer eğitimi: Dizi uzunluğu ve katman sayısı arttıkça aktivasyon depolama alanı hızla büyür. Transformer bloklarını yeniden hesaplamak, daha uzun bağlamların veya daha büyük mikro partilerin aynı hızlandırıcıya sığmasını sağlayabilir. NVIDIA aktivasyon yeniden hesaplama kılavuzu, transformer katmanları için tam ve seçici yeniden hesaplamayı gösterir.

Pratik Rehberlik#

Profil oluşturma, parametrelerin veya optimizer durumunun değil aktivasyonların belleğe hakim olduğunu gösterdiğinde gradyan kontrol noktası oluşturma kullanın. Kapsamı genişletmeden önce büyük tekrarlanan bloklarla başlayın ve tepe belleği, iterasyon süresini ve doğrulama davranışını kıyaslayın.

Belgelenmiş Ultralytics YOLO eğitim yapılandırmaları için ilk adım bellek kontrolleri; otomatik karışık hassasiyet, görüntü boyutu ve fiziksel parti boyutunu içerir. Ultralytics AutoBatch referansı, mevcut GPU belleğine dayalı otomatik parti seçimini açıklar. Yerel donanım yetersiz kaldığında, Ultralytics Platform bulut eğitimi, yönetilen eğitim çalıştırmaları için yapılandırılabilir bulut GPU'ları sağlar. Özel bir PyTorch mimarisi daha hassas aktivasyon-bellek yönetimi gerektirdiğinde gradyan kontrol noktası oluşturma bu kontrolleri tamamlayabilir.

Explore solutions

Real-time AI that works with your team

Robotikte AI

Daha akıllı makineleri Ultralytics YOLO modelleriyle destekle. Robotikteki Vision AI; otonom navigasyonu, algılamayı, nesne takibini ve gerçek zamanlı kontrolü yönlendirir.
Daha fazla bilgi edin
Real-time AI that works with your team

Lojistikte Yapay Zeka

Ultralytics YOLO modelleri ile lojistiği kolaylaştır. Görü Yapay Zekası; paket inceleme, ayıklama, araç takibi ve gerçek zamanlı depo güvenliği izlemeyi mümkün kılar.
Daha fazla bilgi edin
Real-time AI that works with your team

Perakendede AI

Perakendeyi Ultralytics YOLO modelleri ile yeniden hayal et. Görü Yapay Zekası; envanter takibi, raf izleme, sıra yönetimi ve daha akıllı müşteri içgörüleri sağlar.
Daha fazla bilgi edin
Real-time AI that works with your team

Sağlıkta Yapay Zeka

Ultralytics YOLO modelleriyle sağlık çözümleri oluştur. Sağlıkta görüntü tabanlı yapay zeka; daha hızlı tıbbi görüntülemeyi, daha akıllı teşhisleri ve hasta izlemeyi güçlendirir.
Daha fazla bilgi edin
Real-time AI that works with your team

Üretimde Yapay Zeka

Ultralytics YOLO modelleri ile üretimi optimize et. Görü Yapay Zekası; kalite kontrol, kusur tespiti, KKD uyumu ve montaj hattı otomasyonunu yönlendirir.
Daha fazla bilgi edin
Real-time AI that works with your operation

Otomotivde yapay zeka

Ultralytics YOLO modelleriyle otomotivde bilgisayarlı görü uygula. Görüntü tabanlı yapay zeka; yol güvenliğini, sürücü yardımını ve araç otomasyonunu daha akıllı yollar için geliştirir.
Daha fazla bilgi edin
Real-time AI tailored to your operation

Tarımda yapay zeka

Ultralytics YOLO modelleriyle akıllı tarıma görüntü tabanlı yapay zeka getir. Daha yüksek ve akıllı verimler için mahsul takibini, hayvancılık izlemeyi ve hassas tarımı güçlendir.
Daha fazla bilgi edin
Real-time AI that works with your team

Robotikte AI

Daha akıllı makineleri Ultralytics YOLO modelleriyle destekle. Robotikteki Vision AI; otonom navigasyonu, algılamayı, nesne takibini ve gerçek zamanlı kontrolü yönlendirir.
Daha fazla bilgi edin
Real-time AI that works with your team

Lojistikte Yapay Zeka

Ultralytics YOLO modelleri ile lojistiği kolaylaştır. Görü Yapay Zekası; paket inceleme, ayıklama, araç takibi ve gerçek zamanlı depo güvenliği izlemeyi mümkün kılar.
Daha fazla bilgi edin
Real-time AI that works with your team

Perakendede AI

Perakendeyi Ultralytics YOLO modelleri ile yeniden hayal et. Görü Yapay Zekası; envanter takibi, raf izleme, sıra yönetimi ve daha akıllı müşteri içgörüleri sağlar.
Daha fazla bilgi edin
Real-time AI that works with your team

Sağlıkta Yapay Zeka

Ultralytics YOLO modelleriyle sağlık çözümleri oluştur. Sağlıkta görüntü tabanlı yapay zeka; daha hızlı tıbbi görüntülemeyi, daha akıllı teşhisleri ve hasta izlemeyi güçlendirir.
Daha fazla bilgi edin
Real-time AI that works with your team

Üretimde Yapay Zeka

Ultralytics YOLO modelleri ile üretimi optimize et. Görü Yapay Zekası; kalite kontrol, kusur tespiti, KKD uyumu ve montaj hattı otomasyonunu yönlendirir.
Daha fazla bilgi edin
Real-time AI that works with your operation

Otomotivde yapay zeka

Ultralytics YOLO modelleriyle otomotivde bilgisayarlı görü uygula. Görüntü tabanlı yapay zeka; yol güvenliğini, sürücü yardımını ve araç otomasyonunu daha akıllı yollar için geliştirir.
Daha fazla bilgi edin
Real-time AI tailored to your operation

Tarımda yapay zeka

Ultralytics YOLO modelleriyle akıllı tarıma görüntü tabanlı yapay zeka getir. Daha yüksek ve akıllı verimler için mahsul takibini, hayvancılık izlemeyi ve hassas tarımı güçlendir.
Daha fazla bilgi edin
Real-time AI that works with your team

Robotikte AI

Daha akıllı makineleri Ultralytics YOLO modelleriyle destekle. Robotikteki Vision AI; otonom navigasyonu, algılamayı, nesne takibini ve gerçek zamanlı kontrolü yönlendirir.
Daha fazla bilgi edin
Real-time AI that works with your team

Lojistikte Yapay Zeka

Ultralytics YOLO modelleri ile lojistiği kolaylaştır. Görü Yapay Zekası; paket inceleme, ayıklama, araç takibi ve gerçek zamanlı depo güvenliği izlemeyi mümkün kılar.
Daha fazla bilgi edin
Real-time AI that works with your team

Perakendede AI

Perakendeyi Ultralytics YOLO modelleri ile yeniden hayal et. Görü Yapay Zekası; envanter takibi, raf izleme, sıra yönetimi ve daha akıllı müşteri içgörüleri sağlar.
Daha fazla bilgi edin
Real-time AI that works with your team

Sağlıkta Yapay Zeka

Ultralytics YOLO modelleriyle sağlık çözümleri oluştur. Sağlıkta görüntü tabanlı yapay zeka; daha hızlı tıbbi görüntülemeyi, daha akıllı teşhisleri ve hasta izlemeyi güçlendirir.
Daha fazla bilgi edin
Real-time AI that works with your team

Üretimde Yapay Zeka

Ultralytics YOLO modelleri ile üretimi optimize et. Görü Yapay Zekası; kalite kontrol, kusur tespiti, KKD uyumu ve montaj hattı otomasyonunu yönlendirir.
Daha fazla bilgi edin
Real-time AI that works with your operation

Otomotivde yapay zeka

Ultralytics YOLO modelleriyle otomotivde bilgisayarlı görü uygula. Görüntü tabanlı yapay zeka; yol güvenliğini, sürücü yardımını ve araç otomasyonunu daha akıllı yollar için geliştirir.
Daha fazla bilgi edin
Real-time AI tailored to your operation

Tarımda yapay zeka

Ultralytics YOLO modelleriyle akıllı tarıma görüntü tabanlı yapay zeka getir. Daha yüksek ve akıllı verimler için mahsul takibini, hayvancılık izlemeyi ve hassas tarımı güçlendir.
Daha fazla bilgi edin

Yapay zekanın geleceğini birlikte inşa edelim!

Yolculuğuna makine öğreniminin geleceğiyle başla