AI Model Versiyonlama — Pratik Rehber ve Mühendis Yaklaşımı
1. Giriş
Model versiyonlama (model versioning), yapay zekâ ve makine öğrenimi projelerinin sürdürülebilirliğini ve güvenilirliğini sağlayan temel uygulamalardan biridir. Eğitim verisi, model mimarisi, hiperparametreler, eğitim prosedürleri ve ön işleme adımları zamanla değişir. Bu değişiklikler izlenmediğinde üretimde beklenmeyen regresyonlar, uyumsuzluklar veya reproducibility sorunları ortaya çıkar. Modern MLOps pratiklerinde model versiyonlama; denetim, geri alma (rollback), A/B/canary dağıtımları ve deneylerin tekrarlanabilirliği için zorunludur.
Bu konu neden bugün önemli?
- Modeller üretime alındıkça hatalı kararların maliyeti artar; hangi versiyonun hangi veriye göre eğitildiğini bilmek kritik.
- Regülasyon ve compliance gereksinimleri (finance, healthcare) model değişikliklerinin izlenmesini zorunlu kılıyor.
- Çoklu model ve ensemble stratejilerinde routing, A/B testleri ve geri alma ihtiyaçları versiyonlama olmadan yönetilemez.
Kimler için önemli?
MLOps mühendisleri, veri bilimciler, ML mühendisleri, SRE ve platform ekipleri için model versiyonlama olmazsa olmazdır. Ayrıca veri yönetişimi, güvenlik ve denetim ekipleri de versiyonlama metadata'sına dayalı raporlar ve incelemeler yürütür.
Hangi problemleri çözüyor?
Model versiyonlama şu problemleri çözer: değişikliklerin izlenmesi, regreseyon tespiti, reproducibility, güvenli rollout/rollback, denetim için kanıt oluşturma, model kimlik doğrulama ve експерименти yönetimi.
2. Kavramsal Temeller
Temel kavramlar
- Model artifact: Eğitim sonucu üretilen dosyalar (ağırlıklar, tokenizer, config, preprocessor pipeline).
- Model registry: Model versiyonlarının kayıtlı olduğu merkez (MLflow Model Registry, AWS Sagemaker Model Registry, Vertex AI).
- Experiment tracking: Eğitim deneylerinin, hiperparametrelerin, metriklerin ve veri snapshot'larının kaydı.
- Reproducibility: Aynı sonucu tekrar elde edebilme yeteneği; ortam, seed, veri versiyonu gibi faktörlere bağlıdır.
- Deployment manifest: Modelin üretime alınmasını tanımlayan konfigürasyon (resource limits, runtime, container image, infra tags).
- Canary / blue-green / shadow deployment: Yeni model versiyonlarının riskleri azaltarak dağıtım teknikleri.
Versiyonlama objeleri
Versiyonlama sadece model ağırlıklarını kapsamaz; aşağıdakiler de versiyonlanmalıdır:
- Veri snapshot'ları (train/validation/test splits)
- Feature engineering kodu ve pipeline'ları
- Preprocessing/normalization konfigürasyonları
- Model hyperparametreleri ve eğitim script'leri
- Evaluation dataset'leri ve metric hesaplama kodu
3. Nasıl Çalışır?
Sistem mimarisi — yüksek seviye
- Experiment & Training: Model eğitimi, experiment tracking aracına (ör. MLflow, Weights & Biases) kaydedilir.
- Artifact Storage: Eğitilmiş model artifact'leri, konteyner imajları ve veriye ait snapshot'lar merkezi storage'a (S3, Blob) yüklenir.
- Model Registry: Model metadata (version, lineage, metrics, tag) registry'e kayıt edilir ve onay/sertifikasyon süreçleri başlatılır.
- Validation: On-chain validation testleri, offline test setleri ve adversarial testler çalıştırılır.
- Deployment: Manifest ile target ortam seçilip canary/blue-green/rollout yapılır.
- Monitoring & Observability: Yeni versiyon için telemetri, drift ve performans metrikleri izlenir; hatada otomatik rollback tetiklenir.
Metadata ve lineage
Her model versiyonuna aşağıdaki metadata eklenmelidir:
- model_id, version, created_by, created_at
- train_data_version, data_checksum, feature_set_id
- training_code_commit (git SHA), environment (docker image, OS, python version)
- hyperparameters, evaluation_metrics (accuracy, F1, AUC), validation_set_id
- approved_by / approval_status, deployment_history
Experiment tracking
Deney takibi, model seçimi ve versiyonlama kararlarının temelini oluşturur. İyi uygulamalar:
- Her eğitim run'ı unique ID ile kaydedilsin.
- Hiperparametreler, seed, eğitim veri versiyonu, augmentasyon parametreleri eksiksiz tutulmalı.
- Metrikler hem eğitim hem validasyon hem de test setleri için otomatik olarak kaydedilsin.
- Önemli denemelerin açıklamaları (notes) ve karşılaştırma tabloları olmalı.
4. Gerçek Dünya Kullanımları
Netflix — öneri sistemleri versiyon kontrolü
Öneri modelleri sık sık güncellenir; yeni model sürümlerinin A/B testi, offline metric karşılaştırması ve trafik bazlı canary izleme ile kontrolü gerekir. Model registry ve veri lineage, hangi kullanıcı segmentine hangi modelin hizmet verdiğini izlemeyi sağlar.
Uber — fiyatlama ve dispatch
Gerçek zamanlı modellerde küçük bir hata büyük maliyetlere yol açar. Versiyonlama, yeni parametrelerin canary ile test edilmesi, rollback senaryolarının hazırlanması ve immutable audit log'lar gerektirir.
Amazon — RAG ve ranking modeller
Retrieval ve reranker modelleri için hem embedding versiyonları hem de reranker ağırlıkları versiyonlanmalıdır. Uyuşmazlık durumlarında eski embedding setine dönme becerisi önemlidir.
5. Avantajlar ve Sınırlamalar
Avantajlar
- Reproducibility: Hangi modelin nasıl üretildiğinin tam izini sağlar.
- Risk azaltma: Canary/rollback stratejileri ile regresyon riskleri düşer.
- Uyumluluk: Denetim ve regülasyon için gerekli kanıt setini sunar.
Sınırlamalar
- Operasyonel yük: Registry, storage ve pipeline yönetimi ek maliyet getirir.
- Karmaşıklık: Çok sayıda model, feature set ve veri versiyonu yönetimi zorlaşır.
- Veri versiyonlaması zor olabilir: Özellikle büyük ham veri setlerinde delta yönetimi ve storage maliyeti problem yaratır.
6. Alternatifler ve Karşılaştırma
Aşağıdaki tablo farklı model versiyonlama stratejilerini özetler.
| Strateji | Avantaj | Dezavantaj |
|---|---|---|
| Git + Large File Storage (DVC/Git LFS) | Veri ve kod aynı yerde, reproducibility destekli | Çok büyük veri için yönetim ve depolama zor |
| Model Registry (MLflow, Sagemaker) | Versiyon metadata, approval workflow, kolay deploy | Vendor bağımlılığı ve ek maliyet |
| Artifact storage + custom metadata | Esneklik, mevcut infra'ya uyum | Standardizasyon eksikliği, daha fazla engineering iş |
| Containerize models (immutable images) | Environment reproducibility, kolay rollout | Image sayısı artarsa storage ve yönetim maliyeti yükselir |
7. En İyi Pratikler
Production kullanımı
- Model registry kullanın: Her model için kayıt, açıklama, test sonuçları, approval durumu tutun.
- Artifactler immutable olsun: Tekrar yazılmaz, yeni versiyon için yeni kayıt oluşturulur.
- Deployment manifest'lerini versiyonlayın: resource limits, runtime, env vars, security konteyner ayarları.
- Canary / shadow testleri: Yeni sürümleri küçük trafik veya paralel shadow trafik ile test edin.
- Rollback planları hazır olsun: Otomatik threshold bazlı rollback mekanizmaları kurun.
Performans optimizasyonu
- Model boyutu ve latency trade-off'unu dokumente edin; quantization/pruning seçeneklerini değerlendirin.
- Cost-aware routing: kritik olmayan istekler için küçük modeller, kritik doğruluk için büyük modeller kullanın.
- Served model cache: sık kullanılan model çıktıları cache'lenerek inference maliyeti düşürülebilir.
Güvenlik
- Artifact erişimini RBAC ile kontrol edin; imaj ve model dosyalarını imzalama (checksum/signature) uygulayın.
- Audit log: Hangi kullanıcı veya işlem model versiyonunu deploy etti kayıt altında olsun.
Ölçeklenebilirlik
- Model registry ve artifact storage yatay ölçeklenebilir altyapıda olsun.
- Storage lifecycle policy: eski versiyonlar için arşivleme stratejisi uygulayın.
8. Sık Yapılan Hatalar
- Yalnızca ağırlıkları saklamak: Preprocessor/feature kodu ve veri snapshot'ı olmadan reproducibility bozulur.
- Versiyonlama eksik metadata ile yapılır: Hataların kök sebebi bulunamaz.
- Deployment manifest'leri versiyonlanmaz: Ortam farklılıkları production sorunlarına yol açar.
- Rollback prosedürleri belirsiz: Regresyon meydana geldiğinde hızlı dönüş sağlanamaz.
9. Gelecek Trendler
- Model lineage ve provenance standardları: Metadata için ortak standartlar (MLMD, OpenLineage) yaygınlaşacak.
- Automated CI/CD for models: Model-regression testleri ve metric-gate'li otomatik pipeline'lar artacak.
- Feature store + model version tight-coupling: Feature versiyonları ve model versiyonları sıkı şekilde ilişkilendirilecek.
- Model-as-artifact marketleri: Paylaşımlı, sertifikalı ve imzalı model registry pazarları ortaya çıkacak.
10. Sonuç
Model versiyonlama, modern MLOps'ta sadece iyi bir uygulama değil, üretim güvenliği ve sürdürülebilirlik için zorunluluktur. Versiyonlama yalnızca ağırlıkları değil; veri snapshot'larını, eğitim kodunu, preprocessing pipeline'larını ve deployment manifest'lerini de kapsamalıdır. Mühendis bakış açısıyla öneri: küçükten başlayın, model registry ile disiplin sağlayın, metadata ve lineage'i zorunlu kılın, canary ve otomatik rollback mekanizmaları kurun; ve her zaman reproducibility ve audit için kanıt tutun.
Ek Bölümler
FAQ (Sık Sorulan Sorular)
-
Model versiyonlama nedir ve neden gereklidir?
Model versiyonlama, bir modelin ağırlıkları, konfigürasyonu, eğitim verisi ve bağımlılıklarının kaydedilmesi ve izlenmesidir. Gerekli çünkü reproducibility, rollback, denetim ve risk yönetimi sağlar.
-
Hangi araçlar kullanmalıyım?
MLflow, Weights & Biases, DVC, S3/Blob (artifact storage), Kubernetes için KServe/Seldon ve bulut sağlayıcılarının model registry hizmetleri yaygın tercihlerdir.
-
Veri versiyonlaması nasıl olmalı?
Büyük veri için delta/partition tabanlı snapshot, küçük veri için DVC/Git LFS çözümleri kullanılabilir. Önemli olan feature set ve train/validation id'lerini model metadata'sında saklamaktır.
-
Canary dağıtımı nasıl çalışır?
Yeni model küçük bir trafik yüzdesine verilir; metrikler izlenir ve belirlenen eşiklerin altındaysa kademeli yaygınlaştırma yapılır, aksi halde rollback edilir.
-
Rollback planı nasıl hazırlanmalı?
Rollback için eski versiyonun hızlıca deploy edilebileceği, veri uyumluluğunun sağlandığı ve işlemin otomatik veya manuel tetiklenebilir olduğu planlar hazırlanmalıdır.
-
Model registry neden önemli?
Registry, versiyon metadata'sını, approval süreçlerini ve deploy geçmişini merkezi olarak tutar; ekipler arası koordinasyonu kolaylaştırır.
-
Environment reproducibility nasıl sağlanır?
Containerization (Docker), conda/pip freeze, sistem bağımlılıklarının, CUDA sürümlerinin ve random seed'in kayıt altına alınması ile sağlanır.
-
Model versiyonlama maliyeti yüksek mi?
Bazı ek depolama ve işletme maliyetleri olur; ancak regreseyon ve uyum maliyetlerini azaltarak toplam maliyeti düşürebilir.
Anahtar Kavramlar
- Model artifact: Eğitim sonucu oluşan dosyalar ve bağımlılıklar.
- Model registry: Versiyonların merkezi kaydı ve yönetimi.
- Lineage: Modelin hangi veri ve kod yoluyla üretildiğinin kaydı.
- Reproducibility: Aynı sonucu tekrar elde etme yeteneği.
- Canary deployment: Kademeli rollout stratejisi.
Öğrenme Yol Haritası
- Temel: Git, Docker, temel ML kavramları, veri yönetimi.
- MLOps araçları: MLflow, Weights & Biases, DVC ve model registry'leri öğrenin.
- Deployment: Kubernetes, KServe/Seldon, containerization ve CI/CD for ML.
- Observability: Prometheus, Grafana, OpenTelemetry ve model monitoring pratikleri.
- Advanced: Lineage standartları (OpenLineage), reproducibility best practices, automated rollback ve governance.