Callback
Geri çağrıların (callbacks) Ultralytics YOLO26 eğitimini nasıl optimize ettiğini keşfet. Yapay zeka iş akışlarını geliştirmek için erken durdurmayı, kontrol noktası kaydetmeyi ve özel günlük kaydını uygulamayı öğren.
Yazılım mühendisliği ve yapay zeka (AI) alanında, callback (geri çağırma), başka bir koda argüman olarak aktarılan ve belirli bir zamanda çalıştırılması (geri çağrılması) beklenen bir çalıştırılabilir kod parçasıdır. Derin öğrenme (DL) çerçeveleri bağlamında callback'ler, geliştiricilerin çekirdek eğitim kodunu değiştirmeden model eğitimi döngüsünün davranışını özelleştirmelerine olanak tanıyan temel araçlardır. Bunlar, bir epoch başlangıcı veya sonu, eğitim partisi veya tüm eğitim oturumu gibi eğitim sürecinin çeşitli aşamalarında belirli eylemleri gerçekleştiren otomatik tetikleyiciler olarak işlev görürler.
Link to this sectionMakine Öğreniminde Callback'lerin Rolü#
Karmaşık bir sinir ağını eğitmek saatler, hatta günler sürebilir. Callback'ler olmadan, eğitim süreci genellikle manuel denetim gerektiren ve tamamlanana kadar çalışan bir "kara kutu"dur. Callback'ler, sistemin gerçek zamanlı performans metriklerine göre kendini düzenlemesine olanak tanıyarak gözlemlenebilirlik ve kontrol sağlar.
PyTorch veya TensorFlow gibi üst düzey kütüphaneler kullanılırken, callback'ler optimizasyon algoritmasına mantık eklemenin bir yolunu sunar. Örneğin, bir model iyi öğreniyorsa bir callback mevcut durumu kaydedebilir; eğer öğrenme durursa, bir callback kaynak tasarrufu sağlamak için süreci durdurabilir. Bu, makine öğrenimi (ML) iş akışını daha verimli ve sağlam hale getirir.
Link to this sectionYaygın Uygulamalar ve Gerçek Dünya Örnekleri#
Callback'ler çok yönlüdür ve model izleme ve optimizasyon sırasında çok çeşitli görevler için kullanılabilir.
- Erken Durdurma (Early Stopping): En yaygın kullanımlardan biri erken durdurmadır. Bu callback, doğrulama verisi kaybı gibi belirli bir metriği izler. Kayıp, belirlenen sayıda epoch boyunca azalmazsa, callback eğitimi durdurur. Bu, aşırı öğrenmeyi (overfitting) önleyerek modelin eğitim verisini ezberlemek yerine yeni verilere iyi bir şekilde genelleme yapmasını sağlar.
- Model Kontrol Noktaları (Checkpointing): Uzun süreli eğitim çalışmalarında donanım arızaları felaket olabilir. Bir kontrol noktası callback'i, model ağırlıklarını düzenli aralıklarla (örneğin her epoch sonunda) veya model doğruluk veya ortalama hassasiyet (mAP) gibi metriklerde yeni bir "en iyi" skora ulaştığında kaydeder. Bu, her zaman en iyi performans gösteren modelin kayıtlı bir sürümüne sahip olmanı sağlar.
- Öğrenme Oranı Zamanlama: Öğrenme oranı, model ağırlıkları her güncellendiğinde modelin tahmini hataya yanıt olarak ne kadar değişeceğini kontrol eder. Bir callback, bu oranı dinamik olarak ayarlayabilir; öğrenme platoya ulaştığında oranı düşürerek modelin optimal bir çözüme yakınsamasına yardımcı olur; bu teknik genellikle öğrenme oranı düşüşü olarak adlandırılır.
- Günlükleme ve Görselleştirme: Callback'ler, deney takibi araçlarıyla entegre olmak için sıklıkla kullanılır. Metrikleri TensorBoard veya MLflow gibi panellere aktararak veri bilimcilerin kayıp fonksiyonlarını ve performans grafiklerini gerçek zamanlı olarak görselleştirmelerini sağlarlar.
Link to this sectionUltralytics YOLO ile Callback Uygulama#
The Ultralytics library supports a robust callback system, allowing users to hook into events during the training of models like YOLO26. This is particularly useful for users managing workflows on the Ultralytics Platform who need custom logging or control logic.
Aşağıda, Python API kullanarak her eğitim epoch'unun sonunda bir mesaj yazdıran özel bir callback'in nasıl tanımlanacağına ve kaydedileceğine dair kısa bir örnek yer almaktadır:
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)Link to this sectionCallback'ler vs. Hook'lar#
While related, it is helpful to distinguish callbacks from hooks. In frameworks like PyTorch, hooks are generally lower-level functions attached to specific tensor operations or neural network layers to inspect or modify gradients and outputs during the forward or backward pass. In contrast, callbacks are typically higher-level abstractions tied to the training loop events (start, end, batch processing) rather than the mathematical computation graph itself.
Link to this sectionDaha Fazla Okuma ve Kaynaklar#
For those looking to deepen their understanding of how to optimize training workflows, exploring hyperparameter tuning is a logical next step. Additionally, understanding the underlying computer vision (CV) tasks such as object detection and instance segmentation will provide context on why precise training control via callbacks is necessary. For enterprise-grade management of these processes, the Ultralytics Platform offers integrated solutions that automate many of these callback-driven behaviors.






