Ultralytics YOLO için MLflow Entegrasyonu
Giriş
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 projen için MLflow günlük kaydı özelliklerini kurma ve kullanma konusunda kapsamlı bir kılavuzdur.
MLflow nedir?
MLflow, Databricks tarafından geliştirilen ve uçtan uca makine öğrenimi yaşam döngüsünü yönetmeye yarayan açık kaynaklı bir platformdur. Deneyleri takip etmek, kodu tekrarlanabilir çalıştırmalar halinde paketlemek, 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ışacak şekilde tasarlanmıştır.
Özellikler
- Metrik Kaydı: Her epok sonunda ve eğitim sonunda metrikleri kaydeder.
- Parametre Kaydı: Eğitimde kullanılan tüm parametreleri kaydeder.
- Yapıt (Artifact) Kaydı: Eğitim sonunda ağırlıklar ve yapılandırma dosyaları dahil olmak üzere model yapıtlarını kaydeder.
Kurulum ve Önkoşullar
MLflow'un yüklü olduğundan emin ol. Değilse, pip kullanarak yükle:
pip install mlflowUltralytics ayarlarında MLflow günlük kaydının etkinleştirildiğinden emin ol. Bu genellikle mlflow ayar anahtarı ile kontrol edilir. Daha fazla bilgi için ayarlar sayfasına bak.
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()Nasıl Kullanılır
Komutlar
-
Proje Adı Belirle: Proje adını bir ortam değişkeni aracılığıyla ayarlayabilirsin:
export MLFLOW_EXPERIMENT_NAME=YOUR_EXPERIMENT_NAMEVeya bir YOLO modeli eğitirken
project=<project>bağımsız değişkenini kullan, örneğin:yolo train project=my_project. -
Çalıştırma (Run) Adı Belirle: Proje adı belirlemeye benzer şekilde, çalıştırma adını bir ortam değişkeni aracılığıyla ayarlayabilirsin:
export MLFLOW_RUN=YOUR_RUN_NAMEVeya bir YOLO modeli eğitirken
name=<name>bağımsız değişkenini kullan, örneğin:yolo train project=my_project name=my_name. -
Yerel MLflow Sunucusunu Başlat: Takibi başlatmak için şunu kullan:
mlflow server --backend-store-uri runs/mlflowBu, varsayılan olarak
http://127.0.0.1:5000adresinde yerel bir sunucu başlatacak ve tüm mlflow günlüklerini 'runs/mlflow' dizinine kaydedecektir. Eğitim çalıştırmalarını farklı bir takip sunucusuna yönlendirmek için, eğitimden önceMLFLOW_TRACKING_URIdeğerini dışa aktar:export MLFLOW_TRACKING_URI=http://127.0.0.1:5000 -
MLflow Sunucu Örneklerini Sonlandır: Ç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
Günlükleme (Logging)
Günlük kaydı, on_pretrain_routine_end, on_fit_epoch_end ve on_train_end geri çağırma işlevleri (callback functions) 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 kaydedilmesini yönetirler.
Örnekler
-
Logging Custom Metrics: You can add custom metrics to be logged by modifying the
trainer.metricsdictionary beforeon_fit_epoch_endis called. -
Deney 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ç.
-
Ç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ıtlar ile model ağırlıkları dahil olmak üzere Çalıştırma ayrıntılarını gör.

MLflow'u Devre Dışı Bırakma
MLflow günlük kaydını kapatmak için:
yolo settings mlflow=FalseSonuç
Ultralytics YOLO ile MLflow günlük kaydı entegrasyonu, makine öğrenimi deneylerini takip etmenin düzenli bir yolunu sunar. Performans metriklerini izlemeni ve yapıtları 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.
SSS
Ultralytics YOLO ile MLflow günlük kaydını nasıl kurarım?
Ultralytics YOLO ile MLflow günlük kaydını kurmak için öncelikle MLflow'un yüklü olduğundan emin olman gerekir. Pip kullanarak şu şekilde yükleyebilirsin:
pip install mlflowArdından, Ultralytics ayarlarında MLflow günlük kaydını etkinleştir. Bu, mlflow anahtarı kullanılarak kontrol edilebilir. Daha fazla bilgi için ayarlar kılavuzuna bak.
from ultralytics import settings
# Update a setting
settings.update({"mlflow": True})
# Reset settings to default values
settings.reset()Son olarak, takip için yerel bir MLflow sunucusu başlat:
mlflow server --backend-store-uri runs/mlflowUltralytics YOLO ile MLflow kullanarak hangi metrikleri ve parametreleri kaydedebilirim?
Ultralytics YOLO ve MLflow, eğitim süreci boyunca çeşitli metriklerin, parametrelerin ve yapıtların kaydedilmesini destekler:
- Metrik Kaydı: Her epok sonunda ve eğitim tamamlandığında metrikleri takip eder.
- Parametre Kaydı: Eğitim sürecinde kullanılan tüm parametreleri kaydeder.
- Yapıt (Artifact) Kaydı: Eğitimden sonra ağırlıklar ve yapılandırma dosyaları gibi model yapıtlarını kaydeder.
Daha ayrıntılı bilgi için Ultralytics YOLO takip dokümantasyonunu ziyaret et.
MLflow günlük kaydını etkinleştirdikten sonra devre dışı bırakabilir miyim?
Evet, ayarları güncelleyerek Ultralytics YOLO için MLflow günlük kaydını devre dışı bırakabilirsin. İşte CLI kullanarak bunu nasıl yapabileceğin:
yolo settings mlflow=FalseDaha fazla özelleştirme ve ayarları sıfırlama için ayarlar kılavuzuna başvur.
Ultralytics YOLO takibi için MLflow sunucusunu nasıl başlatıp durdurabilirim?
Ultralytics YOLO'daki deneylerini takip etmek için bir MLflow sunucusu başlatmak istersen, şu komutu kullan:
mlflow server --backend-store-uri runs/mlflowBu komut, varsayılan olarak http://127.0.0.1:5000 adresinde yerel bir sunucu başlatır. Çalışan MLflow sunucusu örneklerini durdurman gerekirse, şu bash komutunu kullan:
ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9Daha fazla komut seçeneği için komutlar bölümüne bak.
MLflow'u Ultralytics YOLO ile deney takibi için entegre etmenin faydaları nelerdir?
MLflow'u Ultralytics YOLO ile entegre etmek, makine öğrenimi deneylerini yönetmen için birçok fayda 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ıtları kaydederek deneylerinin tekrarlanabilir olduğundan emin ol.
- Performans İzleme: Model iyileştirmeleri için veriye dayalı kararlar almak amacıyla performans metriklerini zaman içinde görselleştir.
- Düzenli İş Akışı: Manuel takip yerine model geliştirmeye daha fazla odaklanmak için günlük kaydı 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ş.
Ultralytics YOLO ile MLflow'u kurma ve kullanma hakkında derinlemesine bir bakış için Ultralytics YOLO için MLflow Entegrasyonu dokümantasyonunu keşfet.