YOLO Vision 2026:

ClearML Entegrasyonu#

ClearML MLOps experiment tracking platform

ClearML Hakkında#

ClearML, makine öğrenimi iş akışlarını kolaylaştırmak ve mühendislik süresinden tasarruf etmek için oluşturulmuş bir açık kaynaklı MLOps platformudur.

  • 🔨 Her YOLOv5 eğitim çalışmasını deney yöneticisinde takip et.
  • 🔧 Entegre ClearML veri sürümleme aracı ile özel eğitim verilerini sürümle ve bunlara eriş.
  • 🔦 ClearML Agent kullanarak YOLOv5 çalışmalarını uzaktan eğit ve izle.
  • 🔬 ClearML hiperparametre optimizasyonu ile en iyi mAP değerini bul.
  • 🔭 ClearML Serving ile birkaç komut kullanarak YOLOv5 modelini API'ye dönüştür.

Bu araçlardan ihtiyacın olan kadarını kullan; sadece deney yöneticisiyle başla veya her şeyi tam bir boru hattına (pipeline) dönüştür.

YOLOv5 eğitim metriklerini gösteren ClearML skalerler paneli

🦾 Kurulum#

ClearML'in deneylerini ve verilerini izleyebilmesi için bir sunucuyla iletişim kurması gerekir. İki seçeneğin var:

Ardından clearml Python paketini yükle ve SDK'yı sunucuna bağla:

pip install clearml

Ayarlar → Çalışma Alanı → Yeni kimlik bilgileri oluştur (ClearML kullanıcı arayüzünün sağ üst köşesi) bölümünden kimlik bilgileri oluştur ve ardından şunu çalıştır:

clearml-init

İstemleri takip et. Hepsi bu; kurulum tamamlandı.

🚀 ClearML ile YOLOv5 Eğitimi#

Deney takibini etkinleştirmek için, eğer henüz yapmadıysan ClearML pip paketini yükle:

pip install clearml

Bu, YOLOv5 eğitim betiğiyle entegrasyonu etkinleştirecektir. Bundan sonraki her eğitim çalıştırması ClearML deney yöneticisi tarafından yakalanacak ve saklanacaktır.

Projeyi ve görev adlarını özelleştirmek için --project ve --name değerlerini train.py öğesine aktar. Varsayılanlar YOLOv5 ve Training değerleridir. ClearML, alt proje ayırıcı olarak / kullanır, bu nedenle özel proje adlarında / kullanmaktan kaçın.

python train.py --img 640 --batch 16 --epochs 3 --data coco8.yaml --weights yolov5s.pt --cache

Veya özel isimlerle:

python train.py --project my_project --name my_training --img 640 --batch 16 --epochs 3 --data coco8.yaml --weights yolov5s.pt --cache

Her çalışma şunları yakalar:

  • Kaynak kodu ve commit edilmemiş değişiklikler
  • Yüklü paketler
  • Hiperparametreler
  • Model kontrol noktaları (n epokta bir kaydetmek için --save-period n kullanın)
  • Konsol çıktısı
  • Skalerler (mAP_0.5, mAP_0.5:0.95, kesinlik, duyarlılık, kayıplar, öğrenme oranları)
  • Makine detayları, çalışma süresi ve oluşturulma tarihi
  • Etiket korelasyon grafiği ve karışıklık matrisi gibi oluşturulan grafikler
  • Her epoch için sınırlayıcı kutulara sahip görseller
  • Epok başına mozaik görselleştirmeleri
  • Epok başına doğrulama görüntüleri

Eğitimi tek bir yerden izleyebilmen için her şey ClearML arayüzünde görünür. En iyi performans gösteren modele göre sıralamak için özel sütunlar ekle (örneğin, mAP_0.5) veya yan yana karşılaştırmak için birden fazla deney seç.

Hiperparametre optimizasyonu ve uzaktan çalıştırma için okumaya devam et.

🔗 Veri Kümesi Sürüm Yönetimi#

Verileri koddan ayrı olarak sürümlendirmek, en son sürümü çekmeyi kolaylaştırır ve tam tekrarlanabilirlik sağlar. Bu depo bir veri kümesi sürüm kimliğini kabul eder, eksikse verileri otomatik olarak getirir ve kimliği bir görev parametresi olarak kaydeder, böylece hangi deneyde hangi verinin kullanıldığını her zaman bilirsin.

ClearML veri seti sürüm yönetimi arayüzü

Veri Kümeni Hazırla#

YOLOv5 deposu, YAML yapılandırma dosyaları aracılığıyla birçok veri setini destekler. Varsayılan olarak veri setleri, depo kök dizinine göre ../datasets klasörüne indirilir. coco128 indirildikten sonra klasör yapısı şu şekildedir:

..
|_ yolov5
|_ datasets
    |_ coco128
        |_ images
        |_ labels
        |_ LICENSE
        |_ README.txt

Bu yapıyı koruduğun sürece herhangi bir veri kümesi çalışır.

Sonra, veri setinin YAML dosyasını veri seti kök klasörüne kopyala — ClearML, veri setini doğru şekilde kullanmak için bu dosyayı okur. Örnek düzeni takip ederek kendi YAML dosyanı yazabilir ve path, train, test, val, nc ve names tanımladığından emin olabilirsin.

..
|_ yolov5
|_ datasets
    |_ coco128
        |_ images
        |_ labels
        |_ coco128.yaml  # <---- HERE
        |_ LICENSE
        |_ README.txt

Veri Kümeni Yükle#

Veri kümesini sürümlenmiş bir ClearML veri kümesi olarak kaydetmek için kök klasörüne git ve şunu çalıştır:

cd ../datasets/coco128
clearml-data sync --project YOLOv5 --name coco128 --folder .

clearml-data sync, açıkça da çalıştırabileceğin aşağıdaki sıranın kısaltmasıdır:

# Add --parent <parent_dataset_id> to base this version on a previous one.
# Duplicate files are not re-uploaded.
clearml-data create --name coco128 --project YOLOv5
clearml-data add --files .
clearml-data close

Bir ClearML Veri Kümesi Üzerinde Eğitim Yap#

Veri kümesi kaydedildiğinde, kimliğini belirterek eğitimi ona yönlendir:

python train.py --img 640 --batch 16 --epochs 3 --data clearml://YOUR_DATASET_ID --weights yolov5s.pt --cache

👀 Hiperparametre Optimizasyonu#

Deneyler ve veriler sürümlenmişken, bunların üzerine inşa edebilirsin. İzlenen her deney tüm ortamı (kod, yüklü paketler ve yapılandırma) yakaladığı için, çalışmalar tamamen tekrarlanabilirdir. ClearML, bir deneyi kopyalamanı, parametrelerini değiştirmeni ve otomatik olarak yeniden çalıştırmanı sağlar; bu, hiperparametre optimizasyonunun (HPO) temelidir.

HPO'yu yerel olarak çalıştırmak için paketlenmiş betiği kullan. Öncelikle deney yöneticisinde bir eğitim görevinin mevcut olduğundan emin ol; betik onu kopyalar ve hiperparametrelerini değiştirir.

utils/loggers/clearml/hpo.py içindeki şablon görev kimliğini doldur ve ardından çalıştır:

# Install Optuna or change the optimizer to RandomSearch.
pip install optuna
python utils/loggers/clearml/hpo.py

Görevi uzaktaki bir aracının alması için bir ClearML kuyruğuna göndermek üzere task.execute_locally() değerini task.execute() olarak değiştir.

YOLOv5 metrikleriyle ClearML HPO paneli

🤯 Uzaktan Yürütme (Gelişmiş)#

HPO'yu yerel olarak çalıştırmak uygundur, ancak genellikle deneyleri daha güçlü donanımlarda (şirket içi bir GPU makinesi veya bulut örneği) yapmak istersin. ClearML Agent tam olarak bu rolü üstlenir:

İzlenen her deney, onu başka bir makinede tekrarlamak için gereken her şeyi (yüklü paketler, commit edilmemiş değişiklikler ve yapılandırma) içerir. Bir ClearML aracı bir kuyruğu dinler, gelen görevleri alır, ortamı yeniden oluşturur, işi çalıştırır ve skalerleri ve grafikleri deney yöneticisine geri aktarır.

Herhangi bir makineyi (bulut sanal makinesi, yerel GPU kutusu veya dizüstü bilgisayar) şununla bir ClearML aracısına dönüştür:

clearml-agent daemon --queue QUEUES_TO_LISTEN_TO [--docker]

Kopyalama, Düzenleme ve Kuyruğa Alma#

Bir aracı çalışırken, ona doğrudan kullanıcı arayüzünden iş atayabilirsin:

  • 🪄 Bir deneye sağ tıkla ve kopyala.
  • 🎯 Hiperparametrelerini düzenle.
  • ⏳ Kopyalanan göreve sağ tıkla ve hedef kuyruğa ekle.

Arayüzden bir görev sıraya ekleme

Bir Görevi Uzaktan Yürütme#

ClearML günlüğü örneklendikten sonra task.execute_remotely() ekleyerek çalışan bir betiği uzaktan yürütme için programatik olarak da işaretleyebilirsin. Vurgulanan satırı train.py öğesine ekle:

# ...
# Loggers
data_dict = None
if RANK in {-1, 0}:
    loggers = Loggers(save_dir, weights, opt, hyp, LOGGER)  # loggers instance
    if loggers.clearml:
        loggers.clearml.task.execute_remotely(queue="my_queue")  # <------ ADD THIS LINE
        # data_dict is None unless the user selected a ClearML dataset, in which case ClearML fills it in.
        data_dict = loggers.clearml.data_dict
# ...

Bu değişiklikten sonra, eğitim betiğini çalıştırmak o satıra kadar yürütür, kodu paketler ve kuyruğa gönderir.

Otomatik Ölçeklenen Çalışanlar#

ClearML, bir kuyrukta bekleyen deneyler olduğunda AWS, GCP veya Azure'da uzaktan makineler başlatan, bunları ClearML aracılarına dönüştüren ve iş bittiğinde onları kapatan otomatik ölçeklendiricilerle birlikte gelir; böylece yalnızca gerçekten çalışan bilgi işlem gücü için ödeme yaparsın.

Aşağıdaki başlangıç videosunu izle:

Videoyu izle

Daha Fazla Bilgi#

ClearML'yi Ultralytics modelleriyle entegre etme hakkında daha fazla bilgi için ClearML entegrasyon kılavuzumuza göz at ve diğer deney izleme araçlarıyla MLOps iş akışını nasıl geliştirebileceğini keşfet.

Katkıda Bulunanlar

Yorumlar