Sdílet prostřednictvím


Koncepty

Tato část popisuje koncepty, které vám pomůžou používat tabulky funkcí v Databricks.

Ú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í v 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 Práce s tabulkami vlastností v katalogu Unity. 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í a výchozí hodnoty.

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í.

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.

Když vytvoříte tabulku vlastností časových řad, specifikujete časově související sloupce ve svých primárních klíčích jako sloupce časových řad pomocí argumentu timeseries_columns (pro Feature Engineering v Unity Catalog) nebo argumentu timestamp_keys (pro Workspace Feature Store). 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 sloupec časové řady pouze jako sloupec primárního klíče, úložiště funkcí nepoužije logiku k určitému 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 bezslužné 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.

Online obchod

Online obchod je databáze s nízkou latencí, která se používá k odvozování modelů v reálném čase. Seznam online obchodů, které Azure Databricks podporuje, najdete v tématu 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).