Data Versioning Nedir? Makine Öğrenmesinde Veri Versiyonlama (Veri Versiyonlama)

Data versioning, makine öğrenmesi projelerinde veri kümelerinin, modellerin ve deneylerin değişiklik geçmişini Git'e benzer şekilde izleyen bir sürüm kontrol yöntemidir.

Data versioning (veri versiyonlama), makine öğrenmesi ve veri bilimi projelerinde kullanılan veri kümelerini, modelleri ve deneyleri Git'e benzer şekilde izleyen bir sürüm kontrol yöntemidir. Geleneksel yazılım geliştirmede kod değişiklikleri Git ile takip edilirken makine öğrenmesi projelerinde veri kümelerinin de aynı titizlikle yönetilmesi kritik önem taşır. Bir model eğitiminde hangi veri setinin kullanıldığını bilmeden deneyler tekrarlanamaz, performans regresyonlarının kaynağı tespit edilemez ve model denetim (audit) süreçleri güvenilir biçimde yürütülemez. 'Aynı kod, aynı veri sürümü, aynı sonuç' prensibi olarak da tanımlanan tam yeniden üretilebilirlik (full reproducibility), MLOps olgunluk modelinin temel gereksinimlerinden biridir. Bu alandaki en yaygın araç DVC (Data Version Control) olup açık kaynaklı bir proje olarak Git ile entegre çalışır: büyük veri dosyalarını Amazon S3, Google Cloud Storage veya Azure Blob gibi uzak depolara yükler, Git reposunda ise yalnızca küçük birer meta-dosya (pointer) tutar. Kasım 2025'te lakeFS tarafından satın alınan DVC, veri göllerinde Git tarzı dallanma, commit ve merge işlemlerine olanak tanıyan lakeFS mimarisiyle birleşmeye başlamıştır. Versiyon yönetimi yalnızca ham veri ile sınırlı kalmaz; dönüştürülmüş veri kümeleri, model ağırlıkları ve deney konfigürasyonları (hiperparametreler, rastgele tohum değerleri) de kapsama dahil edilir. Delta Lake ve Apache Iceberg ise veri gölü ve veri ambarı ortamlarında tablo düzeyinde ACID uyumlu versiyonlama, anlık görüntü (snapshot) alımı ve zaman yolculuğu sorguları (time travel query) sunarak data versioning'i kurumsal ölçekte uygulanabilir kılar. MLOps boru hatlarında data versioning şu görevleri üstlenir: her model eğitim koşusu için kullanılan veri sürümünü otomatik olarak kaydeder, model kayıt defteri (model registry) ile veri sürümü arasında birebir ilişki kurar, regresyon testlerinde referans veri setlerini sabitler ve AB testi koşullarını izole eder. Bu nedenle data versioning, üretime alınan yapay zeka sistemlerinde hem güvenilirlik hem de uyumluluk (compliance) gereksinimlerini karşılamak için vazgeçilmez bir bileşen haline gelmiştir.

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.