Feature store nedir? Training-serving skew problemini nasıl çözer?

Cevap

Feature store, ML özelliklerinin tanımlandığı, hesaplandığı, saklandığı ve hem eğitimde hem inference'ta aynı tanımla sunulduğu merkezi bir veri katmanıdır.

Training-serving skew

Modelin eğitimde gördüğü özellik değerleriyle production'da gördükleri arasındaki farktır. Model offline'da iyi, online'da kötü performans gösterir. Tipik sebepler:

  • Özellik eğitimde Python/SQL ile, serving'de başka bir dilde (Java servis) yeniden yazılmıştır ve mantık ufak farklar içerir.
  • Eğitimde gelecekteki veriler kullanılmıştır (zamansal leakage).
  • Eksik değer yönetimi, birim veya zaman dilimi farkları.
  • Serving'deki özellik verisi gecikmeli güncellenir.

Feature store bileşenleri

BileşenGörev
Feature registryÖzellik tanımları, sahiplik, dokümantasyon, yeniden kullanım
Offline storeGeçmiş değerler (data warehouse / lake). Eğitim seti üretimi
Online storeEn güncel değerler, düşük gecikmeli erişim (Redis, DynamoDB)
MaterializationOffline'dan online'a düzenli veri aktarımı, streaming özellikler

Point-in-time correctness

Eğitim seti oluşturulurken her etiket için, o olayın gerçekleştiği andan önce bilinen özellik değerleri alınmalıdır. Feature store'lar bunu point-in-time join ile otomatik yapar ve leakage'ı önler.

from feast import FeatureStore
store = FeatureStore(repo_path=".")

# Eğitim: her satırın event_timestamp anındaki değerler
train_df = store.get_historical_features(
    entity_df=labels_df,  # customer_id, event_timestamp, label
    features=["customer_stats:txn_count_7d", "customer_stats:avg_amount_30d"],
).to_df()

# Serving: aynı özellikler, en güncel değer
online = store.get_online_features(
    features=["customer_stats:txn_count_7d", "customer_stats:avg_amount_30d"],
    entity_rows=[{"customer_id": 42}],
).to_dict()

Ne zaman gerekir?

Birden çok modelin ortak özellikleri kullandığı, online serving'in olduğu ve birden çok ekibin çalıştığı ortamlarda değerlidir. Tek bir batch modeli olan küçük bir ekip için gereksiz karmaşıklık olabilir. Araçlar: Feast (açık kaynak), Tecton, Databricks ve SageMaker feature store'ları.

  1. ML sistemleri için CI/CD nasıl kurulur? Klasik yazılım CI/CD'sinden farkı nedir?OrtaMLOpsYapay Zeka
  2. GPU'da model inference'ını nasıl optimize edersiniz? Throughput ve latency arasındaki trade-off'u açıklayın.ZorMLOpsYapay Zeka
  3. Yeni bir modeli production'a güvenli şekilde nasıl çıkarırsınız? Shadow deployment, canary ve A/B testi karşılaştırın.ZorMLOpsYapay Zeka
  4. Bir ML modelini tekrarlanabilir (reproducible) hale getirmek ve versiyonlamak için neler yaparsınız?OrtaMLOpsYapay Zeka
  5. Experiment tracking neden önemlidir? MLflow ile neleri takip edersiniz?KolayMLOpsYapay Zeka
  6. Data drift ve concept drift arasındaki fark nedir? Production'da nasıl tespit edersiniz?OrtaMLOpsYapay Zeka

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle