Ultralytics YOLO27:

Ultralytics YOLO için MLflow Entegrasyonu#

MLflow experiment tracking with Ultralytics YOLO

Giriş#

Deney günlüğü kaydı, çeşitli metrikleri, parametreleri ve yapıtları izlemeyi sağlayan makine öğrenimi iş akışlarının kritik 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 tanınan Ultralytics YOLO, artık uçtan uca makine öğrenimi yaşam döngüsü yönetimi için açık kaynaklı bir platform olan MLflow ile entegrasyon sunuyor.

Bu dokümantasyon sayfası, Ultralytics YOLO projen için MLflow günlük kaydı özelliklerini ayarlama ve kullanma konusunda 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, herhangi bir makine öğrenimi kitaplığı ve programlama diliyle çalışacak şekilde tasarlanmıştır.

Özellikler#

  • Metrik Günlüğü Kaydı: Her epoch'un sonunda ve eğitimin bitiminde metrikleri günlüğe kaydeder.
  • Parametre Günlüğü Kaydı: Eğitimde kullanılan tüm parametreleri günlüğe kaydeder.
  • Yapıt Günlüğü Kaydı: Ağırlıklar ve yapılandırma dosyaları dahil olmak üzere model yapıtlarını eğitimin sonunda günlüğe kaydeder.

Kurulum ve Ön Koşullar#

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

pip install mlflow

Ultralytics ayarlarında MLflow günlük kaydının etkin olduğundan emin ol. Bu genellikle mlflow anahtarıyla denetlenir. 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 üzerinde update yöntemini çağır:

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ı Belirleme: Proje adını bir ortam değişkeni aracılığıyla belirleyebilirsin:

    export MLFLOW_EXPERIMENT_NAME=YOUR_EXPERIMENT_NAME

    Alternatif olarak YOLO modeli eğitirken project=<project> bağımsız değişkenini kullanabilirsin; ö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

    Alternatif olarak YOLO modeli eğitirken name=<name> bağımsız değişkenini kullanabilirsin; ö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 için (örneğin aynı not defterinden ek metrikleri veya yapıtları günlüğe kaydetmek amacıyla) 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ız). Ayarlanmamış bir değişken dahil diğer tüm değerler, çalıştırmayı kapatma varsayılanını korur. Daha sonra mlflow.end_run() ile bunu manuel olarak kapatmayı unutma.

Günlük Kaydı#

Günlük kaydı, on_pretrain_routine_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 yönetir.

Örnekler#

  1. Özel Metrikleri Günlüğe Kaydetme: 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üklerinizi görüntülemek için MLflow sunucunuza (genellikle http://127.0.0.1:5000) gidin ve deneyinizi ve çalıştırmanızı seçin. MLflow experiment tracking interface for YOLO

  3. Çalıştırmayı Görüntüle: Çalıştırmalar, bir deney içindeki bağımsız modellerdir. Bir çalıştırmaya tıklayarak yüklenen artefaktlar ve model ağırlıkları dahil olmak üzere çalıştırma ayrıntılarını görüntüleyin. 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ç#

MLflow'un Ultralytics YOLO ile 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ına yardımcı olur. Daha fazla ayrıntı için MLflow'un resmî dokümantasyonunu ziyaret et.

SSS#

  • Ultralytics YOLO ile MLflow günlük kaydını ayarlamak için önce MLflow'un kurulu olduğundan emin olman gerekir. Bunu pip kullanarak yükleyebilirsin:

    pip install mlflow

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

    Ultralytics MLflow Ayarlarını Güncelleme
    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
  • MLflow ile Ultralytics YOLO, eğitim süreci boyunca çeşitli metriklerin, parametrelerin ve yapıtların günlüğe kaydedilmesini destekler:

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

    Daha ayrıntılı bilgi için Ultralytics YOLO izleme dokümantasyonunu 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

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

  • Ultralytics YOLO'da deneylerini izlemek için bir MLflow sunucusu başlatmak üzere ş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. Durdurmak için ilgili terminalde Ctrl+C tuşlarına 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 olarak bu değer False olduğundan Ultralytics, eğitim tamamlandığında mlflow.end_run() çağrısını yapar. MLFLOW_KEEP_RUN_ACTIVE=True ile çalıştırma açık kalır; böylece aynı Python oturumundan ek metrikleri, parametreleri veya yapıtları günlüğe kaydedebilirsin — işlemin 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ız).

  • 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 izle ve karşılaştır.
    • Geliştirilmiş Model Yeniden Üretilebilirliği: Tüm parametreleri ve yapıtları günlüğe kaydederek deneylerinin yeniden üretilebilir olmasını sağla.
    • 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 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'un Ultralytics YOLO ile kurulumunu ve kullanımını derinlemesine incelemek için Ultralytics YOLO için MLflow Entegrasyonu dokümantasyonunu keşfet.

Yorumlar