Ultralytics YOLO için MLflow Entegrasyonu

MLflow experiment tracking with Ultralytics YOLO

Giriş

Experiment logging is a crucial aspect of machine learning workflows that enables tracking of various metrics, parameters, and artifacts. It helps to enhance model reproducibility, debug issues, and improve model performance. Ultralytics YOLO, known for its real-time object detection capabilities, now offers integration with MLflow, an open-source platform for complete machine learning lifecycle management.

Bu dokümantasyon sayfası, Ultralytics YOLO projen için MLflow günlük kaydı özelliklerini kurma ve kullanma konusunda kapsamlı bir kılavuzdur.

MLflow nedir?

MLflow, Databricks tarafından geliştirilen ve uçtan uca makine öğrenimi yaşam döngüsünü yönetmeye yarayan açık kaynaklı bir platformdur. Deneyleri takip etmek, kodu tekrarlanabilir çalıştırmalar halinde paketlemek, modelleri paylaşmak ve dağıtmak için araçlar içerir. MLflow, herhangi bir makine öğrenimi kütüphanesi ve programlama dili ile çalışacak şekilde tasarlanmıştır.

Özellikler

  • Metrik Kaydı: Her epok sonunda ve eğitim sonunda metrikleri kaydeder.
  • Parametre Kaydı: Eğitimde kullanılan tüm parametreleri kaydeder.
  • Yapıt (Artifact) Kaydı: Eğitim sonunda ağırlıklar ve yapılandırma dosyaları dahil olmak üzere model yapıtlarını kaydeder.

Kurulum ve Önkoşullar

MLflow'un yüklü olduğundan emin ol. Değilse, pip kullanarak yükle:

pip install mlflow

Ultralytics ayarlarında MLflow günlük kaydının etkinleştirildiğinden emin ol. Bu genellikle mlflow ayar anahtarı ile kontrol edilir. Daha fazla bilgi için ayarlar sayfasına bak.

Ultralytics MLflow Ayarlarını Güncelle

Within the Python environment, call the update method on the settings object to change your settings:

from ultralytics import settings

# Update a setting
settings.update({"mlflow": True})

# Reset settings to default values
settings.reset()

Nasıl Kullanılır

Komutlar

  1. Proje Adı Belirle: Proje adını bir ortam değişkeni aracılığıyla ayarlayabilirsin:

    export MLFLOW_EXPERIMENT_NAME=YOUR_EXPERIMENT_NAME

    Veya bir YOLO modeli eğitirken project=<project> bağımsız değişkenini kullan, örneğin: yolo train project=my_project.

  2. Çalıştırma (Run) Adı Belirle: Proje adı belirlemeye benzer şekilde, çalıştırma adını bir ortam değişkeni aracılığıyla ayarlayabilirsin:

    export MLFLOW_RUN=YOUR_RUN_NAME

    Veya bir YOLO modeli eğitirken name=<name> bağımsız değişkenini kullan, örneğin: yolo train project=my_project name=my_name.

  3. Yerel MLflow Sunucusunu Başlat: Takibi başlatmak için şunu kullan:

    mlflow server --backend-store-uri runs/mlflow

    Bu, varsayılan olarak http://127.0.0.1:5000 adresinde yerel bir sunucu başlatacak ve tüm mlflow günlüklerini 'runs/mlflow' dizinine kaydedecektir. Eğitim çalıştırmalarını farklı bir takip sunucusuna yönlendirmek için, eğitimden önce MLFLOW_TRACKING_URI değerini dışa aktar:

    export MLFLOW_TRACKING_URI=http://127.0.0.1:5000
  4. MLflow Sunucu Örneklerini Sonlandır: Çalışan tüm MLflow örneklerini durdurmak için şunu çalıştır:

    ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9

Günlükleme (Logging)

Günlük kaydı, on_pretrain_routine_end, on_fit_epoch_end ve on_train_end geri çağırma işlevleri (callback functions) tarafından gerçekleştirilir. Bu işlevler eğitim sürecinin ilgili aşamalarında otomatik olarak çağrılır ve parametrelerin, metriklerin ve yapıtların kaydedilmesini yönetirler.

Örnekler

  1. Logging Custom Metrics: You can add custom metrics to be logged by modifying the trainer.metrics dictionary before on_fit_epoch_end is called.

  2. Deney Görüntüleme: Günlüklerini görüntülemek için MLflow sunucuna (genellikle http://127.0.0.1:5000) git ve deneyini ve çalıştırmanı seç. MLflow experiment tracking interface for YOLO

  3. Çalıştırmayı Görüntüleme: Çalıştırmalar, bir deney içindeki bireysel modellerdir. Bir Çalıştırmaya tıkla ve yüklenen yapıtlar ile model ağırlıkları dahil olmak üzere Çalıştırma ayrıntılarını gör. MLflow run details with YOLO artifacts

MLflow'u Devre Dışı Bırakma

MLflow günlük kaydını kapatmak için:

yolo settings mlflow=False

Sonuç

Ultralytics YOLO ile MLflow günlük kaydı entegrasyonu, makine öğrenimi deneylerini takip etmenin düzenli bir yolunu sunar. Performans metriklerini izlemeni ve yapıtları etkili bir şekilde yönetmeni sağlayarak sağlam model geliştirme ve dağıtımına yardımcı olur. Daha fazla ayrıntı için lütfen MLflow resmi dokümantasyonunu ziyaret et.

SSS

Ultralytics YOLO ile MLflow günlük kaydını nasıl kurarım?

Ultralytics YOLO ile MLflow günlük kaydını kurmak için öncelikle MLflow'un yüklü olduğundan emin olman gerekir. Pip kullanarak şu şekilde yükleyebilirsin:

pip install mlflow

Ardından, Ultralytics ayarlarında MLflow günlük kaydını etkinleştir. Bu, mlflow anahtarı kullanılarak kontrol edilebilir. Daha fazla bilgi için ayarlar kılavuzuna bak.

Ultralytics MLflow Ayarlarını Güncelle
from ultralytics import settings

# Update a setting
settings.update({"mlflow": True})

# Reset settings to default values
settings.reset()

Son olarak, takip için yerel bir MLflow sunucusu başlat:

mlflow server --backend-store-uri runs/mlflow

Ultralytics YOLO ile MLflow kullanarak hangi metrikleri ve parametreleri kaydedebilirim?

Ultralytics YOLO ve MLflow, eğitim süreci boyunca çeşitli metriklerin, parametrelerin ve yapıtların kaydedilmesini destekler:

  • Metrik Kaydı: Her epok sonunda ve eğitim tamamlandığında metrikleri takip eder.
  • Parametre Kaydı: Eğitim sürecinde kullanılan tüm parametreleri kaydeder.
  • Yapıt (Artifact) Kaydı: Eğitimden sonra ağırlıklar ve yapılandırma dosyaları gibi model yapıtlarını kaydeder.

Daha ayrıntılı bilgi için Ultralytics YOLO takip dokümantasyonunu ziyaret et.

MLflow günlük kaydını etkinleştirdikten sonra devre dışı bırakabilir miyim?

Evet, ayarları güncelleyerek Ultralytics YOLO için MLflow günlük kaydını devre dışı bırakabilirsin. İşte CLI kullanarak bunu nasıl yapabileceğin:

yolo settings mlflow=False

Daha fazla özelleştirme ve ayarları sıfırlama için ayarlar kılavuzuna başvur.

Ultralytics YOLO takibi için MLflow sunucusunu nasıl başlatıp durdurabilirim?

Ultralytics YOLO'daki deneylerini takip etmek için bir MLflow sunucusu başlatmak istersen, şu komutu kullan:

mlflow server --backend-store-uri runs/mlflow

Bu komut, varsayılan olarak http://127.0.0.1:5000 adresinde yerel bir sunucu başlatır. Çalışan MLflow sunucusu örneklerini durdurman gerekirse, şu bash komutunu kullan:

ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9

Daha fazla komut seçeneği için komutlar bölümüne bak.

MLflow'u Ultralytics YOLO ile deney takibi için entegre etmenin faydaları nelerdir?

MLflow'u Ultralytics YOLO ile entegre etmek, makine öğrenimi deneylerini yönetmen için birçok fayda sağlar:

  • Gelişmiş Deney Takibi: Farklı çalıştırmaları ve sonuçlarını kolayca takip et ve karşılaştır.
  • İyileştirilmiş Model Tekrarlanabilirliği: Tüm parametreleri ve yapıtları kaydederek deneylerinin tekrarlanabilir olduğundan emin ol.
  • Performans İzleme: Model iyileştirmeleri için veriye dayalı kararlar almak amacıyla performans metriklerini zaman içinde görselleştir.
  • Düzenli İş Akışı: Manuel takip yerine model geliştirmeye daha fazla odaklanmak için günlük kaydı sürecini otomatikleştir.
  • İşbirlikçi Geliştirme: Daha iyi işbirliği ve bilgi paylaşımı için deney sonuçlarını ekip üyeleriyle paylaş.

Ultralytics YOLO ile MLflow'u kurma ve kullanma hakkında derinlemesine bir bakış için Ultralytics YOLO için MLflow Entegrasyonu dokümantasyonunu keşfet.

Yorumlar