İç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.

  2. 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.

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

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

    Bu, şu adreste yerel bir sunucu başlatacaktır http://127.0.0.1:5000 ve tüm mlflow günlüklerini 'runs/mlflow' dizinine kaydeder. Farklı bir URI belirtmek için MLFLOW_TRACKING_URI ortam değişkeni.

  4. 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.

SSS

MLflow günlüğünü Ultralytics YOLO ile nasıl ayarlayabilirim?

MLflow günlüğünü Ultralytics YOLO ile ayarlamak için öncelikle MLflow'un kurulu olduğundan emin olmanız gerekir. Pip kullanarak yükleyebilirsiniz:

pip install mlflow

Ardından, Ultralytics ayarlarında MLflow günlüğünü etkinleştirin. Bu, aşağıdakiler kullanılarak kontrol edilebilir mlflow anahtar. Daha fazla bilgi için bkz. ayarlar kılavuzu.

Ultralytics MLflow Ayarlarını Güncelleme

from ultralytics import settings

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

# Reset settings to default values
settings.reset()
# Update a setting
yolo settings runs_dir='/path/to/runs'

# Reset settings to default values
yolo settings reset

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

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

Ultralytics YOLO ile MLflow kullanarak hangi metrikleri ve parametreleri günlüğe kaydedebilirim?

Ultralytics YOLO MLflow ile eğitim süreci boyunca çeşitli metriklerin, parametrelerin ve eserlerin kaydedilmesini destekler:

  • Metrik Günlüğü: Her dönemin sonunda ve eğitim tamamlandığında metrikleri izler.
  • Parametre Günlüğü: Eğitim sürecinde kullanılan tüm parametreleri günlüğe kaydeder.
  • Eserler Günlüğü: Eğitimden sonra ağırlıklar ve yapılandırma dosyaları gibi model eserlerini kaydeder.

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

MLflow 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ırakabilirsiniz. Bunu CLI adresini kullanarak nasıl yapabileceğiniz aşağıda açıklanmıştır:

yolo settings mlflow=False

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

Ultralytics YOLO takibi için bir MLflow sunucusunu nasıl başlatabilir ve durdurabilirim?

Deneylerinizi Ultralytics YOLO adresinde izlemek üzere bir MLflow sunucusu başlatmak için aşağıdaki komutu kullanın:

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ız gerekiyorsa, aşağıdaki bash komutunu kullanın:

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ın.

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

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

  • Geliştirilmiş Deney Takibi: Farklı çalışmaları ve sonuçlarını kolayca takip edin ve karşılaştırın.
  • Geliştirilmiş Model Tekrar Üretilebilirliği: Tüm parametreleri ve artefaktları kaydederek deneylerinizin tekrarlanabilir olmasını sağlayın.
  • Performans İzleme: Model iyileştirmelerine yönelik veriye dayalı kararlar almak için performans ölçümlerini zaman içinde görselleştirin.

MLflow'un Ultralytics YOLO ile kurulumu ve kullanımı hakkında ayrıntılı bilgi için Ultralytics YOLO için MLflow Entegrasyonu belgelerini inceleyin.



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

Yorumlar