Meet YOLO26: next-gen vision AI.

Link to this sectionClearML Entegrasyonu#

ClearML MLOps experiment tracking platform

Link to this sectionClearML Hakkında#

ClearML, makine öğrenimi iş akışlarını kolaylaştırmak ve mühendislik süresinden tasarruf sağlamak için oluşturulmuş açık kaynaklı bir 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ümlendir 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 skaler paneli

Link to this section🦾 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

Settings → Workspace → Create new credentials (ClearML kullanıcı arayüzünün sağ üst köşesi) üzerinden kimlik bilgileri oluştur ve ardından şunu çalıştır:

clearml-init

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

Link to this section🚀 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ği ile entegrasyonu sağlayacaktır. Bundan sonraki her eğitim çalışması ClearML deney yöneticisi tarafından yakalanacak ve kaydedilecektir.

To customize the project and task names, pass --project and --name to train.py. The defaults are YOLOv5 and Training. ClearML uses / as a subproject delimiter, so avoid / in custom project names.

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 checkpoints (use --save-period n to save every n epochs)
  • 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 korelogramı ve karışıklık matrisi gibi oluşturulan grafikler
  • Epok başına sınırlayıcı kutulara sahip görüntüler
  • Epok başına mozaik görselleştirmeleri
  • Epok başına doğrulama görüntüleri

Her şey ClearML kullanıcı arayüzünde görünür, böylece eğitimi tek bir yerden izleyebilirsin. 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 yürütme hakkında bilgi edinmek için okumaya devam et.

Link to this section🔗 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 kümesi sürüm yönetimi arayüzü

Link to this sectionVeri Kümeni Hazırla#

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

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

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

Ardından, veri kümesinin YAML dosyasını veri kümesi kök klasörüne kopyala; ClearML, veri kümesini doğru şekilde kullanmak için bu dosyayı okur. path, train, test, val, nc ve names tanımlarını içeren örnek düzeni takip ederek kendi YAML dosyanı yazabilirsin.

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

Link to this sectionVeri 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 çalıştırabileceğin aşağıdaki dizinin 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

Link to this sectionBir 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

Link to this section👀 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

İşi uzak bir aracı tarafından alınması üzere bir ClearML kuyruğuna göndermek için task.execute_locally() ifadesini task.execute() olarak değiştir.

YOLOv5 metrikleri ile ClearML HPO paneli

Link to this section🤯 Uzaktan Yürütme (Gelişmiş)#

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

İ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]

Link to this sectionKopyalama, 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.

Kullanıcı arayüzünden bir görev kuyruğa al

Link to this sectionBir Görevi Uzaktan Yürütme#

Ayrıca, ClearML günlüğü başlatıldıktan sonra task.execute_remotely() ekleyerek çalışan bir betiği uzaktan yürütme için programatik olarak işaretleyebilirsin. Vurgulanan satırı train.py dosyasına 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.

Link to this sectionOtomatik Ölçeklenen Çalışanlar#

ClearML, bir kuyrukta bekleyen deneyler olduğunda AWS, GCP veya Azure'da uzak makineleri başlatan, bunları ClearML aracısına dönüştüren ve iş bittiğinde kapatan autoscaler araçlarıyla birlikte gelir; böylece yalnızca çalışan bilgi işlem gücü için ödeme yaparsın.

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

Videoyu izle

Link to this sectionDaha Fazla Bilgi#

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

Katkıda Bulunanlar

Yorumlar