ClearML Entegrasyonu
ClearML Hakkında
ClearML, makine öğrenimi iş akışlarını kolaylaştırmak ve mühendislik süresinden tasarruf etmek için oluşturulmuş açık kaynaklı bir MLOps platformudur.
- 🔨 Her YOLOv5 eğitim çalıştırması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ıştırmalarını uzaktan eğit ve izle.
- 🔬 ClearML hiperparametre optimizasyonu ile en iyi mAP değerini bul.
- 🔭 ClearML Serving kullanarak birkaç komutla eğitilmiş YOLOv5 modelini bir API'ye dönüştür.
Bu araçların ihtiyacın olan kadarıyla kullan — ister yalnızca deney yöneticisiyle başla, istersen hepsini tam bir işlem hattına bağla.

🦾 Kurulum
ClearML'in deneylerini ve verilerini takip edebilmesi için bir sunucuyla iletişim kurması gerekir. İki seçeneğin var:
- Ücretsiz ClearML Hosted Service için kaydol veya
- Kendi ClearML sunucunu kur — açık kaynaklıdır, bu nedenle hassas veriler için bile geçerli bir seçenek olarak kalır.
Ardından clearml Python paketini yükle ve SDK'yı sunucuna bağla:
pip install clearmlAyarlar → Çalışma Alanı → Yeni kimlik bilgileri oluştur (ClearML arayüzünün sağ üst köşesi) kısmından kimlik bilgilerini oluştur, ardından şunu çalıştır:
clearml-initİstemi izle. İşte bu kadar — kurulum tamamlandı.
🚀 ClearML ile YOLOv5 Eğitimi
Deney takibini etkinleştirmek için, henüz yapmadıysan ClearML pip paketini yükle:
pip install clearmlBu, YOLOv5 eğitim betiği ile entegrasyonu sağlayacaktır. Bundan sonraki her eğitim çalıştırması 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 --cacheVeya özel adlarla:
python train.py --project my_project --name my_training --img 640 --batch 16 --epochs 3 --data coco8.yaml --weights yolov5s.pt --cacheHer çalıştırma şunları yakalar:
- Kaynak kodu ve işlenmemiş değişiklikler
- Yüklü paketler
- Hiperparametreler
- Model checkpoints (use
--save-period nto save everynepochs) - Konsol çıktısı
- Skalerler (mAP_0.5, mAP_0.5:0.95, hassasiyet, geri çağırma, kayıplar, öğrenme oranları)
- Makine ayrıntıları, ç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ı kutular içeren görüntüler
- Epok başına mozaik görselleştirmeler
- Epok başına doğrulama görüntüleri
Her şey ClearML 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) ekle 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 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 dizinine 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.txtBu 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 kullanmak için bu dosyayı okur. path, train, test, val, nc ve names tanımladığından emin olarak örnek düzeni izleyip kendi YAML dosyanı yazabilirsin.
..
|_ yolov5
|_ datasets
|_ coco128
|_ images
|_ labels
|_ coco128.yaml # <---- HERE
|_ LICENSE
|_ README.txtVeri 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, ayrıca 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 closeBir ClearML Veri Kümesi Üzerinde Eğit
Veri kümesi kaydedildiğinde, kimlik aracılığıyla eğitime 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ş haldeyken, bunların üzerine inşa edebilirsin. Takip edilen her deney tüm ortamı (kod, yüklü paketler ve yapılandırma) yakaladığı için, çalıştırmalar tamamen tekrarlanabilirdir. ClearML, bir deneyi klonlamana, parametrelerini değiştirmene ve otomatik olarak yeniden çalıştırmana olanak tanır; bu, hiperparametre optimizasyonunun (HPO) temelidir.
HPO'yu yerel olarak çalıştırmak için paketlenmiş betiği kullan. Önce deney yöneticisinde bir eğitim görevinin mevcut olduğundan emin ol — betik onu klonlar ve hiperparametrelerini değiştirir.
utils/loggers/clearml/hpo.py içindeki şablon görev kimliğini doldur, 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 aracının alması için bir ClearML kuyruğuna göndermek üzere task.execute_locally() ifadesini task.execute() ile değiştir.

🤯 Uzaktan Yürütme (Gelişmiş)
HPO'yu yerel olarak çalıştırmak uygundur, ancak genellikle daha güçlü donanımlarda (yerinde bir GPU makinesi veya bir bulut örneği) deneyler yapmak istersin. ClearML Agent bu rolü üstlenir:
Takip edilen her deney, onu başka bir makinede yeniden oluşturmak için gereken her şeyi (yüklü paketler, işlenmemiş değişiklikler ve yapılandırma) içerir. Bir ClearML aracısı 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 VM, 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]Klonlama, Düzenleme ve Kuyruğa Alma
Bir aracı çalışırken, ona doğrudan arayüzden iş atayabilirsin:
- 🪄 Bir deneye sağ tıkla ve klonla.
- 🎯 Hiperparametrelerini düzenle.
- ⏳ Klonlanmış göreve sağ tıkla ve bir hedef kuyruğa ekle.

Bir Görevi Uzaktan Yürütme
Ayrıca, ClearML kaydedicisi örneklendikten sonra task.execute_remotely() ekleyerek çalışan bir betiği programlı olarak uzaktan yürütme için 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.
Otomatik Ö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 ile birlikte gelir — böylece yalnızca gerçekten çalışan hesaplama kaynakları için ödeme yaparsın.
Aşağıdaki başlangıç videosunu izle:
Daha Fazla Bilgi
ClearML'i Ultralytics modelleriyle entegre etme hakkında daha fazla bilgi için ClearML entegrasyon kılavuzumuza göz at ve MLOps iş akışını diğer deney takip araçlarıyla nasıl geliştirebileceğini keşfet.