Ultralytics YOLO27:
Get Started

Ultralytics YOLO için MLflow Entegrasyonu#

MLflow experiment tracking with Ultralytics YOLO

Giriş#

Deney günlükleme, çeşitli metrikleri, parametreleri ve yapıtları izlemeyi sağlayan makine öğrenimi iş akışlarının önemli bir parçasıdır. Modelin yeniden üretilebilirliğini artırmaya, sorunları ayıklamaya ve model performansını iyileştirmeye yardımcı olur. Gerçek zamanlı nesne algılama yetenekleriyle bilinen Ultralytics YOLO, artık makine öğrenimi yaşam döngüsünün tamamını yönetmeye yönelik açık kaynaklı bir platform olan MLflow ile entegrasyon sunuyor.

Bu belge sayfası, Ultralytics YOLO projen için MLflow günlükleme özelliklerini ayarlama ve kullanmaya yönelik kapsamlı bir kılavuzdur.

MLflow 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 izleme, kodu yeniden üretilebilir çalıştırmalara paketleme, modelleri paylaşma ve dağıtma araçlarını içerir. MLflow, tüm makine öğrenimi kütüphaneleri ve programlama dilleriyle çalışacak şekilde tasarlanmıştır.

Özellikler#

  • Metrik Günlüğü: Her dönemin sonunda öğrenme oranlarını, eğitim kayıplarını ve doğrulama metriklerini günlüğe kaydeder.
  • Parametre Günlüğü: Eğitimde kullanılan tüm parametreleri günlüğe kaydeder.
  • Yapıt Günlüğü: Ağırlıklar ve yapılandırma dosyaları dahil model yapıtlarını eğitimin sonunda günlüğe kaydeder.

Kurulum ve Ön Koşullar#

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

pip install mlflow

Ultralytics ayarlarında MLflow günlüklemesinin etkin olduğundan emin ol. Bu genellikle mlflow anahtarıyla kontrol edilir. Daha fazla bilgi için ayarlar sayfasına bak.

Ultralytics MLflow Ayarlarını Güncelleme

Python ortamında, ayarlarını değiştirmek için settings nesnesi üzerindeki update yöntemini çağır:

from ultralytics import settings

# Bir ayarı güncelle
settings.update({"mlflow": True})

# Ayarları varsayılan değerlere sıfırla
settings.reset()

Kullanım#

Komutlar#

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

    export MLFLOW_EXPERIMENT_NAME=YOUR_EXPERIMENT_NAME

    Veya YOLO modelini eğitirken project=<project> bağımsız değişkenini 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 aracılığıyla belirleyebilirsin:

    export MLFLOW_RUN=YOUR_RUN_NAME

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

  3. Yerel MLflow Sunucusu Başlatma: İzlemeyi başlatmak için şunu kullan:

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

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

    export MLFLOW_TRACKING_URI=http://127.0.0.1:5000
  4. Eğitimden Sonra MLflow Çalıştırmasını Etkin Tutma: Varsayılan olarak Ultralytics, eğitim tamamlandığında MLflow çalıştırmasını otomatik olarak sonlandırır. Çalıştırmayı açık tutmak (örneğin aynı not defterinden ek metrikler veya yapıtlar günlüğe kaydetmek) için eğitimden önce MLFLOW_KEEP_RUN_ACTIVE değerini True olarak ayarla:

    export MLFLOW_KEEP_RUN_ACTIVE=True

    1, true, yes, on, y ve t değerleri bu davranışı etkinleştirir (büyük/küçük harfe duyarsızdır). Ayarlanmamış bir değişken de dahil olmak üzere diğer tüm değerler, çalıştırmanın varsayılan olarak kapatılmasını sağlar. Daha sonra mlflow.end_run() ile çalıştırmayı manuel olarak kapatmayı unutma.

Günlük Kaydı#

Günlük kaydı, on_pretrain_routine_end, on_train_epoch_end, on_fit_epoch_end ve on_train_end geri çağırma işlevleri 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 günlüğe kaydedilmesini sağlar.

Örnekler#

  1. Özel Metriklerin Günlüğe Kaydedilmesi: on_fit_epoch_end çağrılmadan önce trainer.metrics sözlüğünü değiştirerek günlüğe kaydedilecek özel metrikler ekleyebilirsin.

  2. Deneyi Görüntüle: 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üle: Çalıştırmalar, bir deney içindeki tekil modellerdir. Bir çalıştırmaya tıklayarak yüklenen yapıtlar ve model ağırlıkları dahil çalıştırma ayrıntılarını görebilirsin. 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 kolaylaştırılmış bir yolunu sunar. Performans metriklerini izlemene ve yapıtları etkili bir şekilde yönetmene olanak tanıyarak sağlam model geliştirme ve dağıtım süreçlerine yardımcı olur. Daha fazla bilgi için MLflow'un resmî belgelerini ziyaret et.

Sık Sorulan Sorular#

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

    pip install mlflow

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

    Ultralytics MLflow Ayarlarını Güncelleme
    from ultralytics import settings
    
    # Bir ayarı güncelle
    settings.update({"mlflow": True})
    
    # Ayarları varsayılan değerlere sıfırla
    settings.reset()

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

    mlflow server --backend-store-uri runs/mlflow
  • MLflow ile Ultralytics YOLO, eğitim süreci boyunca çeşitli metriklerin, parametrelerin ve yapıtların günlüğe kaydedilmesini destekler:

    • Metriklerin Günlüğe Kaydedilmesi: Her epoch sonunda ve eğitim tamamlandığında metrikleri izler.
    • Parametrelerin Günlüğe Kaydedilmesi: Eğitim sürecinde kullanılan tüm parametreleri günlüğe kaydeder.
    • Yapıtların Günlüğe Kaydedilmesi: Eğitim sonrasında ağırlıklar ve yapılandırma dosyaları gibi model yapıtlarını kaydeder.

    Daha ayrıntılı bilgi için Ultralytics YOLO izleme belgelerini ziyaret et.

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

    yolo settings mlflow=False

    Ayarları daha ayrıntılı özelleştirmek ve sıfırlamak için ayarlar kılavuzuna bak.

  • Ultralytics YOLO'daki deneylerini izlemek üzere bir MLflow sunucusu başlatmak için ş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. Sunucuyu durdurmak için o terminalde Ctrl+C tuşuna bas.

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

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

    export MLFLOW_KEEP_RUN_ACTIVE=True

    Varsayılan değer False olduğundan Ultralytics, eğitim tamamlandığında mlflow.end_run() çağırır. MLFLOW_KEEP_RUN_ACTIVE=True kullanıldığında çalıştırma açık kalır; böylece aynı Python oturumundan ek metrikleri, parametreleri veya yapıtları günlüğe kaydedebilirsin — işin bittiğinde mlflow.end_run() ile kendin kapat. 1, true, yes, on, y ve t değerleri bu davranışı etkinleştirir (büyük/küçük harfe duyarsızdır).

  • MLflow'u Ultralytics YOLO ile entegre etmek, makine öğrenimi deneylerini yönetmek için çeşitli avantajlar sunar:

    • Gelişmiş Deney Takibi: Farklı çalıştırmaları ve sonuçlarını kolayca takip edip karşılaştır.
    • Geliştirilmiş Model Tekrarlanabilirliği: Tüm parametreleri ve yapıtları günlüğe kaydederek deneylerinin tekrarlanabilir olmasını sağla.
    • Performans İzleme: Model iyileştirmelerine yönelik veriye dayalı kararlar almak için 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 kaydı sürecini otomatikleştir.
    • İş Birliğine Dayalı 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 ayrıntılı bilgi için Ultralytics YOLO için MLflow Entegrasyonu belgelerini incele.

Yorumlar