Link to this sectionUltralytics YOLO için MLflow Entegrasyonu#
Link to this sectionGiriş#
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 projeniz için MLflow günlüğü özelliklerini kurmaya ve kullanmaya yönelik kapsamlı bir kılavuzdur.
Link to this sectionMLflow 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ırmalara paketlemek, modelleri paylaşmak ve dağıtmak için araçlar içerir. MLflow, herhangi bir makine öğrenimi kütüphanesi ve programlama diliyle çalışacak şekilde tasarlanmıştır.
Link to this sectionÖzellikler#
- Metrik Günlüğü: Her epokun sonunda ve eğitimin sonunda metrikleri günlüğe kaydeder.
- Parametre Günlüğü: Eğitimde kullanılan tüm parametreleri günlüğe kaydeder.
- Yapı Günlüğü: Eğitimin sonunda ağırlıklar ve yapılandırma dosyaları dahil olmak üzere model yapılarını günlüğe kaydeder.
Link to this sectionKurulum 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üğü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()Link to this sectionNasıl Kullanılır#
Link to this sectionKomutlar#
-
Proje Adı Belirleme: 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>argümanını kullan, örneğinyolo train project=my_project. -
Çalıştırma Adı Belirleme: Proje adı belirlemeye benzer şekilde, çalıştırma adını bir ortam değişkeni ile ayarlayabilirsin:
export MLFLOW_RUN=YOUR_RUN_NAMEVeya bir YOLO modeli eğitirken
name=<name>argümanını kullan, örneğinyolo train project=my_project name=my_name. -
Yerel MLflow Sunucusunu Başlatma: İzlemeye başlamak 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 izleme sunucusuna yönlendirmek için eğitimden önceMLFLOW_TRACKING_URIdeğerini dışa aktar:export MLFLOW_TRACKING_URI=http://127.0.0.1:5000 -
Eğitimden Sonra MLflow Çalıştırmasını Aktif Tutma: Varsayılan olarak Ultralytics, eğitim bittiğinde MLflow çalıştırmasını otomatik olarak sonlandırır. Çalıştırmayı açık tutmak için (örneğin, aynı not defterinden ek metrikler veya yapılar kaydetmek için), eğitimden önce
MLFLOW_KEEP_RUN_ACTIVEdeğeriniTrueolarak ayarla:export MLFLOW_KEEP_RUN_ACTIVE=TrueDeğer büyük/küçük harf duyarsız olarak ayrıştırılır; yalnızca
truedizesi bu davranışı etkinleştirir ve diğer tüm değerler (ayarlanmamış olanlar dahil) çalıştırmayı kapatma varsayılanını korur. Daha sonramlflow.end_run()ile manuel olarak kapatmayı unutma. -
MLflow Sunucu Örneklerini Sonlandırma: Ç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
Link to this sectionGünlükleme#
Günlük tutma işlemi on_pretrain_routine_end, on_fit_epoch_end ve on_train_end geri çağırma fonksiyonları tarafından gerçekleştirilir. Bu fonksiyonlar eğitim sürecinin ilgili aşamalarında otomatik olarak çağrılır ve parametrelerin, metriklerin ve yapıların günlüğe kaydedilmesini yönetirler.
Link to this sectionÖrnekler#
-
Logging Custom Metrics: You can add custom metrics to be logged by modifying the
trainer.metricsdictionary beforeon_fit_epoch_endis called. -
Deneyleri 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ılar ve model ağırlıkları dahil olmak üzere Çalıştırma ayrıntılarını gör.

Link to this sectionMLflow'u Devre Dışı Bırakma#
MLflow günlüğünü kapatmak için:
yolo settings mlflow=FalseLink to this sectionSonuç#
Ultralytics YOLO ile MLflow günlüğü entegrasyonu, makine öğrenimi deneylerini takip etmenin düzenli bir yolunu sunar. Performans metriklerini izlemeni ve yapıları 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.
Link to this sectionSSS#
Link to this sectionUltralytics YOLO ile MLflow günlüğünü nasıl kurarım?#
Ultralytics YOLO ile MLflow günlüğünü kurmak için önce MLflow'un yüklü olduğundan emin olmalısın. Pip kullanarak yükleyebilirsin:
pip install mlflowArdından, Ultralytics ayarlarında MLflow günlüğü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, izleme için yerel bir MLflow sunucusu başlat:
mlflow server --backend-store-uri runs/mlflowLink to this sectionUltralytics YOLO ile MLflow kullanarak hangi metrikleri ve parametreleri günlüğe kaydedebilirim?#
MLflow ile Ultralytics YOLO, eğitim süreci boyunca çeşitli metriklerin, parametrelerin ve yapıların günlüğe kaydedilmesini destekler:
- Metrik Günlüğü: Her epokun sonunda ve eğitim tamamlandığında metrikleri takip eder.
- Parametre Günlüğü: Eğitim sürecinde kullanılan tüm parametreleri günlüğe kaydeder.
- Yapı Günlüğü: Eğitimden sonra ağırlıklar ve yapılandırma dosyaları gibi model yapılarını kaydeder.
Daha ayrıntılı bilgi için Ultralytics YOLO izleme dokümantasyonunu ziyaret et.
Link to this sectionMLflow 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ırakabilirsin. CLI kullanarak bunu şu şekilde yapabilirsin:
yolo settings mlflow=FalseDaha fazla özelleştirme ve ayarları sıfırlama için ayarlar kılavuzuna başvur.
Link to this sectionUltralytics YOLO takibi için bir MLflow sunucusunu nasıl başlatıp durdurabilirim?#
Ultralytics YOLO'daki deneylerini takip etmek için bir MLflow sunucusu başlatmak üzere aşağıdaki 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 sunucu örneklerini durdurman gerekirse, aşağıdaki 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.
Link to this sectionEğitim bittikten sonra MLflow çalıştırmasını nasıl aktif tutarım?#
Eğitimden önce MLFLOW_KEEP_RUN_ACTIVE ortam değişkenini True olarak ayarla:
export MLFLOW_KEEP_RUN_ACTIVE=TrueBu varsayılan olarak False değerindedir, bu nedenle Ultralytics eğitim tamamlandığında mlflow.end_run() fonksiyonunu çağırır. MLFLOW_KEEP_RUN_ACTIVE=True ile çalıştırma açık kalır, böylece aynı Python oturumundan ek metrikler, parametreler veya yapılar kaydedebilirsin; işin bittiğinde mlflow.end_run() ile kendin kapat. Değer büyük/küçük harf duyarsız olarak ayrıştırılır; sadece true bu davranışı etkinleştirir.
Link to this sectionDeney takibi için MLflow'u Ultralytics YOLO ile entegre etmenin faydaları nelerdir?#
MLflow'u Ultralytics YOLO ile entegre etmek, makine öğrenimi deneylerini yönetmek için çeşitli avantajlar 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ıları günlüğe kaydederek deneylerinin tekrarlanabilir olduğundan emin ol.
- 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 tutma 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ş.
MLflow'u Ultralytics YOLO ile kurma ve kullanma hakkında derinlemesine bir bakış için Ultralytics YOLO için MLflow Entegrasyonu dokümantasyonunu keşfet.