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 Databricks Runtime 13.3 LTS e acima, se o seu workspace estiver habilitado para Unity Catalog, o senhor poderá usar qualquer tabela Delta em Unity Catalog com um key primário como uma tabela de recurso. Veja recurso engenharia em Unity Catalog. As tabelas de recursos que são armazenadas no repositório de recursos local workspace são chamadas de "workspace recurso tables". Consulte Trabalhar com recurso em workspace repositório de recursos.

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

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.

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.

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