Ultralytics YOLO için MLflow Entegrasyonu#
Giriş#
Deney günlükleme, çeşitli metrikleri, parametreleri ve yapıtları izlemeyi sağlayan makine öğrenimi iş akışlarının önemli bir parçasıdır. Modelin yeniden üretilebilirliğini artırmaya, sorunları ayıklamaya ve model performansını iyileştirmeye yardımcı olur. Gerçek zamanlı nesne algılama yetenekleriyle bilinen Ultralytics YOLO, artık makine öğrenimi yaşam döngüsünün tamamını yönetmeye yönelik açık kaynaklı bir platform olan MLflow ile entegrasyon sunuyor.
Bu belge sayfası, Ultralytics YOLO projen için MLflow günlükleme özelliklerini ayarlama 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ştirilen açık kaynaklı bir platformdur. Deneyleri izleme, kodu yeniden üretilebilir çalıştırmalara paketleme, modelleri paylaşma ve dağıtma araçlarını içerir. MLflow, tüm makine öğrenimi kütüphaneleri ve programlama dilleriyle çalışacak şekilde tasarlanmıştır.
Özellikler#
- Metrik Günlüğü: Her dönemin sonunda öğrenme oranlarını, eğitim kayıplarını ve doğrulama metriklerini günlüğe kaydeder.
- Parametre Günlüğü: Eğitimde kullanılan tüm parametreleri günlüğe kaydeder.
- Yapıt Günlüğü: Ağırlıklar ve yapılandırma dosyaları dahil model yapıtlarını eğitimin sonunda günlüğe kaydeder.
Kurulum ve Ön Koşullar#
MLflow'un yüklü olduğundan emin ol. Yüklü değilse pip kullanarak yükle:
pip install mlflowUltralytics ayarlarında MLflow günlüklemesinin etkin olduğundan emin ol. Bu genellikle mlflow anahtarıyla kontrol edilir. Daha fazla bilgi için ayarlar sayfasına bak.
Python ortamında, ayarlarını değiştirmek için settings nesnesi üzerindeki update yöntemini çağır:
from ultralytics import settings
# Bir ayarı güncelle
settings.update({"mlflow": True})
# Ayarları varsayılan değerlere sıfırla
settings.reset()Kullanım#
Komutlar#
-
Proje Adı Belirleme: Proje adını bir ortam değişkeni aracılığıyla belirleyebilirsin:
export MLFLOW_EXPERIMENT_NAME=YOUR_EXPERIMENT_NAMEVeya YOLO modelini eğitirken
project=<project>bağımsız değişkenini kullan; örneğin,yolo train project=my_project. -
Çalıştırma Adı Belirleme: Proje adı belirlemeye benzer şekilde, çalıştırma adını bir ortam değişkeni aracılığıyla belirleyebilirsin:
export MLFLOW_RUN=YOUR_RUN_NAMEVeya YOLO modelini eğitirken
name=<name>bağımsız değişkenini kullan; örneğin,yolo train project=my_project name=my_name. -
Yerel MLflow Sunucusu Başlatma: İzlemeyi başlatmak 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şlatır ve tüm mlflow günlüklerini 'runs/mlflow' dizinine kaydeder. Eğitim çalıştırmalarını farklı bir izleme sunucusuna yönlendirmek için eğitimden önceMLFLOW_TRACKING_URIdeğişkenini dışa aktar:export MLFLOW_TRACKING_URI=http://127.0.0.1:5000 -
Eğitimden Sonra MLflow Çalıştırmasını Etkin Tutma: Varsayılan olarak Ultralytics, eğitim tamamlandığında MLflow çalıştırmasını otomatik olarak sonlandırır. Çalıştırmayı açık tutmak (örneğin aynı not defterinden ek metrikler veya yapıtlar günlüğe kaydetmek) için eğitimden önce
MLFLOW_KEEP_RUN_ACTIVEdeğeriniTrueolarak ayarla:export MLFLOW_KEEP_RUN_ACTIVE=True1,true,yes,on,yvetdeğerleri bu davranışı etkinleştirir (büyük/küçük harfe duyarsızdır). Ayarlanmamış bir değişken de dahil olmak üzere diğer tüm değerler, çalıştırmanın varsayılan olarak kapatılmasını sağlar. Daha sonramlflow.end_run()ile çalıştırmayı manuel olarak kapatmayı unutma.
Günlük Kaydı#
Günlük kaydı, on_pretrain_routine_end, on_train_epoch_end, on_fit_epoch_end ve on_train_end geri çağırma işlevleri 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 günlüğe kaydedilmesini sağlar.
Örnekler#
-
Özel Metriklerin Günlüğe Kaydedilmesi:
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 sunucuna (genellikle
http://127.0.0.1:5000) git ve deneyini ve çalıştırmanı seç.
-
Çalıştırmayı Görüntüle: Çalıştırmalar, bir deney içindeki tekil modellerdir. Bir çalıştırmaya tıklayarak yüklenen yapıtlar ve model ağırlıkları dahil çalıştırma ayrıntılarını görebilirsin.

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 kolaylaştırılmış bir yolunu sunar. Performans metriklerini izlemene ve yapıtları etkili bir şekilde yönetmene olanak tanıyarak sağlam model geliştirme ve dağıtım süreçlerine yardımcı olur. Daha fazla bilgi için MLflow'un resmî belgelerini ziyaret et.
Sık Sorulan Sorular#
Ultralytics YOLO ile MLflow günlük kaydını kurmak için önce MLflow'un yüklü olduğundan emin olmalısın. MLflow'u pip kullanarak yükleyebilirsin:
pip install mlflowArdından, Ultralytics ayarlarında MLflow günlük kaydını etkinleştir. Bu ayar
mlflowanahtarıyla kontrol edilebilir. Daha fazla bilgi için ayarlar kılavuzuna bak.Ultralytics MLflow Ayarlarını Güncellemefrom ultralytics import settings # Bir ayarı güncelle settings.update({"mlflow": True}) # Ayarları varsayılan değerlere sıfırla settings.reset()Son olarak, izleme için yerel bir MLflow sunucusu başlat:
mlflow server --backend-store-uri runs/mlflowMLflow ile Ultralytics YOLO, eğitim süreci boyunca çeşitli metriklerin, parametrelerin ve yapıtların günlüğe kaydedilmesini destekler:
- Metriklerin Günlüğe Kaydedilmesi: Her epoch sonunda ve eğitim tamamlandığında metrikleri izler.
- Parametrelerin Günlüğe Kaydedilmesi: Eğitim sürecinde kullanılan tüm parametreleri günlüğe kaydeder.
- Yapıtların Günlüğe Kaydedilmesi: Eğitim sonrasında ağırlıklar ve yapılandırma dosyaları gibi model yapıtlarını kaydeder.
Daha ayrıntılı bilgi için Ultralytics YOLO izleme belgelerini ziyaret et.
Evet, ayarları güncelleyerek Ultralytics YOLO için MLflow günlük kaydını devre dışı bırakabilirsin. Bunu CLI kullanarak şu şekilde yapabilirsin:
yolo settings mlflow=FalseAyarları daha ayrıntılı özelleştirmek ve sıfırlamak için ayarlar kılavuzuna bak.
Ultralytics YOLO'daki deneylerini izlemek üzere bir MLflow sunucusu başlatmak için şu komutu kullan:
mlflow server --backend-store-uri runs/mlflowBu komut, varsayılan olarak
http://127.0.0.1:5000adresinde yerel bir sunucu başlatır. Sunucuyu durdurmak için o terminaldeCtrl+Ctuşuna bas.Daha fazla komut seçeneği için komutlar bölümüne bak.
Eğitimden önce
MLFLOW_KEEP_RUN_ACTIVEortam değişkeniniTrueolarak ayarla:export MLFLOW_KEEP_RUN_ACTIVE=TrueVarsayılan değer
Falseolduğundan Ultralytics, eğitim tamamlandığındamlflow.end_run()çağırır.MLFLOW_KEEP_RUN_ACTIVE=Truekullanıldığında çalıştırma açık kalır; böylece aynı Python oturumundan ek metrikleri, parametreleri veya yapıtları günlüğe kaydedebilirsin — işin bittiğindemlflow.end_run()ile kendin kapat.1,true,yes,on,yvetdeğerleri bu davranışı etkinleştirir (büyük/küçük harfe duyarsızdır).MLflow'u Ultralytics YOLO ile entegre etmek, makine öğrenimi deneylerini yönetmek için çeşitli avantajlar sunar:
- Gelişmiş Deney Takibi: Farklı çalıştırmaları ve sonuçlarını kolayca takip edip karşılaştır.
- Geliştirilmiş Model Tekrarlanabilirliği: Tüm parametreleri ve yapıtları günlüğe kaydederek deneylerinin tekrarlanabilir olmasını sağla.
- Performans İzleme: Model iyileştirmelerine yönelik veriye dayalı kararlar almak için 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 kaydı sürecini otomatikleştir.
- İş Birliğine Dayalı 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 ayrıntılı bilgi için Ultralytics YOLO için MLflow Entegrasyonu belgelerini incele.