Feature Store
Özellik deposu, ML özelliklerini tanımlayıp saklar ve sunar; böylece eğitim ve canlı tahminlerde aynı değerler kullanılır. Çevrimdışı ve çevrimiçi depolar ele alınır.
Özellik deposu, makine öğrenmesi modellerinin giriş özelliklerini tanımlayan, hesaplayan, saklayan ve sunan bir veri sistemidir; böylece model eğitim sırasında ve canlı tahmin yaparken aynı özellik değerlerini görür. Özellik, bir kartın son bir saatteki işlem sayısı, bir ürünün ortalama puanı veya bir görüntünün gömmesi gibi model girdilerinden biridir. Depo, her özelliğin tanımını, eğitim kümeleri oluşturmak için çevrimdışı depoda tutulan tüm geçmişiyle; tahmin sırasında hızlı arama yapmak içinse çevrimiçi depodaki en güncel değeriyle birlikte saklar. Uber, 2017'de Michelangelo makine öğrenmesi platformu hakkındaki yazısında ortak bir özellik deposunu tanımladı. Gojek'in Google Cloud ile başlattığı açık kaynaklı Feast'in ardından Amazon SageMaker, Google Vertex AI, Azure Machine Learning ve Databricks'te yönetilen özellik depoları da sunuldu.
Özellik Deposu Nasıl Çalışır#
Özellikler ham olaylar ve tablolar olarak başlar; iş hatları bunları özellik mühendisliği yoluyla, örneğin kayan bir saatlik pencerede kart işlemlerini sayarak ya da bir sinir ağıyla özellik çıkarımı yaparak model girdilerine dönüştürür. Özellik deposu bu çalışmayı birkaç bileşen hâlinde düzenler:
- Özellik kaydı: Her özelliğin adı, varlık anahtarı (tanımladığı müşteri, kart, ürün veya kamera), veri türü, dönüştürme kodu, sahibi ve sürümü aranabilir biçimde saklanır; böylece ekipler özellikleri yeniden oluşturmak yerine yeniden kullanır.
- Çevrimdışı depo: Her geçmiş değeri, olay zaman damgasıyla birlikte bir veri ambarında veya veri gölünde saklanır; eğitim kümeleri oluşturmak ve toplu puanlama yapmak için kullanılır.
- Çevrimiçi depo: Her varlık için en son değer, Redis veya DynamoDB gibi bir anahtar-değer veritabanında tutulur ve çıkarım sırasında birkaç milisaniyede okunur.
- Gerçekleştirme: Yeni değerleri hesaplayan ve en güncel olanları çevrimdışı depodan çevrimiçi depoya kopyalayan toplu iş veya akış işleri.
Tahmin sırasında dolandırıcılık denetimi gibi bir hizmet kart kimliğini gönderir, çevrimiçi depodan kartın güncel özelliklerini alır ve bunları modele iletir; böylece ödeme sırasında gerçek zamanlı çıkarım için çıkarım gecikmesi yeterince düşük tutulur.
Zaman Noktasına Göre Doğruluk#
Her eğitim satırında, etiketlenen olay gerçekleştiği sırada geçerli olan özellik değerleri kullanılmalıdır. Daha sonra hesaplanan bir değer gelecekten bilgi taşır; bu, modeli çevrimdışında doğru gösterip üretimde başarısız olmasına yol açan bir veri sızıntısı türüdür. Özellik depoları bunu, her etiketi aynı varlık için etiketin zaman damgasındaki veya öncesindeki en güncel özellik değeriyle eşleştiren zaman noktasına duyarlı birleştirmeler ile önler. pandas işlevi merge_asof aynı birleştirmeyi gerçekleştirir:
import pandas as pd
# Çevrimdışı depo: her kartın geçmiş bir saatteki işlem sayısı, zaman içinde kaydedilir
features = pd.DataFrame(
{
"card_id": ["A", "B", "A", "A"],
"time": pd.to_datetime(["2026-10-01 09:00", "2026-10-01 10:00", "2026-10-01 12:00", "2026-10-01 15:00"]),
"txn_count_1h": [1, 2, 4, 9],
}
)
# Eğitimde kullanılacak etiketli olaylar: Her işlem dolandırıcılık mıydı?
labels = pd.DataFrame(
{
"card_id": ["B", "A"],
"time": pd.to_datetime(["2026-10-01 11:00", "2026-10-01 13:30"]),
"is_fraud": [0, 1],
}
)
# Zaman noktasına duyarlı birleştirme: Her etiket, kartının olay zamanındaki veya öncesindeki en güncel özellik değerini alır
training_rows = pd.merge_asof(labels, features, on="time", by="card_id")
print(training_rows)Kart A'nın 13:30'daki dolandırıcılık etiketi, 12:00'de kaydedilen 4 sayısını alır; işlemden sonra, 15:00'te kaydedilen 9 sayısı eğitim kümesine girmez. Kart B'nin 11:00'deki etiketi, varlık anahtarına göre satırları eşleştiren by argümanı sayesinde kendi 2 değerini alır.
Eğitim ve Sunum Arasındaki Sapma#
Eğitim-sunum sapması, modelin eğitildiği özelliklerle üretimde aldığı özellikler arasındaki farktır. Bir toplu SQL işi eğitim özelliklerini hesaplarken ayrı yazılmış uygulama kodu sunum özelliklerini hesapladığında ortaya çıkar; bu iki hesaplama saat dilimleri, pencere sınırları, birimler veya eksik değerleri doldurma biçimleri bakımından farklılık gösterebilir. Google'ın Makine Öğreniminin Kuralları bu sapmaya bir bölüm ayırır ve sonraki eğitim çalışmalarının tam olarak bu değerleri kullanabilmesi için sunum sırasında kullanılan özelliklerin kaydedilmesini önerir. Özellik deposu, her özelliği her iki kullanım için de tek bir tanımdan bir kez hesaplayarak yinelenen kod yolunu ortadan kaldırır; ayrıca her özelliğin güncelliğini, eksik değerlerini ve veri kaymasını kaydeder. Böylece model izleme, doğruluktaki düşüşü bozuk bir girdiye kadar izleyebilir.
Özellik Deposu ve İlgili Sistemler#
- Veri gölü: Ham ve işlenmiş dosyaları her biçimde saklar. Çevrimdışı depoların çoğu bir veri gölünün içinde yer alır; özellik deposu bunun üzerine varlık anahtarları, zaman damgaları, zaman noktasına duyarlı erişim ve çevrimiçi sunum ekler.
- Vektör veritabanı: Sorgu vektörüne en çok benzeyen kayıtlı gömmeleri bulur. Özellik deposu değerleri varlık kimliğine göre arar ve sayılar, ortalamalar ve kategorilerin yanında bir özellik olarak gömmeler de tutabilir.
- Model kayıt deposu: Eğitilmiş modelleri ve model meta verilerini sürümlendirirken, özellik deposu bu modellerin tükettiği girdileri sürümlendirir.
- Model sunumu: Modeli bir API arkasında çalıştırır ve her istek için özellikleri almak üzere çevrimiçi depoyu çağırır.
Bilgisayarlı Görüden Elde Edilen Özellikler#
Video analitiği, kamera akışlarını tahmin, anomali tespiti ve öngörücü modelleme için özelliklere dönüştürür: bir mağaza girişindeki saatlik ziyaretçi sayısı, kasadaki kuyruk uzunluğu veya üretim hattı başına kusur oranı gibi değerlerin her biri kamera ya da hat kimliği ve zaman damgasıyla anahtarlanır. Perakendede kişi sayımı, personel planlama ve talep modellerini besler; imalatta ise vardiya başına kusur sayıları bakım modellerini besler. Ultralytics YOLO nesne sayımı bu tür değerleri doğrudan üretir: algılanan her nesneyi kareler boyunca izler ve nesneler bir çizgiyi ya da bölgeyi geçtikçe devam eden in_count ve out_count toplamlarını ve sınıf başına sayıları döndürür; bu değerler, kamera başına zaman damgalı değerler olarak özellik deposuna yazılmaya hazırdır.










