Model Registry
Model kayıt sistemi, eğitilmiş modellerin ve meta verilerinin sürümlenmiş kataloğudur; hangi sürümün onaylandığını ve hangisinin üretimde hizmet verdiğini kaydeder.
Model kayıt sistemi, eğitilmiş makine öğrenimi modellerinin sürümlenmiş kataloğudur. Her girişte, model ağırlıkları dosyası gibi bir model yapıtı ve ona güvenmek için gereken meta veriler bulunur: modeli üreten eğitim çalıştırması, veri sürümü, ortalama hassasiyet (mAP) gibi değerlendirme ölçütleri, giriş ve çıkış şeması, sahibi ve onay durumu. Dağıtım işlem hatları ve uygulamalar, ağırlık dosyalarını elden ele dolaştırmak yerine kayıt sisteminden adlandırılmış bir sürüm veya o anda üretim etiketi taşıyan sürümü ister; böylece her sürüm ve geri alma işlemi tam olarak kaydedilmiş bir modele karşılık gelir. Makine öğrenimi operasyonlarında (MLOps) kayıt sistemi, deney takibi ile model dağıtımı arasında yer alır. Yaygın kayıt sistemleri arasında MLflow Model Registry, Amazon SageMaker Model Registry, Vertex AI Model Registry ve Weights & Biases Registry bulunur.
Model Kayıt Sistemi Nasıl Çalışır#
Kayıtlı model, defect-detector gibi bir addır ve bir sürüm dizisini barındırır. Her sürüm kaydedildikten sonra değiştirilemez; bu nedenle yeni ağırlıklar her zaman yeni bir sürüm olur ve 7. sürüm her zaman aynı baytları ifade eder. Bir sürüm genellikle şunları kaydeder:
- Köken bilgisi: Modeli üreten çalıştırma kimliği, kod commit'i, veri kümesi sürümü ve üst model.
- Değerlendirme sonuçları: Doğrulama ölçütleri ile her hedef cihazda ölçülen gecikme ve bellek kullanımı.
- İmza: Çağıranın yanlış biçimde veri göndermesi durumunda hatanın hemen alınması için beklenen girdi ve çıktı şeması.
- Model kartı: Amaçlanan kullanımın, eğitim verilerinin ve bilinen sınırlamaların belgeleri.
- Durum: Sürümün hangi aşamada olduğunu belirten etiketler ve diğer adlar.
Ultralytics Platform, barındırdığı her YOLO eğitim çalıştırması için bu tür bir kayıt tutar: model sayfasında üst model, sabitlenmiş veri kümesi sürümü, Git commit'i, ultralytics sürümü, hiperparametreler, nihai ölçütler ve yeniden üretilebilir bir yolo train komutu listelenir; ayrıca Özel Üst Veri alanı, sürüm takibi veya yönetişim için JSON nesnesi kabul eder.
Eski kayıt sistemleri her sürümü Aşamalama, Üretim ve Arşivlendi gibi sabit aşamalardan geçirirdi. MLflow, 2.9.0 sürümünde aşamaları kullanımdan kaldırarak bunların yerine, ekibin sürümler arasında taşıdığı @champion gibi değiştirilebilir, adlandırılmış işaretçiler olan diğer adları getirdi. Amazon SageMaker her sürüm için PendingManualApproval, Approved veya Rejected onay durumlarından birini izler. Bir modeli terfi ettirmek, diğer adını taşımak; geri almaksa diğer adı geriye taşımak demektir:
Kayıt sistemleri, kimin neyi değiştirebileceğini de denetler. Veri bilimcileri sürüm kaydedebilir, belirlenmiş inceleyiciler üretim diğer adını değiştirebilir ve her değişiklik denetim günlüğüne eklenir. Ekipler bu olayları çoğu zaman otomasyona bağlar; böylece bir sürümün onaylanması dağıtım işlem hattını başlatır, model izleme uyarısının veri kayması bildirmesi ise sonraki adayı kaydeden yeniden eğitimi başlatır.
MLflow'un kayıt sistemi bu yaklaşımı birkaç satırda gösterir. Bu betik küçük bir scikit-learn sınıflandırıcısı eğitir, kaydeder, champion diğer adını yeni sürüme yönlendirir ve model sunma kodunun mevcut üretim modelini bulması gibi modeli bu diğer ad üzerinden yükler:
import mlflow
from mlflow import MlflowClient
from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression
# Keep runs and registered model versions in a local SQLite file
mlflow.set_tracking_uri("sqlite:///mlflow.db")
X, y = load_iris(return_X_y=True)
# Log a trained model inside a run, then register it as a new version
with mlflow.start_run():
model = LogisticRegression(max_iter=200).fit(X, y)
info = mlflow.sklearn.log_model(model, name="model")
version = mlflow.register_model(info.model_uri, "iris-classifier")
# Point the "champion" alias at this version; applications load the alias
MlflowClient().set_registered_model_alias("iris-classifier", "champion", version.version)
champion = mlflow.pyfunc.load_model("models:/iris-classifier@champion")
print(f"version {version.version}:", champion.predict(X[:3]))Yeni bir veritabanında betik, kayıtlı sürüm olan version 1: [0 0 0] değerini ve ilk üç çiçek için tahmin edilen sınıfları yazdırır. Betiği yeniden çalıştırmak 2. sürümü kaydeder; aynı models:/iris-classifier@champion URI'si yükleme kodunda değişiklik olmadan diğer adı izleyerek bu sürüme ulaşır.
Model Kayıt Sistemi ve İlişkili Araçlar#
- Deney takibi: Hiç kullanılmayanlar da dâhil olmak üzere her eğitim çalıştırmasını kaydeder. Kayıt sistemi, dağıtılmaya değer birkaç adayı tutar ve her sürümü onu oluşturan çalıştırmaya bağlar.
- Nesne depolama: Amazon S3 gibi depolama alanları dosyaları barındırır. Kayıt sistemi sürümler, üst veriler ve erişim denetimi ekler; çoğu zaman dosyanın kendisi yerine depolama alanındaki dosyaya işaretçi tutar.
- Özellik deposu: Modellerin tükettiği girdi özelliklerini sürümler ve sunar; modellerin kendisi kayıt sisteminde tutulur.
- Konteyner kayıt sistemi: Modelleri çalıştıran Docker görüntülerini saklar; bu nedenle dağıtımda genellikle bir görüntü etiketi ve bir model sürümü belirtilir.
- Hugging Face Hub: Açık ve özel modelleri, commit geçmişi ve her deponun ana sayfasında bir model kartı bulunan Git depolarında barındırır; bu nedenle açık ağırlıklı modeller için kayıt sistemi işlevi görür.










