Callback
Geri çağırmaların Ultralytics YOLO26 eğitimini nasıl optimize ettiğini keşfet. Yapay zekâ iş akışlarını geliştirmek için erken durdurma, kontrol noktası oluşturma ve özel günlük kaydını uygulamayı öğren.
Yazılım mühendisliği ve yapay zekâ (AI) alanında geri çağırma, başka bir koda bağımsız değişken olarak aktarılan ve ardından belirli bir zamanda bu bağımsız değişkeni yürütmesi (geri çağırması) beklenen çalıştırılabilir bir kod parçasıdır. Derin öğrenme (DL) çerçeveleri bağlamında geri çağırmalar, geliştiricilerin temel eğitim kodunu değiştirmeden model eğitim döngüsünün davranışını özelleştirmesine olanak tanıyan temel araçlardır. Eğitim sürecinin epoch, eğitim grubu veya tüm eğitim oturumunun başlangıcı ya da sonu gibi çeşitli aşamalarında belirli eylemleri gerçekleştiren otomatik tetikleyiciler olarak çalışırlar.
Makine Öğreniminde Geri Çağırmaların Rolü#
Karmaşık bir sinir ağı eğitmek saatler, hatta günler sürebilir. Geri çağırmalar olmadan eğitim süreci, tamamlanana kadar çalışan ve çoğu zaman manuel denetim gerektiren bir "kara kutu" niteliğindedir. Geri çağırmalar gözlemlenebilirlik ve kontrol sağlayarak sistemin gerçek zamanlı performans ölçümlerine göre kendi kendini düzenlemesine olanak tanır.
PyTorch veya TensorFlow gibi üst düzey kütüphaneler kullanılırken geri çağırmalar, optimizasyon algoritmasına mantık eklemenin bir yolunu sunar. Örneğin bir model iyi öğreniyorsa geri çağırma mevcut durumu kaydedebilir; model öğrenmeyi durdurursa kaynakları korumak için süreci durdurabilir. Bu, makine öğrenimi (ML) iş akışını daha verimli ve sağlam hâle getirir.
Yaygın Uygulamalar ve Gerçek Dünya Örnekleri#
Geri çağırmalar çok yönlüdür ve model izleme ile optimizasyon sırasında çok çeşitli görevlerde kullanılabilir.
- Erken Durdurma: En yaygın kullanımlardan biri erken durdurma işlemidir. Bu geri çağırma, doğrulama verilerinin kaybı gibi belirli bir metriği izler. Kayıp, belirli sayıda epoch boyunca azalmayı bırakırsa geri çağırma eğitimi durdurur. Bu, aşırı öğrenmeyi önleyerek modelin eğitim verilerini ezberlemek yerine yeni verilere iyi genelleme yapmasını sağlar.
- Model Kontrol Noktası Oluşturma: Uzun eğitim çalıştırmalarında donanım arızaları felaketle sonuçlanabilir. Kontrol noktası geri çağırması, model ağırlıklarını düzenli aralıklarla (ör. her epoch'ta) veya yalnızca model doğruluk ya da ortalama kesinlik (mAP) gibi metriklerde yeni bir "en iyi" puana ulaştığında kaydeder. Bu, en iyi performansı gösteren modelin kayıtlı bir sürümünün her zaman elinde olmasını sağlar.
- Öğrenme Oranı Zamanlaması: Öğrenme oranı, model ağırlıkları her güncellendiğinde modelin tahmin edilen hataya karşı ne ölçüde değişeceğini kontrol eder. Bir geri çağırma bu oranı dinamik olarak ayarlayabilir ve öğrenme durağanlaştığında azaltarak modelin en uygun çözüme yakınsamasına yardımcı olabilir; bu teknik genellikle öğrenme oranı azaltma olarak adlandırılır.
- Günlük Kaydı ve Görselleştirme: Geri çağırmalar, deney izleme araçlarıyla bütünleşmek için sıklıkla kullanılır. Metrikleri TensorBoard veya MLflow gibi panolara aktararak veri bilimcilerin kayıp fonksiyonlarını ve performans grafiklerini gerçek zamanlı olarak görselleştirmesine olanak tanırlar.
Ultralytics YOLO ile Geri Çağırmaları Uygulama#
Ultralytics kütüphanesi, YOLO26 gibi modellerin eğitimi sırasında gerçekleşen olaylara kancalanmana olanak tanıyan sağlam bir geri çağırma sistemini destekler. Bu özellik, özel günlük kaydı veya kontrol mantığı gerektiren Ultralytics Platform iş akışlarını yöneten kullanıcılar için özellikle yararlıdır.
Aşağıda, Python API kullanarak her eğitim epoch'unun sonunda bir ileti yazdıran özel bir geri çağırmanın nasıl tanımlanıp kaydedileceğine dair kısa bir örnek verilmiştir:
from ultralytics import YOLO
# Define a custom callback function
def on_train_epoch_end(trainer):
"""Callback function to execute at the end of each training epoch."""
print(f"Epoch {trainer.epoch + 1} complete. Current Fitness: {trainer.fitness}")
# Load the YOLO26 model (latest generation)
model = YOLO("yolo26n.pt")
# Register the custom callback to the model
model.add_callback("on_train_epoch_end", on_train_epoch_end)
# Train the model with the callback active
model.train(data="coco8.yaml", epochs=3)Geri Çağırmalar ve Kancalar#
İlişkili olsalar da geri çağırmalar ile kancaları birbirinden ayırmak yararlıdır. PyTorch gibi çerçevelerde kancalar genellikle belirli tensor işlemlerine veya sinir ağı katmanlarına eklenen ve ileri ya da geri geçiş sırasında gradyanları ve çıktıları inceleyen veya değiştiren daha düşük düzeyli işlevlerdir. Buna karşılık geri çağırmalar genellikle matematiksel hesaplama grafiğinin kendisinden ziyade eğitim döngüsündeki olaylara (başlangıç, bitiş, grup işleme) bağlı daha üst düzey soyutlamalardır.
İleri Okuma ve Kaynaklar#
Eğitim iş akışlarını nasıl optimize edeceğine ilişkin anlayışını derinleştirmek istiyorsan hiperparametre ayarlamayı incelemek mantıklı bir sonraki adımdır. Ayrıca bilgisayarlı görü (CV) kapsamındaki nesne algılama ve örnek bölütleme gibi temel görevleri anlaman, geri çağırmalar aracılığıyla hassas eğitim kontrolünün neden gerekli olduğunu kavramana yardımcı olur. Bu süreçlerin kurumsal düzeyde yönetimi için Ultralytics Platform, geri çağırmalarla yönlendirilen bu davranışların çoğunu otomatikleştiren entegre çözümler sunar.









