YOLO Vision 2025'i kaçırmayın!
25 Eylül 2025
10:00 — 18:00 BST
Hibrit etkinlik
Yolo Vision 2024

ClearML Kullanarak Ultralytics YOLOv5'i Uzaktan Eğitin ve İzleyin

Ultralytics Ekibi

4 dakika okuma

21 Ekim 2022

Sorunsuz ML entegrasyonu, deney takibi ve daha fazlasıyla geliştirilmiş bir Ultralytics YOLOv5 deneyimi için ClearML ile olan ortaklığımızı keşfedin.

Ultralytics olarak, YOLOv5 gibi harika açık kaynaklı araçlarımızın araştırma ve geliştirme çalışmalarını finanse etmemize ve bunları herkes için ücretsiz tutmamıza yardımcı olmak için diğer startup'larla ticari ortaklıklar kuruyoruz. Bu makale, bu ortaklara ait bağlı kuruluş bağlantıları içerebilir.

ClearML en yeni ortağımız: size zaman kazandırmak için tasarlanmış bir açık kaynak araç kutusu.

ML'nin Benimsenmesini hızlandırma misyonuyla ClearML, ML'yi herhangi bir Yazılım ve Donanım ürününe entegre etmeyi sorunsuz hale getirir.

Bu entegrasyon, bir YOLOv5 modelini eğitmeyi ve ClearML deney yöneticisini kullanarak otomatik olarak izlemeyi daha da kolaylaştırır. Veri girişi olarak bir ClearML veri kümesi sürüm kimliğini kolayca belirtebilirsiniz ve bu, modelinizi eğitmek için otomatik olarak kullanılacaktır.

Deney Takibinizi Bir Sonraki Seviyeye Taşıyın

  • Deney yöneticisinde her YOLOv5 eğitim çalıştırmasını takip edin.
  • Entegre ClearML Veri Sürümleme Aracı ile özel eğitim verilerinizin sürümlerini oluşturun ve bunlara kolayca erişin.
  • ClearML Hiperparametre Optimizasyonu'nu kullanarak en iyi mAP'yi elde edin.
  • Yeni eğitilmiş YOLOv5 modelinizi ClearML Serving'i kullanarak sadece birkaç komutla bir API'ye dönüştürün.

Bu araçlardan kaç tanesini kullanmak istediğiniz size kalmış, deney yöneticisine bağlı kalabilir veya hepsini etkileyici bir ardışık düzende bir araya getirebilirsiniz.

Kurulum

Deneylerinizi ve verilerinizi takip etmek için ClearML'nin bir sunucuyla iletişim kurması gerekir. Bunun için iki seçeneğiniz vardır: ya ClearML Barındırılan Hizmeti'ne ücretsiz kaydolun ya da kendi sunucunuzu kurun, buraya bakın.

Sunucu bile açık kaynaklıdır, bu nedenle hassas verilerle uğraşıyorsanız, bu sorun değil!

  1. Clearml python paketini kurun: pip install clearml
  2. Kimlik bilgileri oluşturarak ClearML SDK'sını sunucuya bağlayın (sağ üstten Ayarlar → Çalışma Alanı → Yeni kimlik bilgileri oluştur'a gidin), ardından aşağıdaki komutu yürütün ve talimatları izleyin: clearml-init

İşte bu kadar! Başlamaya hazırsınız...

ClearML ile YOLOv5 Eğitimi

ClearML deney takibini etkinleştirmek için ClearML pip paketini yüklemeniz yeterlidir.

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. project_name veya task_name'i değiştirmek isterseniz, değiştirebileceğiniz özel kaydedicimize gidin: utils/loggers/clearml/clearml_utils.py

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

Bu şunları yakalayacaktır:

  • Kaynak kodu + işlenmemiş değişiklikler
  • Yüklü paketler
  • (Hiper)parametreler
  • Model dosyaları (her n epoch'ta bir kontrol noktası kaydetmek için --save-period n kullanın)
  • Konsol çıktısı
  • Skalerler (mAP_0.5, mAP_0.5:0.95, kesinlik, geri çağırma, kayıplar, öğrenme oranları, ...)
  • Makine detayları, çalışma zamanı, oluşturulma tarihi vb. gibi genel bilgiler.
  • Etiket korelogramı ve karmaşıklık matrisi gibi üretilen tüm çizimler
  • Her epoch için sınırlayıcı kutular içeren görseller
  • Her epoch için mozaik
  • Her epoch için doğrulama görselleri

Fena değil! Artık eğitim sürecimize genel bir bakış elde etmek için tüm bu bilgileri ClearML UI'da görselleştirebiliriz. Tablo görünümüne özel sütunlar (örneğin mAP_0.5 gibi) ekleyerek en iyi performans gösteren modeli kolayca sıralayabilirsiniz. Veya birden çok deneyi seçip doğrudan karşılaştırabilirsiniz!

Hiperparametre optimizasyonu ve uzaktan yürütme gibi tüm bu bilgilerle yapabileceğimiz daha çok şey var, bu yüzden nasıl olduğunu öğrenmek için okumaya devam edin!

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

Verilerinizi kodunuzdan ayrı olarak sürümlemek genellikle iyi bir fikirdir ve en son sürümü edinmeyi kolaylaştırır. Bu depo, bir veri kümesi sürüm kimliği sağlamayı destekler ve henüz orada değilse verileri alacağından emin olur. Bunun yanı sıra, bu iş akışı kullanılan veri kümesi kimliğini görev parametrelerinin bir parçası olarak kaydeder, böylece hangi verilerin hangi deneyde kullanıldığını her zaman kesin olarak bilirsiniz!

Veri Kümenizi Hazırlayın

YOLOv5 deposu, bilgilerini içeren YAML dosyalarını kullanarak bir dizi farklı veri kümesini destekler. Varsayılan olarak, veri kümeleri depo kök klasörüne göre ..\datasets klasörüne indirilir. Yani, YAML'deki bağlantıyı kullanarak veya yolov5 tarafından sağlanan komut dosyalarıyla coco128 veri kümesini indirdiyseniz, şu klasör yapısını elde edersiniz:

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

Ancak bu, istediğiniz herhangi bir veri kümesi olabilir. Bu klasör yapısına uyduğunuz sürece kendi veri kümenizi kullanmaktan çekinmeyin.

Ardından, ⚠️ilgili YAML dosyasını veri kümesi klasörünün köküne kopyalayın⚠️. Bu YAML dosyaları, ClearML'nin veri kümesini düzgün bir şekilde kullanması için ihtiyaç duyacağı bilgileri içerir. Elbette bunu kendiniz de yapabilirsiniz, sadece örnek YAML'lerin yapısını takip edin.

Temel olarak, aşağıdaki anahtarlara ihtiyacımız var: path, train, test, val, nc, names.

..
|_ yolov5
|_ datasets
    |_ coco128
        |_ images
        |_ labels
        |_ coco128.yaml # ← BURADA!
        |_ LICENSE
        |_ README.txt

Veri Kümenizi Yükleyin

Bu veri setini sürüm kontrollü bir veri seti olarak ClearML'e aktarmak için, veri seti kök klasörüne gidin ve aşağıdaki komutu çalıştırın:

cd coco128

clearml-data sync --project YOLOv5 --name coco128 --folder .


clearml-data sync komutu aslında kısaltılmış bir komuttur. Bunun yerine aşağıdaki komutları da art arda çalıştırabilirsiniz:

# İsteğe bağlı olarak, eğer bu sürümü başka bir veri seti sürümüne dayandırmak istiyorsanız --parent ekleyin, böylece yinelenen dosyalar yüklenmez!

# İsteğe bağlı olarak, eğer bu sürümü başka bir veri seti sürümüne dayandırmak istiyorsanız --parent ekleyin, böylece yinelenen dosyalar yüklenmez!

clearml-data create --name coco128 --project YOLOv5/p>

clearml-data add --files .

clearml-data close

ClearML Veri Seti Kullanarak Eğitim Çalıştırma

Artık bir ClearML veri setiniz olduğuna göre, bunu özel YOLOv5 modellerini eğitmek için çok basit bir şekilde kullanabilirsiniz.

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

Hiperparametre Optimizasyonu

Deneylerimizi ve veri versiyonumuzu oluşturduğumuza göre, şimdi de bunların üzerine neler inşa edebileceğimize bir göz atma zamanı!

Kod bilgisi, kurulu paketler ve ortam detayları kullanılarak, deneyin kendisi artık tamamen yeniden üretilebilir durumda. Hatta ClearML, bir deneyi klonlamanıza ve parametrelerini bile değiştirmenize olanak tanır. Daha sonra bu yeni parametrelerle otomatik olarak yeniden çalıştırabiliriz, bu temelde HPO'nun yaptığı şeydir!

Hiperparametre optimizasyonunu yerel olarak çalıştırmak için önceden hazırlanmış bir betik ekledik. Sadece bir eğitim görevinin en az bir kez çalıştırıldığından emin olun, böylece ClearML deney yöneticisinde olur, esasen onu klonlayıp hiperparametrelerini değiştireceğiz.

utils/loggers/clearml/hpo.py adresinde bulunan betikte bu şablon görevinin kimliğini doldurmanız ve ardından çalıştırmanız gerekir. Bir ClearML kuyruğuna koymak ve uzak bir aracının bunun üzerinde çalışmasını sağlamak için task.execute_locally()'yi task.execute() olarak değiştirebilirsiniz.

# Optuna'yı kullanmak için önce kurun, aksi takdirde optimize ediciyi sadece RandomSearch olarak değiştirebilirsiniz: pip install optuna python utils/loggers/clearml/hpo.py

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

HPO'yu yerel olarak çalıştırmak gerçekten kullanışlıdır, ancak deneylerimizi bunun yerine uzak bir makinede çalıştırmak istersek ne olur? Belki de yerinde çok güçlü bir GPU makinesine erişiminiz var veya bulut GPU'larını kullanmak için bir bütçeniz var. İşte bu noktada ClearML Agent devreye giriyor.

Aracının neler yapabileceğine buradan göz atın:

Kısacası: deney yöneticisi tarafından izlenen her deney, farklı bir makinede yeniden üretmek için yeterli bilgi içerir (kurulu paketler, işlenmemiş değişiklikler vb.). Yani bir ClearML aracısı tam olarak şunu yapar: gelen görevler için bir kuyruğu dinler ve bir tane bulduğunda, ortamı yeniden oluşturur ve yine de deney yöneticisine skalerler, grafikler vb. raporlarken çalıştırır.

Tek yapmanız gereken şunu çalıştırarak herhangi bir makineyi (bir bulut VM'si, yerel bir GPU makinesi, kendi dizüstü bilgisayarınız) bir ClearML aracısına dönüştürebilirsiniz:

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

Klonlama, Düzenleme ve Sıraya Alma

Aracımız çalışırken, ona biraz iş verebiliriz. HPO bölümünden bir görevi klonlayabildiğimizi ve hiperparametreleri düzenleyebildiğimizi hatırlıyor musunuz? Bunu arayüzden de yapabiliriz!

🪄 Deneyi sağ tıklayarak klonlayın

🎯 Hiperparametreleri istediğiniz gibi düzenleyin

⏳ Görevi sağ tıklayarak herhangi bir kuyruğa ekleyin

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

Artık yukarıda açıkladığımız gibi bir görevi klonlayabilir veya mevcut komut dosyanızı task.execute_remotely() ekleyerek işaretleyebilirsiniz ve yürütme sırasında, aracının üzerinde çalışmaya başlaması için bir kuyruğa konulacaktır!

YOLOv5 eğitim komut dosyasını uzaktan çalıştırmak için, ClearML kaydedici başlatıldıktan sonra training.py komut dosyasına bu satırı eklemeniz yeterlidir:

# ... # 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 either None is user did not choose for ClearML dataset or is filled in by ClearML data_dict = loggers.clearml.data_dict # ...

Bu değişiklikten sonra eğitim komut dosyasını çalıştırırken, python komut dosyası o satıra kadar çalıştıracak, ardından kodu paketleyip kuyruğa gönderecektir!

Otomatik ölçeklendirme çalışanları

ClearML otomatik ölçekleyicilerle de birlikte gelir! Bu araç, kuyrukta algılanan deneyler olduğunda, seçtiğiniz bulutta (AWS, GCP, Azure) otomatik olarak yeni uzak makineler başlatacak ve bunları sizin için ClearML aracılarına dönüştürecektir. Görevler işlendikten sonra, otomatik ölçekleyici uzak makineleri otomatik olarak kapatacak ve ödeme yapmayı bırakacaksınız! Otomatik ölçekleyicilerin nasıl kullanılmaya başlanacağına ilişkin aşağıdaki videoya göz atın.

Herhangi bir sorunuz mu var? Topluluğumuza katılın ve sorunuzu bugün bırakın!

Gelin, yapay zekanın geleceğini
birlikte inşa edelim!

Makine öğreniminin geleceği ile yolculuğunuza başlayın

Ücretsiz başlayın
Bağlantı panoya kopyalandı