Conceitos

Esta seção descreve conceitos para ajudá-lo a usar Databricks Feature Store e tabelas de recursos.

Tabelas de recursos

recurso são organizados como tabelas de recursos. Cada tabela deve ter uma key primária e é apoiada por uma tabela Delta e metadados adicionais. Os metadados da tabela de recurso rastreiam a fonte de dados a partir da qual uma tabela foi gerada e o Notebook e Job que criaram ou gravaram na tabela.

Com o Databricks Runtime 13.2 e acima, se o seu workspace estiver habilitado para Unity Catalog, você poderá usar qualquer tabela Delta no Unity Catalog com uma key primária como tabela de recursos. Veja recurso engenharia no Unity Catalog. As tabelas de recursos que são armazenadas no armazenamento de recursos workspace local são chamadas de “tabelas de recursos workspace ”. Consulte Trabalhar com recurso em Workspace recurso Store.

recurso em uma tabela de recursos normalmente são compute e atualizados usando uma função de computação comum.

Você pode publicar uma tabela de recursos em um armazenamento online para inferência de modelo em tempo real.

FeatureLookup

Muitos modelos diferentes podem usar recursos de uma tabela de recursos específica, e nem todos os modelos precisarão de todos os recursos. Para ensinar um modelo utilizando recurso, você cria um FeatureLookup para cada tabela de recurso. O FeatureLookup especifica qual recurso usar da tabela e também define a key a ser usada para join a tabela de recursos aos dados do rótulo passados para create_training_set.

O diagrama ilustra como um FeatureLookup funciona. Neste exemplo, você deseja ensinar um modelo utilizando recurso de duas tabelas de recursos, customer_features e product_features. Você cria um FeatureLookup para cada tabela de recurso, especificando o nome da tabela, o recurso (colunas) a ser selecionado na tabela e a key de pesquisa a ser usada na junção do recurso para criar um dataset de treinamento.

Você então chama create_training_set, também mostrado no diagrama. Esta chamada de API especifica o DataFrame que contém os dados brutos de treinamento (label_df), o FeatureLookups a ser usado e label, uma coluna que contém a verdade básica. Os dados de treinamento devem conter coluna(s) correspondente(s) a cada uma das key primárias das tabelas de recursos. Os dados nas tabelas de recursos são unidos ao DataFrame de entrada de acordo com estas key. O resultado é mostrado no diagrama como “ dataset de treinamento”.

Diagrama FeatureLookup

Conjunto de treinamento

Um conjunto de treinamento consiste em uma lista de recursos e um DataFrame contendo dados de treinamento brutos, rótulos e key primária para procurar recursos. Você cria o conjunto de treinamento especificando os recursos a serem extraídos do Feature Store e fornece o conjunto de treinamento como entrada durante o treinamento do modelo.

Consulte Criar um conjunto de dados de treinamento para obter um exemplo de como criar e usar um conjunto de treinamento.

Ao ensinar um modelo usando recurso engenharia no Unity Catalog, você pode view a linhagem do modelo no Catalog Explorer. As tabelas e funções usadas para criar o modelo são rastreadas e exibidas automaticamente. Veja view repositório de recursos de linhagem.

Tabelas de recursos de séries temporais

Os dados usados para ensinar um modelo geralmente possuem dependências de tempo incorporadas a ele. Ao construir o modelo, você deve considerar apenas os valores de recursos até o momento do valor alvo observado. Se você ensinar recursos com base em dados medidos após o carimbo de data/hora do valor de destino, o desempenho do modelo poderá ser prejudicado.

As tabelas de recursos de série temporal incluem uma coluna de carimbo de data/hora que garante que cada linha no dataset de treinamento represente os valores de recurso conhecidos mais recentes a partir do carimbo de data/hora da linha. Você deve usar tabelas de recursos de série temporal sempre que os valores de recurso mudarem ao longo do tempo, por exemplo, com dados de série temporal, dados baseados em eventos ou dados agregados no tempo.

Ao criar uma tabela de recursos de série temporal, você especifica colunas relacionadas ao tempo em sua key primária como colunas de série temporal usando o argumento timeseries_columns (para recurso engenharia no Unity Catalog) ou o argumento timestamp_keys (para recurso Store workspace ). Isso permite pesquisas pontuais quando você usa create_training_set ou score_batch. O sistema executa uma join de carimbo de data e hora usando o timestamp_lookup_key especificado.

Se você não usar o argumento timeseries_columns ou o argumento timestamp_keys e designar apenas uma coluna de série temporal como uma coluna key primária, o recurso Store não aplicará lógica point-in-time à coluna de série temporal durante join. Em vez disso, ele corresponde apenas às linhas com uma correspondência de hora exata, em vez de corresponder a todas as linhas anteriores ao carimbo de data/hora.

processamento off-line

O repositório offline de recursos é usado para descoberta de recursos, treinamento de modelo e inferência de lotes. Ele contém tabelas de recursos materializadas como tabelas Delta.

processamento online

Um armazenamento online é um banco de dados de baixa latência usado para inferência de modelos em tempo real. Para obter uma lista de lojas online suportadas pelo Databricks, consulte Lojas online de terceiros.

transmissão

Além das gravações de lotes, a Databricks recurso Store oferece suporte à transmissão. Você pode gravar valores de recursos em uma tabela de recursos a partir de uma fonte transmitida, e o código de computação de recursos pode utilizar estruturada transmitida para transformar dados brutos transmitidos em recursos.

Você também pode transmitir tabelas de recursos do armazenamento off-line para um armazenamento on-line.

Modelo de embalagem

Uma versão do machine learning treinada usando recursos do Databricks Feature Store retém referências a esses recursos. No momento da inferência, o modelo pode, opcionalmente, recuperar valores de recursos do Feature Store. O chamador só precisa fornecer a key primária dos recursos usados no modelo (por exemplo, user_id) e o modelo recupera todos os valores de recursos necessários do Feature Store.

Na inferência de lotes, os valores dos recursos são recuperados do armazenamento off-line e combinados com novos dados antes da pontuação. Na inferência em tempo real, os valores dos recursos são recuperados do armazenamento online.

Para empacotar um modelo com metadados de recurso, use FeatureEngineeringClient.log_model (para recurso engenharia no Unity Catalog) ou FeatureStoreClient.log_model (para workspace recurso Store).