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 zamanından tasarruf etmek için geliştirilmiş bir açık kaynak MLOps platformudur.

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

Bu araçların ihtiyacın kadarını kullan — yalnızca deney yöneticisiyle başlayabilir veya hepsini birbirine bağlayarak eksiksiz bir işlem hattı oluşturabilirsin.

🦾 Kurulum#

ClearML, deneylerini ve verilerini takip etmek için bir sunucuyla iletişim kurmalıdır. İki seçeneğin var:

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

pip install clearml

Settings → Workspace → Create new credentials bölümünden kimlik bilgileri oluştur (ClearML kullanıcı arayüzünün sağ üst köşesinde), 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 daha önce yüklemediysen ClearML pip paketini yükle:

pip install clearml

Bu işlem YOLOv5 eğitim betiğiyle entegrasyonu etkinleştirir. Bundan sonra gerçekleştirilen her eğitim çalıştırması ClearML deney yöneticisi tarafından yakalanıp depolanır.

Proje 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, / öğesini alt proje ayırıcısı 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 adlarla:

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

Her çalıştırmada şunlar yakalanır:

  • Kaynak kodu ve commit edilmemiş değişiklikler
  • Yüklü paketler
  • Hiperparametreler
  • Model kontrol noktaları (her n epoch'ta bir kaydetmek için --save-period n kullan)
  • Konsol çıktısı
  • Skalerler (mAP_0.5, mAP_0.5:0.95, kesinlik, geri çağırma, kayıplar, öğrenme oranları)
  • Makine ayrıntıları, çalışma zamanı ve oluşturulma tarihi
  • Etiket korelogramı ve karmaşıklık matrisi gibi oluşturulan grafikler
  • Her epoch için BBox içeren görüntüler
  • Her epoch için mozaik görselleştirmeleri
  • Her epoch için 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 (örneğin, mAP_0.5) ekleyebilir veya birden fazla deneyi seçerek bunları yan yana karşılaştırabilirsin.

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

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

Verileri koddan ayrı olarak sürümlemek, en güncel sürümü kolayca almanı sağlar ve eksiksiz yeniden üretilebilirlik sunar. Bu depo bir veri kümesi sürüm kimliğini kabul eder, veri eksikse verileri otomatik olarak getirir ve kimliği görev parametresi olarak kaydeder; böylece hangi deneyde hangi verilerin kullanıldığını her zaman bilirsin.

Veri 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, depo köküne göre ../datasets klasörüne indirilir. coco128 indirildikten sonra klasör yapısı şöyle görünür:

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

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

Ardından veri kümesinin YAML dosyasını veri kümesinin kök klasörüne kopyala — ClearML, veri kümesini doğru şekilde kullanmak için bu dosyayı okur. Örnek yerleşimi izleyerek kendi YAML dosyanı yazabilir; dosyada path, train, test, val, nc ve names öğelerinin tanımlandığı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 geç ve şunu çalıştır:

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

clearml-data sync, aşağıdaki komut dizisinin kısa yazımıdır; bu komutları açıkça da çalıştırabilirsin:

# 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

ClearML Veri Kümesiyle Eğitim#

Veri kümesi kaydedildikten sonra eğitim hedefini kimliği kullanarak belirt:

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ümlendiğinde bunların üzerine inşa edebilirsin. İzlenen her deney eksiksiz ortamı — kodu, yüklü paketleri ve yapılandırmayı — kaydettiği için çalıştırmalar tamamen yeniden üretilebilirdir. ClearML bir deneyi klonlamana, parametrelerini değiştirip otomatik olarak yeniden çalıştırmana olanak tanır; bu da hiperparametre optimizasyonunun (HPO) temelidir.

HPO'yu yerel olarak çalıştırmak için birlikte gelen betiği kullan. Öncelikle deney yöneticisinde bir eğitim görevinin bulunduğundan emin ol — betik bu görevi klonlar ve hiperparametrelerini değiştirir.

Şablon görev kimliğini utils/loggers/clearml/hpo.py içine gir, ardından şunu çalıştır:

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

İşi uzak bir ClearML kuyruğuna göndermek ve bir uzak agent'ın almasını sağlamak için task.execute_locally() değerini task.execute() olarak değiştir.

YOLOv5 metriklerini içeren ClearML HPO panosu

🤯 Uzaktan Çalıştırma (İleri Düzey)#

HPO'yu yerel olarak çalıştırmak kullanışlıdır, ancak deneyleri genellikle daha güçlü donanımlarda — şirket içi bir GPU makinesinde veya bulut sunucusunda — çalıştırmak istersin. ClearML Agent'ın rolü budur:

İzlenen her deney, başka bir makinede yeniden üretmek için gereken her şeyi (yüklü paketleri, commit edilmemiş değişiklikleri ve yapılandırmayı) içerir. Bir ClearML agent'ı kuyruğu dinler, gelen görevleri alır, ortamı yeniden oluşturur, işi çalıştırır ve skalerleri ile grafikleri deney yöneticisine geri aktarır.

Şu komutla herhangi bir makineyi — bir bulut VM'sini, yerel bir GPU bilgisayarını veya bir dizüstü bilgisayarı — ClearML agent'ına dönüştür:

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

Klonlama, Düzenleme ve Kuyruğa Ekleme#

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

  • 🪄 Bir deneye sağ tıklayıp klonla.
  • 🎯 Hiperparametrelerini düzenle.
  • ⏳ Klonlanan göreve sağ tıklayıp hedef kuyruğa ekle.

Bir Görevi Uzaktan Çalıştırma#

ClearML logger örneklendirildikten sonra task.execute_remotely() öğesini ekleyerek çalışan bir betiği programlı olarak uzaktan çalıştırılmak üzere de 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ği o satıra kadar çalışı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 uzak makineler başlatan, bunları ClearML agent'larına dönüştüren ve işler tamamlandığında kapatan otomatik ölçekleyiciler ile birlikte gelir — böylece yalnızca gerçekten çalışan 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 takip araçlarıyla MLOps iş akışını nasıl geliştirebileceğini keşfet.

Katkıda Bulunanlar

Yorumlar