Vad är en funktionsbutik?

På den här sidan förklaras vad ett funktionslager är och vilka fördelar det ger samt de specifika fördelarna med Databricks Feature Store.

Ett funktionslager är en centraliserad lagringsplats som gör det möjligt för dataexperter att hitta och dela funktioner och även ser till att samma kod som används för att beräkna funktionsvärdena används för modellträning och slutsatsdragning.

Maskininlärning använder befintliga data för att skapa en modell för att förutsäga framtida resultat. I nästan alla fall kräver rådata förbearbetning och transformering innan de kan användas för att skapa en modell. Den här processen kallas funktionsteknik och utdata från den här processen kallas funktioner – byggstenarna i modellen.

Att utveckla funktioner är komplext och tidskrävande. En ytterligare komplikation är att för maskininlärning måste funktionsberäkningar göras för modellträning och sedan igen när modellen används för att göra förutsägelser. Dessa implementeringar kanske inte utförs av samma team eller med samma kodmiljö, vilket kan leda till fördröjningar och fel. Dessutom har olika team i en organisation ofta liknande funktionsbehov men kanske inte är medvetna om det arbete som andra team har gjort. Ett funktionsarkiv är utformat för att lösa dessa problem.

Varför ska du använda Databricks-funktionsarkivet?

Databricks Feature Store är helt integrerat med andra komponenter i Azure Databricks.

  • Upptäckbarhet. Med funktionsarkivets användargränssnitt, som är tillgängligt från Databricks-arbetsytan, kan du bläddra och söka efter befintliga funktioner.
  • Lineage. När du skapar en funktionstabell i Azure Databricks sparas och är de datakällor som används för att skapa funktionstabellen tillgängliga. För varje funktion i en funktionstabell kan du också komma åt de modeller, notebook-filer, jobb och slutpunkter som använder funktionen.
  • Integrering med bedömning och servering av modeller. När du använder funktioner från Funktionsarkiv för att träna en modell paketeras modellen med funktionsmetadata. När du använder modellen för batchbedömning eller online-slutsatsdragning hämtar den automatiskt funktioner från Funktionsarkiv. Anroparen behöver inte känna till dem eller inkludera logik för att söka efter eller ansluta funktioner för att poängsätta nya data. Detta gör modelldistribution och uppdateringar mycket enklare.
  • Punkt-i-tid-sökningar. Funktionsarkivet stöder tidsserier och händelsebaserade användningsfall som kräver rätt tidpunkt.

Funktionsteknik i Unity-katalogen

Med Databricks Runtime 13.3 LTS och senare blir Unity Catalog ditt funktionslager om arbetsytan är aktiverad för Unity Catalog. Du kan använda valfri Delta-tabell eller Delta Live Table i Unity Catalog med en primärnyckel som funktionstabell för modellträning eller slutsatsdragning. Unity Catalog tillhandahåller funktionsidentifiering, styrning, ursprung och åtkomst mellan arbetsytor.

Hur fungerar Databricks Feature Store?

Det typiska arbetsflödet för maskininlärning med funktionsarkivet följer den här vägen:

  1. Skriv kod för att konvertera rådata till funktioner och skapa en Spark DataFrame som innehåller önskade funktioner.
  2. För arbetsytor som är aktiverade för Unity Catalog skriver du DataFrame som en funktionstabell i Unity Catalog. Om din arbetsyta inte är aktiverad för Unity Catalog skriver du DataFrame som en funktionstabell i arbetsytans funktionslager.
  3. Träna en modell med hjälp av funktioner från funktionsarkivet. När du gör detta lagrar modellen specifikationerna för funktioner som används för träning. När modellen används för slutsatsdragning ansluter den automatiskt funktioner från lämpliga funktionstabeller.
  4. Registrera modellen i modellregistret.

Nu kan du använda modellen för att göra förutsägelser om nya data.

För batchanvändningsfall hämtar modellen automatiskt de funktioner den behöver från Funktionsarkivet.

Funktionslagerarbetsflöde för användningsfall för batchmaskininlärning.

För användningsfall i realtid kan du publicera funktionerna i en onlinebutik eller använda en onlinetabell.

Vid slutsatsdragningen läser modellen förberäknade funktioner från onlinebutiken och kopplar dem till de data som anges i klientbegäran till modellen som betjänar slutpunkten.

Funktionslagerflöde för maskininlärningsmodeller som hanteras.

Börja använda Funktionsarkiv

Se följande artiklar för att komma igång med Funktionsarkiv:

När du använder funktionsutveckling i Unity Catalog tar Unity Catalog hand om delning av funktionstabeller mellan arbetsytor och du använder Unity Catalog-behörigheter för att styra åtkomsten till funktionstabellerna . Följande länkar gäller endast arbetsytans funktionslager:

Datatyper som stöds

Funktionsutveckling i Unity Catalog och Workspace Feature Store har stöd för följande PySpark-datatyper:

  • IntegerType
  • FloatType
  • BooleanType
  • StringType
  • DoubleType
  • LongType
  • TimestampType
  • DateType
  • ShortType
  • ArrayType
  • BinaryType [1]
  • DecimalType [1]
  • MapType [1]

[1] BinaryType, DecimalType, och MapType stöds i alla versioner av Funktionsteknik i Unity Catalog och i Workspace Feature Store v0.3.5 eller senare.

De datatyper som anges ovan stöder funktionstyper som är vanliga i maskininlärningsprogram. Till exempel:

  • Du kan lagra kompakta vektorer, tensorer och inbäddningar som ArrayType.
  • Du kan lagra glesa vektorer, tensorer och inbäddningar som MapType.
  • Du kan lagra text som StringType.

När de publiceras i onlinebutiker ArrayType lagras funktionerna MapType i JSON-format.

Användargränssnittet för funktionsarkivet visar metadata för funktionsdatatyper:

Exempel på komplexa datatyper

Mer information

Mer information om metodtips för att använda Funktionsarkiv finns i Den omfattande guiden till funktionsbutiker.