İçeriğe geç

MLflow Entegrasyonu için Ultralytics YOLO

MLflow ekosistemi

Giriş

Deney kaydı, çeşitli metriklerin, parametrelerin ve eserlerin izlenmesini sağlayan makine öğrenimi iş akışlarının önemli bir yönüdür. Modelin yeniden üretilebilirliğini artırmaya, sorunları ayıklamaya ve model performansını iyileştirmeye yardımcı olur. Ultralytics YOLO Gerçek zamanlı nesne algılama yetenekleriyle bilinen MLflow, artık eksiksiz 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 projeniz için MLflow günlük kaydı özelliklerini ayarlamak ve kullanmak için 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 izlemek, kodu tekrarlanabilir çalıştırmalar halinde paketlemek ve 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ışmak üzere tasarlanmıştır.

Özellikler

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

Kurulum ve Ön Koşullar

MLflow'un kurulu olduğundan emin olun. Değilse, pip kullanarak yükleyin:

pip install mlflow

MLflow günlüğünün Ultralytics ayarlarında etkinleştirildiğinden emin olun. Genellikle, bu ayarlar tarafından kontrol edilir mflow Anahtar. Bkz. ayarlar Daha fazla bilgi için sayfa.

Ultralytics MLflow Ayarlarını Güncelleme

Python ortamı içinde update yöntemi üzerinde settings ayarlarınızı değiştirmek için nesne:

from ultralytics import settings

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

# Reset settings to default values
settings.reset()

Komut satırı arayüzünü kullanmayı tercih ederseniz, aşağıdaki komutlar ayarlarınızı değiştirmenize olanak tanır:

# Update a setting
yolo settings runs_dir='/path/to/runs'

# Reset settings to default values
yolo settings reset

Nasıl Kullanılır

Komutlar

  1. Bir Proje Adı Ayarlayın: Proje adını bir ortam değişkeni aracılığıyla ayarlayabilirsiniz:

    export MLFLOW_EXPERIMENT_NAME=<your_experiment_name>
    

Veya project=<project> YOLO modelini eğitirken argüman, yani yolo train project=my_project.

  1. Bir Çalıştırma Adı Ayarlayın: Proje adı ayarlamaya benzer şekilde, çalıştırma adını bir ortam değişkeni aracılığıyla ayarlayabilirsiniz:

    export MLFLOW_RUN=<your_run_name>
    

Veya name=<name> YOLO modelini eğitirken argüman, yani yolo train project=my_project name=my_name.

  1. Yerel MLflow Sunucusunu Başlatın: İzlemeyi başlatmak için şunu kullanın:

    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. Farklı bir URI belirtmek için MLFLOW_TRACKING_URI ortam değişkeni.

  1. MLflow Sunucu Örneklerini Öldürün: Çalışan tüm MLflow örneklerini durdurmak için çalıştırın:

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

Günlük kaydı

Günlük kaydı şu şekilde yapılır on_pretrain_routine_end, on_fit_epoch_endve on_train_end geri arama fonksiyonları. Bu fonksiyonlar eğitim sürecinin ilgili aşamalarında otomatik olarak çağrılır ve parametrelerin, metriklerin ve eserlerin günlüğe kaydedilmesini sağlar.

Örnekler

  1. Özel Metriklerin Günlüğe Kaydedilmesi: Günlüğe kaydedilmek üzere özel ölçümler ekleyebilirsiniz. trainer.metrics önce sözlük on_fit_epoch_end denir.

  2. Deneyi Görüntüle: Günlüklerinizi görüntülemek için MLflow sunucunuza gidin (genellikle http://127.0.0.1:5000) ve deneyinizi seçip çalıştırın. YOLO MLflow Deneyi

  3. Koşuyu Görüntüle: Çalıştırmalar, bir deney içindeki bireysel modellerdir. Bir Çalıştırmaya tıklayın ve yüklenen eserler ve model ağırlıkları dahil olmak üzere Çalıştırma ayrıntılarını görün. YOLO MLflow Koşusu

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 deneylerinizi takip etmek için kolaylaştırılmış bir yol sunar. Performans metriklerini izlemenizi ve artifaktları etkili bir şekilde yönetmenizi sağlar, böylece sağlam model geliştirme ve dağıtımına yardımcı olur. Daha fazla ayrıntı için lütfen MLflow resmi belgelerini ziyaret edin.



Oluşturma 2023-11-12, Güncelleme 2024-05-18
Yazarlar: glenn-jocher (4), Burhan-Q (1)

Yorumlar