Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Usługa Databricks Feature Store centralizuje funkcje używane w uczeniu maszynowym, dzięki czemu te same obliczenia funkcji są uruchamiane podczas trenowania i wnioskowania modelu. Tworzysz cechy jako widoki cech, które Databricks oblicza i nimi zarządza, lub jako tabele cech, które sam wypełniasz. Poniższe sekcje obejmują typowy przepływ pracy i definiują kluczowe terminy.
Co oferuje Databricks Feature Store?
Feature Store daje dwa sposoby na tworzenie funkcji. Oba generują cechy zarządzane przez Unity Catalog, które można wykorzystać do wnioskowania wsadowego lub publikować w Online Feature Store do serwowania z niskimi opóźnieniami:
- Widoki feature definiują feature deklaratywnie, a Databricks tworzy i zarządza potokami feature za Ciebie. Databricks zaleca Feature Views dla nowych zastosowań.
- Tabele cech to tabele Delta, które samodzielnie wypełniasz, zapisując wartości cech.
Aby dowiedzieć się, jak wybrać spośród nich, zobacz : Wybierz strategię pisania.
Jak działa magazyn funkcji usługi Databricks?
Typowy przepływ pracy uczenia maszynowego korzystający z inżynierii funkcji w usłudze Databricks jest następujący:
- Twórz prototypy widoków cech w notatniku, wykorzystując Feature Engineering SDK do generowania danych historycznych i zestawów treningowych. Iteruj równolegle definicje cech, dane i model, aż będziesz zadowolony.
- Przygotuj do wdrożenia:
- Zarejestruj swoje cechy w Unity Catalog, czyniąc je zarządzalnymi i wielokrotnie użytecznymi zasobami.
- Trenuj i loguj swój model w MLflow, rejestrując pochodzenie cech używanych w treningu.
- Udostępnij swoje cechy w magazynach online lub offline.
- Wnioskowanie:
- W przypadku partii użyj
score_batch. - Dla trybu online skonfiguruj punkt końcowy obsługi dla modeli lub funkcji.
- W przypadku partii użyj
Słownik Feature Store
Magazyn funkcji
Magazyn funkcji to scentralizowane repozytorium, które umożliwia analitykom danych znajdowanie i udostępnianie funkcji. Korzystanie z magazynu cech pomaga również zapewnić, że kod używany do obliczania wartości cech jest taki sam podczas trenowania modelu oraz gdy model jest używany do wnioskowania. Możesz tworzyć cechy modelu jako Feature Views, które Databricks oblicza i którymi zarządza za Ciebie, lub jako tabele cech modelu. W przestrzeniach roboczych włączonych dla Unity Catalog, każda tabela Delta w Unity Catalog, która zawiera ograniczenie klucza podstawowego, może być używana jako tabela cech.
Uczenie maszynowe używa istniejących danych do tworzenia modelu w celu przewidywania przyszłych wyników. W prawie wszystkich przypadkach nieprzetworzone dane wymagają wstępnego przetwarzania i przekształcania, zanim będzie można go użyć do utworzenia modelu. Proces ten nazywa się inżynierią cech, a jego wyniki nazywane są cechami, czyli elementami budulcowymi modelu. Dzięki Feature Views wykonujesz inżynierię cech za pomocą prostych definicji w Python, a Databricks zarządza pipeline'ami za ciebie.
Tworzenie funkcji jest skomplikowane i czasochłonne. Dodatkową komplikacją jest to, że w przypadku uczenia maszynowego obliczenia funkcji należy wykonać na potrzeby trenowania modelu, a następnie ponownie, gdy model jest używany do przewidywania. Te implementacje mogą nie być wykonywane przez ten sam zespół lub przy użyciu tego samego środowiska kodu, co może prowadzić do opóźnień i błędów. Ponadto różne zespoły w organizacji często mają podobne potrzeby funkcji, ale mogą nie być świadomi pracy wykonanej przez inne zespoły. Magazyn funkcji jest przeznaczony do rozwiązywania tych problemów.
Widoki funkcjonalności
Feature Views to abstrakcja definiująca, czym jest cecha. Definiujesz Feature View, a Databricks go tworzy. Podczas treningu SDK Feature Engineering generuje historyczne dane cech i zestawy treningowe poprawne w danym punkcie czasu. Na potrzeby inferencji zmaterializuj cechę w odpowiednim sklepie online lub offline, a Databricks orkiestruje obliczenia, zapewniając, że dane cech są gotowe do obsługi.
Feature Views obsługują zarówno cechy wsadowe, jak i strumieniowe, a świeżość waha się od poniżej sekundy do zaplanowanego harmonogramu cron.
Tabele funkcji
Tabele cech to tabele Delta z kluczem głównym. Możesz zsynchronizować tabele cech ze sklepem internetowym za pomocą publish_table. Metadane tabeli funkcji śledzą źródła danych, z których została wygenerowana tabela, oraz notesy i zadania utworzone lub napisane w tabeli.
W przypadku środowiska Databricks Runtime 13.3 LTS lub nowszego, jeśli obszar roboczy jest włączony dla wykazu aparatu Unity, możesz użyć dowolnej tabeli delty w wykazie aparatu Unity z kluczem podstawowym jako tabelą funkcji. Zobacz Tabele cech w Unity Catalog.
Funkcje w tabeli funkcji są zwykle obliczane i aktualizowane przy użyciu typowej funkcji obliczeniowej.
Tabelę funkcji można opublikować w sklepie online na potrzeby wnioskowania modelu w czasie rzeczywistym.
FeatureLookup
Wiele różnych modeli może używać funkcji z określonej tabeli funkcji, a nie wszystkie modele będą potrzebować każdej funkcji. Aby wytrenować model przy użyciu cech, należy utworzyć FeatureLookup dla każdej tabeli cech. Określa FeatureLookup, które cechy mają być używane z tabeli, a także definiuje klucze używane do połączenia tabeli cech z danymi etykiet przekazanymi do create_training_set.
Na diagramie przedstawiono sposób działania FeatureLookup. W tym przykładzie chcesz wytrenować model przy użyciu cech z dwóch tabel cech, customer_features oraz product_features. Dla każdej tabeli funkcji tworzysz FeatureLookup, określając nazwę tabeli, funkcje (kolumny) do wybrania z tabeli oraz klucz wyszukiwania do użycia podczas łączenia funkcji w celu utworzenia zestawu danych szkoleniowych.
Następnie wywołaj metodę create_training_set, również pokazaną na diagramie. To wywołanie interfejsu API określa ramkę danych zawierającą nieprzetworzone dane treningowe (label_df), FeatureLookups do użycia i label, kolumnę zawierającą wartości referencyjne. Dane szkoleniowe muszą zawierać kolumny odpowiadające poszczególnym kluczom podstawowym tabel funkcji. Dane w tabelach funkcji są przyłączone do wejściowej ramki danych zgodnie z tymi kluczami. Wynik jest wyświetlany na diagramie jako "Zestaw danych trenowania".
FeatureFunction
Funkcja może zależeć od informacji, które są dostępne tylko w momencie wnioskowania. Można określić element FeatureFunction , który łączy dane wejściowe w czasie rzeczywistym z wartościami funkcji w celu obliczenia aktualnych wartości funkcji. Przykład pokazano na diagramie. Aby uzyskać szczegółowe informacje, zobacz Obliczenia funkcji na żądanie.
Zestaw szkoleniowy
Zestaw szkoleniowy składa się z listy funkcji i ramki danych zawierającej nieprzetworzone dane trenowania, etykiety i klucze podstawowe, za pomocą których można wyszukać funkcje. Zestaw trenowania można utworzyć, określając funkcje wyodrębnione ze sklepu Feature Store i podając zestaw trenowania jako dane wejściowe podczas trenowania modelu.
Zobacz Tworzenie zestawu danych szkoleniowych, aby zapoznać się z przykładem tworzenia i używania zestawu treningowego.
Podczas trenowania i rejestrowania modelu za pomocą inżynierii cech w Unity Catalog można wyświetlić rodowód modelu w Eksploratorze katalogu. Tabele i funkcje, które zostały użyte do utworzenia modelu, są automatycznie śledzone i wyświetlane. Zobacz Zarządzanie funkcjami i geneza danych.
FeatureSpec
A FeatureSpec to jednostka katalogu Unity, która definiuje zestaw cech i funkcji wielokrotnego użytku do udostępniania.
FeatureSpecs łączą FeatureLookups z tabel funkcji i FeatureFunctions w jedną jednostkę logiczną, która może być używana w trenowaniu modelu lub obsługiwana przy użyciu punktów końcowych obsługujących funkcje.
FeatureSpecs są przechowywane i zarządzane przez Unity Catalog, z możliwością pełnego śledzenia pochodzenia do ich składników, takich jak tabele funkcji offline i funkcje. Umożliwia to zarządzanie, odnajdywanie i ponowne używanie w różnych modelach i aplikacjach.
Możesz użyć elementu FeatureSpec w następujący sposób:
- Utwórz punkt końcowy obsługujący funkcję przy użyciu interfejsu API języka Python lub interfejsu API REST. Zobacz tabele cech Serve lub wdrażaj bezpośrednio za pomocą interfejsu Model Serving UI. W przypadku aplikacji o wysokiej wydajności włącz optymalizację tras.
- Użyj w trenowaniu modelu, odwołując się do
FeatureSpecwcreate_training_set.
Obiekt FeatureSpec zawsze odnosi się do tabel funkcji w trybie offline, ale muszą one zostać opublikowane w sklepie internetowym, aby można było je wykorzystać w scenariuszach obsługi w czasie rzeczywistym.
Tabele cech szeregów czasowych (odnośniki do punktu w czasie)
Dane używane do trenowania modelu często mają wbudowane zależności czasowe. Podczas kompilowania modelu należy wziąć pod uwagę tylko wartości funkcji do czasu obserwowanej wartości docelowej. Jeśli trenujesz funkcje na podstawie danych mierzonych po znaczniku czasu wartości docelowej, wydajność modelu może ulec zmianie.
Tabele funkcji szeregów czasowych zawierają kolumnę znacznika czasu, która gwarantuje, że każdy wiersz w zestawie danych treningowych przedstawia najnowsze znane wartości funkcji na moment oznaczony przez znacznik czasu danego wiersza. Tabele funkcji szeregów czasowych należy używać zawsze, gdy wartości funkcji zmieniają się w czasie, na przykład w przypadku danych szeregów czasowych, danych opartych na zdarzeniach lub danych zagregowanych czasowo.
Podczas tworzenia tabeli funkcji czasowych należy określić kolumny związane z czasem w kluczach podstawowych jako kolumny szeregów czasowych, używając argumentu timeseries_columns (dla inżynierii funkcji w katalogu Unity) lub argumentu timestamp_keys (dla sklepu funkcji obszaru roboczego). Umożliwia to wyszukiwanie do punktu w czasie w przypadku korzystania z funkcji create_training_set lub score_batch. System wykonuje łączenie na bazie bieżącego znacznika czasu przy użyciu określonego elementu timestamp_lookup_key.
Jeśli nie używasz argumentu timeseries_columns lub argumentu timestamp_keys i wyznaczasz tylko kolumnę szeregów czasowych jako kolumnę klucza podstawowego, Feature Store nie stosuje logiki punktu w czasie do kolumny szeregów czasowych podczas sprzężeń. Zamiast tego dopasowuje tylko wiersze z dokładnym dopasowaniem czasu zamiast dopasowywania wszystkich wierszy przed znacznikiem czasu.
Magazyn offline
Magazyn funkcji offline jest używany do odnajdywania funkcji, trenowania modelu i wnioskowania wsadowego. Zawiera tabele funkcji zmaterializowane jako tabele delty.
Sklep funkcji online
Databricks Online Feature Store to wydajne i skalowalne rozwiązanie przeznaczone do dostarczania danych cech aplikacjom online oraz modelom uczenia maszynowego działającym w czasie rzeczywistym.
Napędzana przez Databricks Lakebase, zapewnia dostęp do danych o cechach na dużą skalę z niskimi opóźnieniami, jednocześnie zachowując zarządzanie, pochodzenie danych i spójność z danymi cech.
Możesz aprowizować sklepy online na bezserwerowej platformie Lakebase. Interfejsy API umożliwiają zarządzanie wystąpieniami i replikami do odczytu oraz skalowaniem wystąpień zgodnie z potrzebami. Możesz użyć wygodnych interfejsów API, aby publikować tabele katalogu Unity w sklepach internetowych. Te tabele są również jednostkami katalogu Unity, które natywnie śledzą pochodzenie do tabel źródłowych.
Usługa Databricks obsługuje również sklepy online innych firm.
Przesyłanie strumieniowe
Oprócz zapisów wsadowych usługa Databricks Feature Store obsługuje przesyłanie strumieniowe. Wartości funkcji można zapisywać w tabeli funkcji ze źródła przesyłania strumieniowego, a kod obliczeniowy funkcji może używać przesyłania strumieniowego ze strukturą, aby przekształcać nieprzetworzone strumienie danych w funkcje.
Tabele funkcji można również przesyłać strumieniowo ze sklepu offline do sklepu online.
Pakowanie modeli
Podczas trenowania modelu uczenia maszynowego przy użyciu inżynierii pola cech w katalogu Unity lub magazynie cech w obszarze roboczym i rejestrowaniu go przy użyciu metody klienta log_model(), model zachowuje odwołania do tych cech. W czasie wnioskowania model może opcjonalnie automatycznie pobierać wartości funkcji. Obiekt wywołujący musi podać tylko klucz podstawowy funkcji używanych w modelu (na przykład user_id), a model pobiera wszystkie wymagane wartości funkcji.
W wnioskowaniu wsadowym wartości funkcji są pobierane z magazynu offline i połączone z nowymi danymi przed ocenianiem. W wnioskowaniu w czasie rzeczywistym wartości funkcji są pobierane ze sklepu online.
Aby spakować model z metadanymi cech, użyj FeatureEngineeringClient.log_model (w przypadku inżynierii cech w katalogu Unity) lub FeatureStoreClient.log_model (w przypadku magazynu cech obszaru roboczego).