Přehled úložiště funkcí a glosář

Tato stránka vysvětluje, jak funguje úložiště funkcí Databricks a definuje důležité termíny.

Jak funguje Databricks Feature Store?

Typický pracovní postup strojového učení s využitím přípravy funkcí v Databricks se řídí tímto způsobem:

  1. Napište kód pro převod nezpracovaných dat na funkce a vytvořte datový rámec Sparku obsahující požadované funkce.

  2. Vytvořte tabulku Delta v katalogu Unity , která má primární klíč.

  3. Trénování a protokolování modelu pomocí tabulky funkcí Když to uděláte, uloží model specifikace funkcí používaných pro trénování. Když se model používá k odvozování, automaticky spojí funkce z příslušných tabulek funkcí.

  4. Registrace modelu v registru modelů

    Model teď můžete použít k předpovědím nových dat. V případě dávkového použití model automaticky načte funkce, které potřebuje, z úložiště funkcí.

  5. Pro případy použití v reálném čase publikujte funkce do online obchodu s funkcemi.

  6. V době odvozování model obsluhující koncový bod automaticky používá ID entit v datech požadavku k vyhledání předem vypočítaných funkcí z online obchodu k určení skóre modelu ML. Koncový bod používá katalog Unity k řešení sledování z obsluhovaného modelu k funkcím použitým k trénování tohoto modelu a sleduje sledování do online úložiště funkcí pro přístup v reálném čase.

Proces Feature Store pro modely strojového učení, které se obsluhují.

Glosář úložiště funkcí

Úložiště atributů

Úložiště funkcí je centralizované úložiště, které datovým vědcům umožňuje vyhledávat a sdílet funkce. Použití úložiště funkcí také zajišťuje, že kód použitý k výpočtu hodnot funkcí je stejný během trénování modelu a při použití modelu k odvozování. Způsob fungování úložiště funkcí Databricks závisí na tom, jestli je váš pracovní prostor povolený pro katalog Unity nebo ne.

  • V pracovních prostorech povolených pro Katalog Unity můžete použít libovolnou tabulku Delta v katalogu Unity, která obsahuje omezení primárního klíče jako tabulku funkcí.
  • Pracovní prostory, které nebyly povoleny pro katalog Unity a byly vytvořeny před 19. srpnem 2024, 16:00:00 (UTC), mají přístup ke starší verzi úložiště funkcí pracovního prostoru .

Strojové učení používá existující data k vytvoření modelu k předpovídání budoucích výsledků. V téměř všech případech nezpracovaná data před sestavením modelu vyžadují předběžné zpracování a transformaci. Tento proces se nazývá příprava funkcí a výstupy tohoto procesu se nazývají funkce – stavební bloky modelu.

Vývoj funkcí je složitý a časově náročný. Další komplikací je, že pro strojové učení je potřeba provádět výpočty funkcí pro trénování modelu a pak znovu, když se model použije k předpovědím. Tyto implementace nemusí provádět stejný tým nebo používat stejné prostředí kódu, což může vést ke zpožděním a chybám. Různé týmy v organizaci také často mají podobné potřeby funkcí, ale nemusí vědět o práci, kterou provedly jiné týmy. Úložiště atributů je navrženo k řešení těchto problémů.

Tabulky funkcí

Funkce jsou uspořádané jako tabulky funkcí. Každá tabulka musí mít primární klíč a je zajištěná tabulkou Delta a dalšími metadaty. Metadata tabulky funkcí sledují zdroje dat, ze kterých byla tabulka vygenerována, a poznámkové bloky a úlohy vytvořené nebo zapisované do tabulky.

Pokud je váš pracovní prostor povolený pro Katalog Unity a používáte Databricks Runtime 13.3 LTS a vyšší, můžete v Katalogu Unity použít libovolnou tabulku Delta s primárním klíčem jako tabulku charakteristik. Viz tabulky funkcí. Tabulky funkcí uložené v místním úložišti funkcí pracovního prostoru se nazývají tabulky funkcí pracovního prostoru. Viz Práce s tabulkami funkcí v úložišti funkcí pracovního prostoru (starší verze).

Funkce v tabulce funkcí se obvykle počítají a aktualizují pomocí běžné výpočetní funkce.

Tabulku funkcí můžete publikovat do online obchodu pro odvozování modelů v reálném čase.

FeatureLookup

Mnoho různých modelů může používat funkce z konkrétní tabulky funkcí, a ne všechny modely budou potřebovat všechny funkce. Pro trénování modelu pomocí funkcí vytvoříte FeatureLookup pro každou tabulku funkcí. Určuje FeatureLookup , které funkce se mají použít z tabulky, a také definuje klíče, které se mají použít pro spojení tabulky funkcí s daty popisku předanými create_training_set.

Diagram znázorňuje, jak FeatureLookup funguje. V tomto příkladu chcete vytrénovat model pomocí vlastností ze dvou tabulek vlastností, customer_features a product_features. Vytvoříte objekt FeatureLookup pro každou tabulku funkcí, kde určíte název tabulky, funkce (sloupce), které chcete vybrat z tabulky, a vyhledávací klíč použitý při spojování funkcí k vytvoření tréninkové datové sady.

Pak zavoláte create_training_set, který je také zobrazen v diagramu. Toto volání rozhraní API určuje datový rámec obsahující nezpracovaná trénovací data (label_df), FeatureLookups ke použití a label, sloupec, který obsahuje skutečnou hodnotu. Trénovací data musí obsahovat sloupce odpovídající jednotlivým primárním klíčům tabulek funkcí. Data v tabulkách funkcí jsou spojená se vstupním datovým rámcem podle těchto klíčů. Výsledek se v diagramu zobrazí jako trénovací datová sada.

Diagram hledání funkcí

FeatureFunction

Funkce může záviset na informacích, které jsou k dispozici pouze v době odvozování. Můžete zadat FeatureFunction , která kombinuje vstupy v reálném čase s hodnotami funkcí k výpočtu aktuálních hodnot funkcí. Příklad je znázorněn v diagramu. Podrobnosti najdete v tématu Výpočet funkcí na vyžádání.

FeatureFunction diagram

Tréninková sada

Trénovací sada se skládá ze seznamu funkcí a datového rámce obsahujícího nezpracovaná trénovací data, popisky a primární klíče, podle kterých se mají vyhledat funkce. Trénovací sadu vytvoříte zadáním funkcí, které se mají extrahovat z úložiště funkcí, a během trénování modelu poskytnete trénovací sadu jako vstup.

Příklad vytvoření a použití trénovací sady najdete v tématu Vytvoření trénovací datové sady .

Při trénování a protokolování modelu pomocí přípravy funkcí v katalogu Unity můžete zobrazit rodokmen modelu v Průzkumníku katalogu. Tabulky a funkce použité k vytvoření modelu se automaticky sledují a zobrazují. Viz správa a původ funkcí.

FeatureSpec

A FeatureSpec je entita katalogu Unity, která definuje opakovaně použitelnou sadu funkcí a funkcí pro obsluhu. FeatureSpecs zkombinuje FeatureLookupvlastnosti z tabulek funkcí a FeatureFunctions do jednoho logického celku, který lze použít při trénování modelu nebo při servírování pomocí koncových bodů pro obsluhu funkcí.

FeatureSpecUnity Catalog ukládá a spravuje tyto prvky s úplným sledováním historie k jejich základním offline tabulkám funkcí a funkcím. To umožňuje zásady správného řízení, zjistitelnost a opakované použití v různých modelech a aplikacích.

Můžete použít FeatureSpec následujícími způsoby:

  • Vytvořte koncový bod obsluhy funkcí pomocí rozhraní Python API nebo rozhraní REST API. Podívejte se na koncové body obsluhy funkcí nebo je nasaďte přímo pomocí uživatelského rozhraní pro obsluhu modelů. U vysoce výkonných aplikací povolte optimalizaci tras.
  • Použití při trénování modelu odkazem na FeatureSpec v create_training_set.

Vždy FeatureSpec odkazuje na tabulky funkcí offline, ale musí být publikovány v online obchodě pro scénáře obsluhy v reálném čase.

Tabulky vlastností časových řad (vyhledávání k časovému bodu)

Data použitá k trénování modelu často obsahují závislosti času. Při sestavování modelu je nutné zvážit pouze hodnoty vlastností až do doby pozorování cílové hodnoty. Pokud vytrénujete funkce na základě dat měřených po časovém razítku cílové hodnoty, může dojít k omezení výkonu modelu.

Tabulky vlastností časové řady obsahují sloupec s časovou známkou, která zajišťuje, že každý řádek v trénovací datové sadě představuje nejnovější známé hodnoty vlastností k danému časovému razítku. Tabulky funkcí časových řad byste měli použít při každé změně hodnot funkcí v průběhu času, například s daty časových řad, daty založenými na událostech nebo agregovanými daty.

Při vytváření tabulky funkcí časových řad zadáte sloupce související s časem v primárních klíčích jako sloupce časových řad pomocí argumentu timeseries_columns (pro Feature Engineering v katalogu Unity) nebo pomocí argumentu timestamp_keys (pro Feature Store pracovního prostoru). To umožňuje vyhledávání k určitému bodu v čase při použití create_training_set nebo score_batch. Systém provede spojení podle časového razítka pomocí parametru timestamp_lookup_key, který jste zadali.

Pokud nepoužijete argument timeseries_columns nebo argument timestamp_keys a označíte pouze sloupec časové řady jako primární klíč, úložiště funkcí nepoužije logiku bodu v čase na sloupec časové řady během spojení. Odpovídá pouze řádkům s přesnou časovou shodou namísto toho, aby odpovídal všem řádkům před časovým razítkem.

Offline obchod

Offline úložiště funkcí se používá ke zjišťování funkcí, trénování modelů a dávkovému odvozování. Obsahuje tabulky funkcí materializované jako tabulky Delta.

Online úložiště funkcí

Úložiště funkcí Databricks Online je vysoce výkonné a škálovatelné řešení pro poskytování dat funkcí online aplikacím a modelům strojového učení v reálném čase.

S využitím Databricks Lakebase poskytuje přístup k datům funkcí s nízkou latencí ve velkém měřítku a současně udržuje zásady správného řízení, rodokmen a konzistenci s tabulkami offline funkcí.

Online obchody můžete zřídit na bezserverové platformě Lakebase. Rozhraní API umožňují spravovat instance a repliky pro čtení a škálovat instance podle potřeby. Pomocí pohodlných rozhraní API můžete publikovat tabulky katalogu Unity do online obchodů. Tyto tabulky jsou také entity katalogu Unity, které nativně sledují původ zdrojových tabulek. Databricks také podporuje online obchody třetích stran.

Streamování

Kromě dávkových zápisů podporuje úložiště funkcí Databricks streamování. Hodnoty funkcí můžete napsat do tabulky funkcí ze zdroje streamování a výpočetní kód funkce může využít strukturované streamování k transformaci nezpracovaných datových proudů na funkce.

Tabulky funkcí můžete také streamovat z offline obchodu do online obchodu.

Balení modelů

Když model strojového učení vytrénujete pomocí Feature Engineering v Unity Catalogu nebo Workspace Feature Store a logujete ho pomocí metody klienta log_model(), zachová model odkazy na tyto funkce. V době odvozování může model volitelně načíst hodnoty funkcí automaticky. Volající potřebuje pouze poskytnout primární klíč funkcí použitých v modelu (například user_id) a model načte všechny požadované hodnoty funkcí.

V dávkovém odvozování se hodnoty funkcí načtou z offline úložiště a před bodováním se připojí k novým datům. Při odvození v reálném čase se hodnoty funkcí načítají z online obchodu.

Pokud chcete připravit model s metadaty funkcí, použijte FeatureEngineeringClient.log_model (pro úpravu funkcí v katalogu Unity) nebo FeatureStoreClient.log_model (pro úložiště funkcí pracovního prostoru).