Experiment Tracking
Deney takibi; her ML eğitim çalıştırmasının parametrelerini, kod ve veri sürümlerini, metriklerini ve yapıtlarını kaydederek çalıştırmaların karşılaştırılmasını ve yeniden üretilmesini sağlar.
Deney takibi, her makine öğrenimi eğitim çalıştırmasıyla ilgili bilgileri (kod sürümü, veri sürümü, ayarlar, ortam, zaman içindeki metrikler ve ağırlıklar ile grafikler gibi çıktı dosyaları dâhil) aranabilir tek bir depoda kaydetme uygulamasıdır. Düzinelerce öğrenme oranı, artırma ayarı ve model boyutuyla yapılan bir projede disk üzerindeki çalıştırmalar birbirine benzer; takip, her sonucun ardındaki yapılandırmayı kaydederek en iyi çalıştırmanın karşılaştırılmasını, yeniden üretilmesini ve aylar sonra kaynağının izlenmesini sağlar. TensorFlow ile 2015'te yayımlanan TensorBoard, canlı eğitim eğrilerini standart hâle getirdi; Databricks ise 2018'de, ilk üç bileşeninden biri deney takibi olan MLflow'u açık kaynaklı hâle getirdi. Weights & Biases, Comet, ClearML ve DVC de yaygın olarak kullanılan diğer takip araçlarıdır.
Bir Takip Aracı Neleri Kaydeder?#
Her çalıştırmaya benzersiz bir kimlik atanır ve çalıştırma, birbiriyle ilişkili çalıştırmaları bir araya getiren adlandırılmış bir grup olan deneye bağlanır. Tipik bir çalıştırma kaydı şunları içerir:
- Hiperparametreler: Öğrenme oranı, grup boyutu, eniyileyici, model mimarisi, rastgele sayı tohumu ve eğitimi şekillendiren diğer tüm ayarlar.
- Metrikler: Adım veya epoch başına kaydedilen eğitim ve doğrulama kayıplarıyla puanları; ayrıca GPU belleği ve kullanımı gibi sistem metrikleri.
- Yapıtlar: Denetim noktaları, karışıklık matrisleri, örnek tahminler ve yapılandırma dosyaları.
- Soy bilgisi: Çalıştırmayı üreten Git commit'i, veri kümesi sürümü, paket sürümleri, donanım ve yazar.
Günlük kaydı, her değer için istemci çağrısı yapılarak veya ek kod gerektirmeden bir çerçevenin parametrelerini ve metriklerini yakalayan otomatik günlük kaydı entegrasyonlarıyla gerçekleştirilir. Paylaşılan bir takip sunucusu, ekipteki tüm dizüstü bilgisayarlardan, bulut makinelerinden ve CI işlerinden gelen çalıştırmaları toplar. Gösterge paneli, seçilen çalıştırmaların kayıp eğrilerini üst üste görüntüler ve bunları herhangi bir parametreye ya da metriğe göre filtreler; böylece aşırı öğrenme gibi sorunları bir bakışta görebilirsin.
Ultralytics YOLO eğitimi, her çalıştırmanın bağımsız değişkenlerini args.yaml dosyasına, epoch başına kayıp ve metrikleri ise results.csv dosyasına yazar. Yerleşik entegrasyonlar, paketleri yüklendiği anda aynı değerleri MLflow, Comet, ClearML veya DVC platformlarına gönderir. TensorBoard ve Weights & Biases entegrasyonlarını yolo settings ile etkinleştirebilirsin. project ve name eğitim bağımsız değişkenleri, MLflow'da deney ve çalıştırma adlarına dönüşür; böylece YOLO26 taraması takip aracına düzenlenmiş olarak ulaşır.
Çalıştırmaları Karşılaştırma ve Yeniden Üretme#
Gösterge panoları çalıştırmalar boyunca bir metriği bir parametreye göre grafiğe döker veya her çalıştırmanın ayarlarını puanına bağlayan paralel koordinat grafikleri çizerek tarama sırasında hangi ayarların önemli olduğunu gösterir. Ultralytics Platform içinde bir proje, modellerini üst üste bindirilmiş metrik ve kayıp eğrileriyle ve yan yana bir tabloyla karşılaştırır; Çalıştırmaları Karşılaştır ve Kazananı Seç dersi ise bu karşılaştırmayı betikli bir yayına alma kapısına dönüştürür. Bir çalıştırmayı tekrarlamak için hiperparametrelerinden fazlası gerekir: kayıt, kod gönderimini, tam veri anlık görüntüsünü, paket sürümlerini ve rastgele tohumu da içermelidir; çünkü GPU çekirdekleri ve veri yükleme sırası, diğer yönlerden özdeş çalıştırmalarda bile sonuçları biraz değiştirebilir.
Bu MLflow betiği, scikit-learn'ün el yazısı rakamları veri kümesinde dört farklı derinlikte karar ağacı eğitir; her derinliği parametre, doğrulama doğruluğunu ise metrik olarak kaydeder ve ardından deneyi bir tablo gibi sorgular:
import mlflow
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
# Store runs in a local SQLite file and group them under one experiment
mlflow.set_tracking_uri("sqlite:///mlflow.db")
mlflow.set_experiment("digits-tree-depth")
X_train, X_val, y_train, y_val = train_test_split(*load_digits(return_X_y=True), random_state=0)
# One tracked run per setting: the parameter goes in, the metric comes out
for depth in [2, 4, 8, 16]:
with mlflow.start_run(run_name=f"depth-{depth}"):
model = DecisionTreeClassifier(max_depth=depth, random_state=0).fit(X_train, y_train)
mlflow.log_param("max_depth", depth)
mlflow.log_metric("val_accuracy", model.score(X_val, y_val))
# Query the experiment like a table, best run first
runs = mlflow.search_runs(order_by=["metrics.val_accuracy DESC"])
print(runs[["params.max_depth", "metrics.val_accuracy"]])Yeni bir veritabanında tabloda önce doğrulama doğruluğu 0.838 olan 16 derinliği, ardından 0.818 ile 8, 0.533 ile 4 ve 0.318 ile 2 derinliği listelenir. Aynı klasörde mlflow ui komutunu --backend-store-uri sqlite:///mlflow.db ile çalıştırmak, tarayıcıda aynı çalıştırmaları açar.
Deney Takibi ve İlgili Uygulamalar#
Deney takibi, makine öğrenimi operasyonlarının (MLOps) aşamalarından biridir ve sıklıkla onunla karıştırılan üç uygulamanın yanında yer alır:
- Model kayıt sistemi: Dağıtıma değer görülen az sayıdaki eğitilmiş modeli saklar; her model sürümünü, onu üreten takip edilmiş çalıştırmaya bağlar.
- Model izleme: Takip geliştirme sırasında görevini tamamladıktan sonra, dağıtılmış bir modelin üretim ortamındaki girdilerini, çıktılarını ve doğruluğunu izler.
- Hiperparametre ayarlama: Optuna ve Ray Tune gibi arama araçları çok sayıda çalıştırmayı otomatik olarak başlatır; takip aracı da bunların her birini kaydeder ve sıralar.










