Kurumsal kullanıma hazır güvenlik: ISO 27001 + SOC 2 Tip I uyumlu.

Link to this sectionUltralytics YOLO için MLflow Entegrasyonu#

MLflow experiment tracking with Ultralytics YOLO

Link to this sectionGiriş#

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 projeniz için MLflow günlüğü özelliklerini kurmaya ve kullanmaya yönelik kapsamlı bir kılavuzdur.

Link to this sectionMLflow nedir?#

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

Link to this sectionÖzellikler#

  • Metrik Günlüğü: Her epokun sonunda ve eğitimin sonunda metrikleri günlüğe kaydeder.
  • Parametre Günlüğü: Eğitimde kullanılan tüm parametreleri günlüğe kaydeder.
  • Yapı Günlüğü: Eğitimin sonunda ağırlıklar ve yapılandırma dosyaları dahil olmak üzere model yapılarını günlüğe kaydeder.

Link to this sectionKurulum 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üğü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()

Link to this sectionNasıl Kullanılır#

Link to this sectionKomutlar#

  1. Proje Adı Belirleme: 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> argümanını kullan, örneğin yolo train project=my_project.

  2. Çalıştırma Adı Belirleme: Proje adı belirlemeye benzer şekilde, çalıştırma adını bir ortam değişkeni ile ayarlayabilirsin:

    export MLFLOW_RUN=YOUR_RUN_NAME

    Veya bir YOLO modeli eğitirken name=<name> argümanını kullan, örneğin yolo train project=my_project name=my_name.

  3. Yerel MLflow Sunucusunu Başlatma: İzlemeye başlamak 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 izleme 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. Eğitimden Sonra MLflow Çalıştırmasını Aktif Tutma: Varsayılan olarak Ultralytics, eğitim bittiğinde MLflow çalıştırmasını otomatik olarak sonlandırır. Çalıştırmayı açık tutmak için (örneğin, aynı not defterinden ek metrikler veya yapılar kaydetmek için), eğitimden önce MLFLOW_KEEP_RUN_ACTIVE değerini True olarak ayarla:

    export MLFLOW_KEEP_RUN_ACTIVE=True

    Değer büyük/küçük harf duyarsız olarak ayrıştırılır; yalnızca true dizesi bu davranışı etkinleştirir ve diğer tüm değerler (ayarlanmamış olanlar dahil) çalıştırmayı kapatma varsayılanını korur. Daha sonra mlflow.end_run() ile manuel olarak kapatmayı unutma.

  5. MLflow Sunucu Örneklerini Sonlandırma: Ç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

Link to this sectionGünlükleme#

Günlük tutma işlemi on_pretrain_routine_end, on_fit_epoch_end ve on_train_end geri çağırma fonksiyonları tarafından gerçekleştirilir. Bu fonksiyonlar eğitim sürecinin ilgili aşamalarında otomatik olarak çağrılır ve parametrelerin, metriklerin ve yapıların günlüğe kaydedilmesini yönetirler.

Link to this sectionÖ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. Deneyleri 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ılar ve model ağırlıkları dahil olmak üzere Çalıştırma ayrıntılarını gör. MLflow run details with YOLO artifacts

Link to this sectionMLflow'u Devre Dışı Bırakma#

MLflow günlüğünü kapatmak için:

yolo settings mlflow=False

Link to this sectionSonuç#

Ultralytics YOLO ile MLflow günlüğü entegrasyonu, makine öğrenimi deneylerini takip etmenin düzenli bir yolunu sunar. Performans metriklerini izlemeni ve yapıları 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.

Link to this sectionSSS#

Link to this sectionUltralytics YOLO ile MLflow günlüğünü nasıl kurarım?#

Ultralytics YOLO ile MLflow günlüğünü kurmak için önce MLflow'un yüklü olduğundan emin olmalısın. Pip kullanarak yükleyebilirsin:

pip install mlflow

Ardından, Ultralytics ayarlarında MLflow günlüğü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, izleme için yerel bir MLflow sunucusu başlat:

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

Link to this sectionUltralytics YOLO ile MLflow kullanarak hangi metrikleri ve parametreleri günlüğe kaydedebilirim?#

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

  • Metrik Günlüğü: Her epokun sonunda ve eğitim tamamlandığında metrikleri takip eder.
  • Parametre Günlüğü: Eğitim sürecinde kullanılan tüm parametreleri günlüğe kaydeder.
  • Yapı Günlüğü: Eğitimden sonra ağırlıklar ve yapılandırma dosyaları gibi model yapılarını kaydeder.

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

Link to this sectionMLflow günlüğü etkinleştirildikten sonra devre dışı bırakabilir miyim?#

Evet, ayarları güncelleyerek Ultralytics YOLO için MLflow günlüğünü devre dışı bırakabilirsin. CLI kullanarak bunu şu şekilde yapabilirsin:

yolo settings mlflow=False

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

Link to this sectionUltralytics YOLO takibi için bir MLflow sunucusunu nasıl başlatıp durdurabilirim?#

Ultralytics YOLO'daki deneylerini takip etmek için bir MLflow sunucusu başlatmak üzere aşağıdaki 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 sunucu örneklerini durdurman gerekirse, aşağıdaki 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.

Link to this sectionEğitim bittikten sonra MLflow çalıştırmasını nasıl aktif tutarım?#

Eğitimden önce MLFLOW_KEEP_RUN_ACTIVE ortam değişkenini True olarak ayarla:

export MLFLOW_KEEP_RUN_ACTIVE=True

Bu varsayılan olarak False değerindedir, bu nedenle Ultralytics eğitim tamamlandığında mlflow.end_run() fonksiyonunu çağırır. MLFLOW_KEEP_RUN_ACTIVE=True ile çalıştırma açık kalır, böylece aynı Python oturumundan ek metrikler, parametreler veya yapılar kaydedebilirsin; işin bittiğinde mlflow.end_run() ile kendin kapat. Değer büyük/küçük harf duyarsız olarak ayrıştırılır; sadece true bu davranışı etkinleştirir.

Link to this sectionDeney takibi için MLflow'u Ultralytics YOLO ile entegre etmenin faydaları nelerdir?#

MLflow'u Ultralytics YOLO ile entegre etmek, makine öğrenimi deneylerini yönetmek için çeşitli avantajlar 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ıları günlüğe kaydederek deneylerinin tekrarlanabilir olduğundan emin ol.
  • Performans İzleme: Model iyileştirmeleri için veriye dayalı kararlar almak üzere performans metriklerini zaman içinde görselleştir.
  • Kolaylaştırılmış İş Akışı: Manuel takip yerine model geliştirmeye daha fazla odaklanmak için günlük tutma 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ş.

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

Yorumlar