Ultralytics YOLO için MLflow Entegrasyonu#
Giriş#
Deney günlüğü kaydı, çeşitli metrikleri, parametreleri ve yapıtları izlemeyi sağlayan makine öğrenimi iş akışlarının kritik 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 tanınan Ultralytics YOLO, artık uçtan uca 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 projen için MLflow günlük kaydı özelliklerini ayarlama ve kullanma konusunda 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, herhangi bir makine öğrenimi kitaplığı ve programlama diliyle çalışacak şekilde tasarlanmıştır.
Özellikler#
- Metrik Günlüğü Kaydı: Her epoch'un sonunda ve eğitimin bitiminde metrikleri günlüğe kaydeder.
- Parametre Günlüğü Kaydı: Eğitimde kullanılan tüm parametreleri günlüğe kaydeder.
- Yapıt Günlüğü Kaydı: Ağırlıklar ve yapılandırma dosyaları dahil olmak üzere model yapıtlarını eğitimin sonunda günlüğe kaydeder.
Kurulum ve Ön Koşullar#
MLflow'un kurulu olduğundan emin ol. Kurulu değilse pip kullanarak yükle:
pip install mlflowUltralytics ayarlarında MLflow günlük kaydının etkin olduğundan emin ol. Bu genellikle mlflow anahtarıyla denetlenir. Daha fazla bilgi için ayarlar sayfasına bak.
Python ortamında, ayarlarını değiştirmek için settings nesnesi üzerinde update yöntemini ç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 belirleyebilirsin:
export MLFLOW_EXPERIMENT_NAME=YOUR_EXPERIMENT_NAMEAlternatif olarak YOLO modeli eğitirken
project=<project>bağımsız değişkenini kullanabilirsin; ö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 aracılığıyla belirleyebilirsin:
export MLFLOW_RUN=YOUR_RUN_NAMEAlternatif olarak YOLO modeli eğitirken
name=<name>bağımsız değişkenini kullanabilirsin; örneğinyolo 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 için (örneğin aynı not defterinden ek metrikleri veya yapıtları günlüğe kaydetmek amacıyla) 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ız). Ayarlanmamış bir değişken dahil diğer tüm değerler, çalıştırmayı kapatma varsayılanını korur. Daha sonramlflow.end_run()ile bunu manuel olarak kapatmayı unutma.
Günlük Kaydı#
Günlük kaydı, on_pretrain_routine_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 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üklerinizi görüntülemek için MLflow sunucunuza (genellikle
http://127.0.0.1:5000) gidin ve deneyinizi ve çalıştırmanızı seçin.
-
Çalıştırmayı Görüntüle: Çalıştırmalar, bir deney içindeki bağımsız modellerdir. Bir çalıştırmaya tıklayarak yüklenen artefaktlar ve model ağırlıkları dahil olmak üzere çalıştırma ayrıntılarını görüntüleyin.

MLflow'u Devre Dışı Bırakma#
MLflow günlük kaydını kapatmak için:
yolo settings mlflow=FalseSonuç#
MLflow'un Ultralytics YOLO ile 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ına yardımcı olur. Daha fazla ayrıntı için MLflow'un resmî dokümantasyonunu ziyaret et.
SSS#
Ultralytics YOLO ile MLflow günlük kaydını ayarlamak için önce MLflow'un kurulu olduğundan emin olman gerekir. Bunu pip kullanarak yükleyebilirsin:
pip install mlflowArdından Ultralytics ayarlarında MLflow günlük kaydını etkinleştir. Bu işlem
mlflowanahtarı kullanılarak denetlenebilir. Daha fazla bilgi için ayarlar kılavuzuna bak.Ultralytics MLflow Ayarlarını Güncellemefrom 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/mlflowMLflow ile Ultralytics YOLO, eğitim süreci boyunca çeşitli metriklerin, parametrelerin ve yapıtların günlüğe kaydedilmesini destekler:
- Metrik Günlüğü Kaydı: Her epoch sonunda ve eğitim tamamlandığında metrikleri izler.
- Parametre Günlüğü Kaydı: Eğitim sürecinde kullanılan tüm parametreleri günlüğe kaydeder.
- Yapıt Günlüğü Kaydı: Ağırlıklar ve yapılandırma dosyaları gibi model yapıtlarını eğitimden sonra kaydeder.
Daha ayrıntılı bilgi için Ultralytics YOLO izleme dokümantasyonunu 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=FalseDaha fazla özelleştirme ve ayarları sıfırlama için ayarlar kılavuzuna bak.
Ultralytics YOLO'da deneylerini izlemek için bir MLflow sunucusu başlatmak üzere ş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. Durdurmak için ilgili terminaldeCtrl+Ctuşlarına 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 olarak bu değer
Falseolduğundan Ultralytics, eğitim tamamlandığındamlflow.end_run()çağrısını yapar.MLFLOW_KEEP_RUN_ACTIVE=Trueile çalıştırma açık kalır; böylece aynı Python oturumundan ek metrikleri, parametreleri veya yapıtları günlüğe kaydedebilirsin — işlemin bittiğindemlflow.end_run()ile kendin kapat.1,true,yes,on,yvetdeğerleri bu davranışı etkinleştirir (büyük/küçük harfe duyarsız).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 izle ve karşılaştır.
- Geliştirilmiş Model Yeniden Üretilebilirliği: Tüm parametreleri ve yapıtları günlüğe kaydederek deneylerinin yeniden üretilebilir olmasını sağla.
- 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 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'un Ultralytics YOLO ile kurulumunu ve kullanımını derinlemesine incelemek için Ultralytics YOLO için MLflow Entegrasyonu dokümantasyonunu keşfet.