Data Versioning Neden Önemlidir?
Makine öğrenmesi projelerinde 'Hangi model, hangi veriyle eğitildi?' sorusu yanıtsız kaldığında ciddi sorunlar ortaya çıkar. Veri kümesi sürekli güncellenir: yeni örnekler eklenir, etiketler düzeltilir veya önişleme (preprocessing) adımları değiştirilir. Versiyonsuz bir ortamda dün eğitilen modeli bugün yeniden üretmek neredeyse imkânsız hale gelir. Data versioning bu sorunu çözer. Git'in koda yaptığını veriye de yaparak her değişikliği bir commit olarak kaydeder, geçmişe geri dönmeyi mümkün kılar ve ekiplerin aynı veri sürümü üzerinde paralel çalışmasını sağlar. Özellikle regülasyon gerektiren sektörlerde (finans, sağlık, otomotiv) model kararlarının hangi veriyle desteklendiğini belgelemek yasal zorunluluk haline gelmektedir.
Temel Kavramlar
Commit
Veri kümesinin belirli bir andaki anlık görüntüsünü kaydeder; hangi dosyaların değiştiğini ve kim tarafından değiştirildiğini belgeler.
Branch (Dal)
Mevcut veriyi bozmadan deney açmak için kullanılır; farklı önişleme stratejileri ayrı dallarda denenebilir.
Tag (Etiket)
'v2.0-eğitim-seti' gibi belirli bir veri sürümünü kalıcı olarak işaretler; model yayınları için referans noktası oluşturur.
Lineage (Soy)
Bir modelin eğitiminde kullanılan veri kümesi sürümü ve tüm dönüşüm adımlarını uçtan uca belgeler.
Reproducibility
Aynı kod + aynı veri sürümü = aynı sonuç garantisi; MLOps olgunluk modelinin en temel gereksinimidir.
Başlıca Data Versioning Araçları
- check_circle DVC (Data Version Control): Git ile entegre, açık kaynaklı ve platform bağımsız araç. Büyük dosyaları uzak depoya yükler, Git'te yalnızca küçük meta-dosyalar tutar. Kasım 2025'te lakeFS tarafından satın alındı.
- check_circle lakeFS: Veri göllerine Git tarzı dallanma, commit, merge ve revert işlemleri kazandırır. S3, GCS ve Azure Blob üzerinde çalışır; DVC'yi bünyesine katarak MLOps eko-sisteminde güçlendi.
- check_circle Delta Lake: Apache Spark tabanlı, ACID uyumlu açık tablo formatı. Tablo düzeyinde anlık görüntü ve zaman yolculuğu (time travel) sorguları sayesinde geçmiş veriye tarih bazlı erişim sağlar.
- check_circle Apache Iceberg: Petabayt ölçeğinde analitik tablolarda şema evrimi, bölüm dönüşümü ve snapshot yönetimini destekleyen açık tablo formatı. Hive, Spark ve Flink ile entegre çalışır.
- check_circle MLflow Tracking: Deney parametrelerini, metrikleri ve model artifaktlarını versiyonlar. Data versioning'i doğrudan sağlamaz ancak DVC ile birlikte kullanıldığında tam MLOps izlenebilirliği sunar.
Sıkça Sorulan Sorular
- check_circle DVC ile Git arasındaki fark nedir?: Git büyük ikili dosyaları (CSV, Parquet, görüntü veri setleri) verimli biçimde depolayamaz; repository şişer ve işlemler yavaşlar. DVC büyük dosyaları uzak depolama sistemlerine yükler, Git'e yalnızca küçük bir işaretçi (.dvc) dosyası bırakır. Böylece Git'in sürüm geçmişi hafif kalırken veri de tam olarak versiyonlanmış olur.
- check_circle Data versioning sadece veri için mi geçerlidir?: Hayır. DVC gibi araçlar veri kümelerinin yanı sıra model ağırlıklarını (checkpoint dosyaları), pipeline konfigürasyonlarını ve derleme artifaktlarını da versiyonlar. Bu nedenle 'veri ve model versiyonlama' olarak daha kapsamlı biçimde tanımlanabilir.
- check_circle MLOps'ta data versioning ne zaman başlatılmalıdır?: İlk model eğitim koşusundan itibaren. Başlangıçta ek çaba gibi görünse de ilerleyen aşamalarda modellerin izlenebilirliğini sağlamak, veri kaynaklı regresyonları tespit etmek ve denetim gereksinimlerini karşılamak için veri versiyonlama altyapısını sonradan kurmak çok daha maliyetlidir.
- check_circle Delta Lake ile Apache Iceberg arasında ne seçmeliyim?: Her ikisi de açık tablo formatı olup zaman yolculuğu ve ACID garantisi sunar. Delta Lake Databricks ekosistemiyle, Iceberg ise Snowflake, Trino ve çoklu motor ortamlarıyla daha derin entegrasyon sağlar. Kullanılan veri platformu bu seçimi büyük ölçüde belirler.