Ultralytics YOLO için MLflow Entegrasyonu#
Giriş#
Deney günlüğü kaydı, çeşitli metriklerin, parametrelerin ve yapı taşlarının takibini sağlayan machine learning iş akışlarının çok önemli bir yönüdür. Modelin tekrarlanabilirliğini artırmaya, sorunları gidermeye ve model performansını iyileştirmeye yardımcı olur. Gerçek zamanlı object detection yetenekleriyle tanınan Ultralytics YOLO, artık eksiksiz bir 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üğü özelliklerini kurmaya ve kullanmaya yönelik 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ştirilmiş açık kaynaklı bir platformdur. Deneyleri izlemek, kodu yeniden üretilebilir çalıştırmalar şeklinde paketlemek, modelleri paylaşmak ve dağıtmak için araçlar içerir. MLflow, herhangi bir makine öğrenimi kitaplığı ve programlama diliyle çalışacak şekilde tasarlanmıştır.
Ö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.
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üğünün etkinleştirildiğinden emin ol. Bu genellikle mlflow ayar anahtarı ile kontrol edilir. Daha fazla bilgi için settings sayfasına göz at.
Python ortamında, ayarlarını değiştirmek için settings nesnesi üzerinde update metodunu ç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#
-
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, yaniyolo 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, yaniyolo 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 işlem 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ğişkenini dışarı aktar:export MLFLOW_TRACKING_URI=http://127.0.0.1:5000 -
Eğitimden Sonra MLflow Çalıştırmasını Aktif Tut: 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 üzere), 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 herhangi bir değer (ayarlanmamış olanlar dahil) çalıştırmayı kapatma varsayılanını korur. Ardındanmlflow.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
Günlükleme#
Günlük kaydı on_pretrain_routine_end, on_fit_epoch_end ve on_train_end callback functions 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önetir.
Örnekler#
-
Özel Metrikleri Günlüğe Kaydetme:
on_fit_epoch_endçağrılmadan öncetrainer.metricssözlüğünü değiştirerek günlüğe kaydedilecek özel metrikler ekleyebilirsin. -
Deneyi Görüntüle: Günlüklerini görüntülemek için MLflow sunucusuna git (genellikle
http://127.0.0.1:5000) ve deneyinle ç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.

MLflow'u Devre Dışı Bırakma#
MLflow günlüğünü kapatmak için:
yolo settings mlflow=FalseSonuç#
Ultralytics YOLO ile MLflow günlük kaydı entegrasyonu, machine learning experiments takibini yapmak için kolaylaştırılmış bir yol sunar. Performans metriklerini izlemeni ve yapıları etkili bir şekilde yönetmeni sağlar, böylece güçlü model geliştirme ve dağıtımına yardımcı olur. Daha fazla ayrıntı için lütfen MLflow official documentation adresini ziyaret et.
SSS#
Ultralytics 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 settings guide sayfasına 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/mlflowUltralytics 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 epoch 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 tracking documentation adresini ziyaret et.
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ırakabilirsin. CLI kullanarak bunu şu şekilde yapabilirsin:
yolo settings mlflow=FalseDaha fazla özelleştirme ve ayarları sıfırlamak için settings guide kılavuzuna başvur.
Ultralytics 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 şu bash komutunu kullan:
ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9Daha fazla komut seçeneği için commands section kısmına göz at.
Eğ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 değer varsayılan olarak False olduğundan, eğitim tamamlandığında Ultralytics 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 ekstra 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; yalnızca true bu davranışı etkinleştirir.
Deney 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ş.
Ultralytics YOLO ile MLflow'u kurma ve kullanma hakkında derinlemesine bir inceleme için MLflow Integration for Ultralytics YOLO dokümantasyonunu incele.