Partilhar via


Conceitos

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

Tabelas de recursos

Os recursos são organizados como tabelas de recursos. Cada tabela deve ter uma chave primária e é apoiada por uma tabela Delta e metadados adicionais. Os metadados da tabela de recursos rastreiam as fontes de dados a partir das quais uma tabela foi gerada e os blocos de anotações e trabalhos que criaram ou gravaram na tabela.

Com o Databricks Runtime 13.3 LTS e superior, se o seu espaço de trabalho estiver habilitado para o Unity Catalog, você poderá usar qualquer tabela Delta no Unity Catalog com uma chave primária como uma tabela de recursos. Consulte Engenharia de recursos no catálogo Unity. As tabelas de recursos armazenadas no Repositório de Recursos de Espaço de Trabalho local são chamadas de "Tabelas de recursos de espaço de trabalho". Consulte Trabalhar com recursos no Workspace Feature Store.

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

Você pode publicar uma tabela de recursos em uma loja 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 treinar um modelo usando recursos, crie um FeatureLookup para cada tabela de recursos. O FeatureLookup especifica quais recursos usar da tabela e também define as chaves a serem usadas para unir 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 treinar um modelo usando recursos de duas tabelas customer_features de recursos e product_features. Você cria um FeatureLookup para cada tabela de recursos, especificando o nome da tabela, os recursos (colunas) a serem selecionados na tabela e a chave de pesquisa a ser usada quando os recursos de associação criarem um conjunto de dados de treinamento.

Em seguida, você chama create_training_set, também mostrado no diagrama. Esta chamada de API especifica o DataFrame que contém os dados de treinamento brutos (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 a cada uma das chaves primárias das tabelas de recursos. Os dados nas tabelas de recursos são unidos ao DataFrame de entrada de acordo com essas chaves. O resultado é mostrado no diagrama como o "Conjunto de dados de treinamento".

Diagrama FeatureLookup

Conjunto de formação

Um conjunto de treinamento consiste em uma lista de recursos e um DataFrame contendo dados brutos de treinamento, rótulos e chaves primárias pelos quais pesquisar recursos. Você cria o conjunto de treinamento especificando 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 treinar um modelo usando a Engenharia de Recursos no Catálogo Unity, você pode exibir a linhagem do modelo no Catalog Explorer. As tabelas e funções que foram usadas para criar o modelo são automaticamente rastreadas e exibidas. Consulte Ver linhagem da loja de funcionalidades.

Tabelas de recursos de séries temporais

Os dados usados para treinar um modelo geralmente têm dependências de tempo incorporadas nele. Ao criar o modelo, você deve considerar apenas os valores de recurso até o momento do valor de destino observado. Se você treinar em 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éries temporais incluem uma coluna de carimbo de data/hora que garante que cada linha no conjunto de dados de treinamento represente os valores de recurso conhecidos mais recentes como do carimbo de data/hora da linha. Você deve usar tabelas de recursos de séries temporais sempre que os valores de recursos mudarem ao longo do tempo, por exemplo, com dados de séries temporais, dados baseados em eventos ou dados agregados por tempo.

Ao criar uma tabela de recursos de série temporal, você especifica colunas relacionadas ao tempo em suas chaves primárias para serem colunas de séries cronológicas usando o timeseries_columns argumento (para Engenharia de Recursos no Catálogo Unity) ou o argumento (para Repositório de timestamp_keys Recursos de Espaço de Trabalho). Isso permite pesquisas point-in-time quando você usa create_training_set ou score_batch. O sistema executa uma junção como de carimbo de data/hora, usando o timestamp_lookup_key que você especificar.

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

Loja offline

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

Loja online

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

Transmissão

Além das gravações em lote, o Databricks Feature Store suporta streaming. Você pode gravar valores de recursos em uma tabela de recursos a partir de uma fonte de streaming, e o código de computação de recursos pode utilizar o Streaming estruturado para transformar fluxos de dados brutos em recursos.

Você também pode transmitir tabelas de recursos da loja offline para uma loja online.

Modelo de embalagem

Um modelo de aprendizado de máquina treinado usando recursos do Databricks Feature Store mantém referências a esses recursos. No momento da inferência, o modelo pode, opcionalmente, recuperar valores de feição do Feature Store. O chamador só precisa fornecer a chave 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 em lote, os valores de feição são recuperados do repositório offline e unidos a novos dados antes da pontuação. Na inferência em tempo real, os valores dos recursos são recuperados da loja online.

Para empacotar um modelo com metadados de recursos, use FeatureEngineeringClient.log_model (para Engenharia de Recursos no Catálogo Unity) ou FeatureStoreClient.log_model (para o Repositório de Recursos do Espaço de Trabalho).