Aracılığıyla paylaş


Özellik deposuna genel bakış ve sözlük

Bu sayfada Databricks Feature Store'un nasıl çalıştığı açıklanır ve önemli terimler tanımlanmaktadır.

Databricks'te özellik mühendisliği nasıl çalışır?

Databricks'te özellik mühendisliği kullanan tipik makine öğrenmesi iş akışı şu yolu izler:

  1. Ham verileri özelliklere dönüştürmek için kod yazın ve istenen özellikleri içeren bir Spark DataFrame oluşturun.

  2. Unity Kataloğu'nda birincil anahtarı olan bir Delta tablosu oluşturun .

  3. Özellik tablosunu kullanarak modeli eğitin ve günlüğe kaydedin. Bunu yaptığınızda model, eğitim için kullanılan özelliklerin belirtimlerini depolar. Model çıkarım için kullanıldığında, uygun özellik tablolarındaki özellikleri otomatik olarak birleştirir.

  4. Modeli Model Kayıt Defteri'ne kaydedin.

    Artık modeli kullanarak yeni verilerle ilgili tahminlerde bulunabilirsiniz. Toplu kullanım örnekleri için model, ihtiyaç duyduğu özellikleri Özellik Deposu'ndan otomatik olarak alır.

  5. Gerçek zamanlı hizmet kullanım örnekleri için, özellikleri çevrimiçi bir özellik mağazasında yayımlayın.

  6. Çıkarım zamanında uç noktaya hizmet veren model, ML modelini puan etmek için çevrimiçi mağazadan önceden hesaplanan özellikleri aramak için istek verilerindeki varlık kimliklerini otomatik olarak kullanır. Uç nokta, sunulan modelden bu modeli eğitmek için kullanılan özelliklere kadar olan kökeni çözümlemek için Unity Kataloğu'nu kullanır ve gerçek zamanlı erişim için çevrimiçi özellik deposuna giden kökeni izler.

Sunulan makine öğrenmesi modelleri için Özellik Deposu akışı.

Özellik deposu sözlüğü

Özellik Mağazası

Özellik deposu, veri bilim adamlarının özellikleri bulmasına ve paylaşmasına olanak tanıyan merkezi bir depodur. Özellik deposu kullanmak, özellik değerlerini hesaplamak için kullanılan kodun model eğitimi sırasında ve modelin çıkarım için kullanıldığında aynı olmasını da sağlar. Databricks'te özellik deposunun nasıl çalıştığı, çalışma alanınızın Unity Kataloğu için etkinleştirilip etkinleştirilmediğine bağlıdır.

  • Unity Kataloğu için etkinleştirilen çalışma alanlarında, Unity Kataloğu'nda özellik tablosu olarak birincil anahtar kısıtlaması içeren herhangi bir Delta tablosunu kullanabilirsiniz.
  • 19 Ağustos 2024, 16:00:00 (UTC) öncesinde oluşturulmuş ve Unity Kataloğu için etkinleştirilmemiş çalışma alanlarının, eski Çalışma Alanı Özellik Deposu'na erişimi vardır.

Makine öğrenmesi, gelecekteki sonuçları tahmin etmek için bir model oluşturmak için mevcut verileri kullanır. Hemen hemen her durumda, ham verilerin bir model oluşturmak için kullanılabilmesi için önce ön işleme ve dönüştürme gerekir. Bu işleme özellik mühendisliği, bu işlemin çıkışlarına ise modelin yapı taşları olan özellikler adı verilir.

Özellikler geliştirmek karmaşıktır ve zaman alır. Bir diğer zorluk da makine öğrenmesi için model eğitimi için özellik hesaplamalarının yapılması ve ardından model tahminlerde bulunmak için kullanıldığında tekrar yapılması gerektiğidir. Bu uygulamalar aynı ekip tarafından veya aynı kod ortamı kullanılarak yapılamaz ve bu da gecikmelere ve hatalara neden olabilir. Ayrıca, bir kuruluştaki farklı takımlar genellikle benzer özellik gereksinimlerine sahip olur ancak diğer ekiplerin yaptığı işlerin farkında olmayabilir. Özellik deposu, bu sorunları gidermeyi amaçlayan bir tasarımdır.

Özellik tabloları

Özellikler, özellik tabloları olarak düzenlenir. Her tablonun bir birincil anahtarı olmalıdır ve Delta tablosu ve ek meta veriler tarafından yedeklenmiştir. Özellik tablosu meta verileri, bir tablonun üretildiği veri kaynaklarını ve tablonun oluşturulmasına veya tabloya yazılmasına katkıda bulunan not defterlerini ve işleri izler.

Databricks Runtime 13.3 LTS ve üzeri ile çalışma alanınız Unity Kataloğu için etkinleştirildiyse Unity Kataloğu'ndaki herhangi bir Delta tablosunu birincil anahtarla özellik tablosu olarak kullanabilirsiniz. Bkz. Unity Kataloğu'nda özellik tablolarıyla çalışma. Yerel Çalışma Alanı Özellik Deposu'nda depolanan özellik tabloları "Çalışma alanı özellik tabloları" olarak adlandırılır. Bkz. Çalışma Alanı Özellik Deposu'nda özellik tablolarıyla çalışma (eski).

Özellik tablosundaki özellikler genellikle ortak bir hesaplama işlevi kullanılarak hesaplanır ve güncelleştirilir.

Gerçek zamanlı model çıkarımı yapmak için bir özellik tablosunu çevrimiçi mağazaya yayınlayabilirsiniz.

FeatureLookup

Birçok farklı model belirli bir özellik tablosundaki özellikleri kullanabilir ve tüm modellerin her özelliğe ihtiyacı olmaz. Özellikleri kullanarak modeli eğitmek için her özellik tablosu için bir FeatureLookup oluşturursunuz. FeatureLookup, tablodan hangi özelliklerin kullanılacağını belirtir ve ayrıca özellik tablosunu create_training_setgeçirilen etiket verilerine birleştirmek için kullanılacak anahtarları tanımlar.

Diyagramda, bir FeatureLookup öğesinin nasıl çalıştığı gösterilmektedir. Bu örnekte, customer_features ve product_featuresolmak üzere iki özellik tablosundaki özellikleri kullanarak modeli eğitmek istiyorsunuz. Her özellik tablosu için, tablonun adını, tablodan seçeceğiniz özellikleri (sütunları) ve bir eğitim veri kümesi oluşturmak için özellikler birleştirildiğinde kullanılacak arama anahtarını belirterek bir FeatureLookup oluşturursunuz.

Ardından, diyagramda da gösterilen create_training_set'yi çağırırsınız. Bu API çağrısı ham eğitim verilerini (label_df), kullanılacak FeatureLookups ve temel gerçeği içeren bir sütun labeliçeren DataFrame'i belirtir. Eğitim verileri, özellik tablolarının birincil anahtarlarının her birine karşılık gelen sütunları içermelidir. Özellik tablolarındaki veriler, bu anahtarlara göre giriş DataFrame'e katılır. Sonuç diyagramda "Eğitim veri kümesi" olarak gösterilir.

FeatureLookup diyagramı

FeatureFunction

Bir özellik, yalnızca çıkarım sırasında kullanılabilen bilgilere bağlı olabilir. Gerçek zamanlı girişleri özellik değerleriyle birleştirerek up-totarih özellik değerlerini hesaplayan bir FeatureFunction belirtebilirsiniz. Diyagramda bir örnek gösterilmiştir. Ayrıntılar için bkz. İsteğe bağlı özellik hesaplaması.

FeatureFunction diyagramı

Eğitim seti

Eğitim kümesi, özelliklerin bir listesinden ve ham eğitim verilerini, etiketleri ve özelliklere erişmek için birincil anahtarları içeren bir DataFrame'den oluşur. Özellik Deposu'ndan ayıklanması gereken özellikleri belirterek eğitim kümesini oluşturur ve model eğitimi sırasında giriş olarak eğitim kümesini sağlarsınız.

Eğitim kümesi oluşturma ve kullanma örneği için bkz. Eğitim veri kümesi oluşturma .

Unity Kataloğu'nda Özellik Mühendisliği'ni kullanarak modeli eğitip günlüğe kaydettiğinizde, modelin kökenini Katalog Gezgini'nde görüntüleyebilirsiniz. Modeli oluşturmak için kullanılan tablolar ve işlevler otomatik olarak izlenir ve görüntülenir. Bkz. Özellik yönetimi ve köken bilgisi.

FeatureSpec

A FeatureSpec , kullanıma sunulması için yeniden kullanılabilir bir özellik ve işlev kümesini tanımlayan bir Unity Kataloğu varlığıdır. FeatureSpecs, özellik tablolarındaki ve FeatureLookups değerlerini model eğitiminde kullanılabilecek veya Özellik Sunma uç noktaları kullanılarak sunulan tek bir mantıksal birimde birleştirirFeatureFunction.

FeatureSpecs, Unity Kataloğu tarafından depolanır ve yönetilir ve bunların kurucu çevrimdışı özellik tablolarına ve işlevlerine yönelik tam köken izlemesi sağlanır. Bu, idare, bulunabilirlik ve farklı modellerde ve uygulamalarda yeniden kullanılabilirlik sağlar.

aşağıdaki yollarla kullanabilirsiniz FeatureSpec :

  • Python API'sini veya REST API'sini kullanarak Özellik Sunma uç noktası oluşturun. Bkz . Özellik Sunma uç noktaları veya Model Sunma kullanıcı arabirimini kullanarak doğrudan dağıtma. Yüksek performanslı uygulamalar için rota iyileştirmeyi etkinleştirin.
  • içinde öğesine başvurarak FeatureSpec model eğitiminde create_training_setkullanın.

her FeatureSpec zaman çevrimdışı özellik tablolarına başvurur, ancak gerçek zamanlı hizmet senaryoları için çevrimiçi bir mağazada yayımlanmaları gerekir.

Zaman serisi özellik tabloları (belirli bir zamandaki veri aramaları)

Modeli eğitmek için kullanılan verilerde genellikle yerleşik zaman bağımlılıkları bulunur. Modeli oluştururken, gözlemlenen hedef değerin zamanına kadar yalnızca özellik değerlerini dikkate almanız gerekir. Hedef değerin zaman etiketinden sonra ölçülen verilere dayalı özellikleri esas alarak eğittiğinizde modelin performansı düşebilir.

Zaman serisi özellik tabloları , eğitim veri kümesindeki her satırın, satırın zaman damgasından itibaren bilinen en son özellik değerlerini temsil etmesini sağlayan bir zaman damgası sütunu içerir. Zaman serisi verileri, olay tabanlı veriler veya zaman toplanmış veriler gibi özellik değerleri zaman içinde her değiştiğinde zaman serisi özellik tablolarını kullanmanız gerekir.

Bir zaman serisi özellik tablosu oluşturduğunuzda, birincil anahtarlarınızda zamanla ilgili sütunları belirlemek için timeseries_columns (Unity Catalog'da Özellik Mühendisliği için) veya timestamp_keys (Çalışma Alanı Özellik Deposu için) bağımsız değişkenini kullanarak zaman serisi sütunları olarak belirtirsiniz. Bu, create_training_set veya score_batch kullanırken belirli bir zamanda aramaları etkinleştirir. Sistem, belirttiğiniz timestamp_lookup_key kullanarak mevcut tarih itibarıyla zaman damgası birleştirmesi gerçekleştirir.

Eğer `timeseries_columns` veya `timestamp_keys` bağımsız değişkenlerini kullanmazsanız ve yalnızca bir zaman serisi sütununu birincil anahtar sütunu olarak belirlerseniz, Özellik Deposu birleşimler sırasında zaman serisi sütununa belirli bir zaman noktası mantığı uygulamaz. Bunun yerine, zaman damgasından önceki tüm satırları eşleştirmek yerine yalnızca tam saat eşleşmesi olan satırlarla eşleşir.

Çevrimdışı mağaza

Çevrimdışı özellik deposu özellik bulma, model eğitimi ve toplu çıkarım için kullanılır. Delta tablolarıolarak gerçekleştirilmiş özellik tabloları içerir.

Çevrimiçi özellik mağazası

Databricks Online Özellik Deposu, özellik verilerini çevrimiçi uygulamalara ve gerçek zamanlı makine öğrenmesi modellerine sunan yüksek performanslı, ölçeklenebilir bir çözümdür.

Databricks Lakebase tarafından desteklenen bu hizmet, çevrimdışı özellik tablolarınızla idareyi, kökeni ve tutarlılığı korurken özellik verilerine yüksek ölçekte düşük gecikme süreli erişim sağlar.

Sunucusuz Lakebase platformunda Çevrimiçi Mağazalar sağlayabilirsiniz. API'ler örnekleri ve okuma çoğaltmalarını yönetmenize ve örnekleri gerektiği gibi ölçeklendirmenize olanak tanır. Unity Kataloğu tablolarını çevrimiçi mağazalarda yayımlamak için kullanışlı API'leri kullanabilirsiniz. Bu tablolar aynı zamanda kaynak tablo soykütüğünü doğrudan izleyen Unity Kataloğu varlıklarıdır. Databricks üçüncü taraf çevrimiçi mağazalarını da destekler.

Yayın Akışı

Databricks Feature Store, toplu yazma işlemlerine ek olarak akış desteği de sunar. Bir akış kaynağından özellik tablosuna özellik değerleri yazabilirsiniz ve özellik hesaplama kodu ham veri akışlarını özelliklere dönüştürmek için Yapılandırılmış Akış kullanabilir.

Ayrıca, özellik tablolarını çevrimdışı mağazadan çevrimiçi bir mağazaya akışla aktarabilirsiniz.

Model ambalajlama

Unity Kataloğu veya Çalışma Alanı Özellik Deposu'nda Özellik Mühendisliği'ni kullanarak bir makine öğrenmesi modelini eğittiğinizde ve istemcinin log_model() yöntemini kullanarak kaydettiğinizde, model bu özelliklere ilişkin referansları korur. Çıkarım zamanında model isteğe bağlı olarak özellik değerlerini otomatik olarak alabilir. Çağıranın yalnızca modelde kullanılan özelliklerin birincil anahtarını (örneğin, user_id) sağlaması gerekir ve model tüm gerekli özellik değerlerini alır.

Toplu çıkarımda, özellik değerleri çevrimdışı depodan alınır ve puanlamadan önce yeni verilerle birleştirilir. Gerçek zamanlı çıkarımda, özellik değerleri çevrimiçi mağazadan alınır.

Bir modeli özellik meta verileriyle paketlemek için FeatureEngineeringClient.log_model (Unity Kataloğu'nda Özellik Mühendisliği için) veya FeatureStoreClient.log_model (Çalışma Alanı Özellik Deposu için) kullanın.