Snowflake Feature Store

Nota

A API do Snowflake Feature Store está disponível no pacote Snowpark ML Python (snowflake-ml-python) v1.5.0 e posterior.

O Snowflake Feature Store permite que cientistas e engenheiros de ML criem, mantenham e usem recursos de ML em ciência de dados e cargas de trabalho de ML, tudo dentro do Snowflake.

De forma genérica, recursos são elementos de dados usados como entradas para um modelo de aprendizado de máquina. Muitas colunas em um conjunto de dados, como temperatura ou frequência, podem ser usadas como recursos no estado em que se encontram. Em outros casos, uma coluna pode se tornar mais útil para treinamento por meio de pré-processamento e transformação. Por exemplo, você pode derivar um recurso de dia da semana de um carimbo de data/hora para permitir que o modelo detecte padrões semanais. Outras transformações de recurso comuns envolvem agregação, diferenciação ou deslocamento de tempo de dados. Engenharia de recursos é o processo de decidir quais recursos são necessários para seus modelos e definir como eles serão derivados dos dados brutos.

Um repositório de recurso permite padronizar transformações de recurso comumente usados em um repositório central, permitindo a reutilização, ajudando a reduzir a duplicação de dados e esforços e melhorando a produtividade. Ele também ajuda a manter os recursos atualizando-os com novos dados de origem, sempre fornecendo recursos corretos, consistentes e novos em uma única fonte de verdade. Ao cultivar a consistência na forma como os recursos são extraídos de dados brutos, um repositório de recurso também pode ajudar a tornar seus pipelines de ML de produção mais robustos.

O Snowflake Feature Store foi projetado para tornar a criação, o armazenamento e o gerenciamento de recursos para cargas de trabalho de ciência de dados e aprendizado de máquina mais fáceis e eficientes. Hospedado nativamente no Snowflake, o Snowflake Feature Store oferece as seguintes vantagens:

  • Seus dados permanecem seguros, completamente sob seu controle e governança, e nunca saem do Snowflake.

  • A UI do Snowsight Feature Store facilita a busca e a descoberta de recursos.

  • O acesso é gerenciado com controle de acesso detalhado baseado em funções.

Os principais benefícios do Snowflake Feature Store incluem suporte para:

  • Dados em lote e streaming, com atualizações automáticas eficientes conforme novos dados chegam

  • Recursos de preenchimento e correção de ponto no tempo com ASOF JOIN

  • Transformações de recurso criadas em Python ou SQL

  • Atualização e atualização automática de valores de recurso de dados de origem com exibições de recursos gerenciadas pelo Snowflake

  • Capacidade de usar pipelines de recurso gerenciados pelo usuário com ferramentas externas, como dbt

O Snowflake Feature Store é totalmente integrado ao Snowflake Model Registry e outros recursos de ML Snowflake para ML de produção de ponta a ponta.

A ilustração a seguir mostra como o Snowflake Feature Store se encaixa em um pipeline de aprendizado de máquina:

Arquitetura geral do Snowflake Feature Store
  • Dados brutos podem ser obtidos em lote a partir de tabelas ou exibições ou fontes de transferência de dados.

  • Os dados brutos são então transformados por recursos definidos pelos engenheiros de dados, resultando em uma tabela de recurso.

  • A tabela de recurso pode ser usada para gerar conjuntos de dados de treinamento usados para modelos de treinamento no Snowpark ML ou para enriquecer dados de teste usados pelo modelo para fazer previsões.

Como funciona?

Nota

Um armazenamento de recurso no Snowflake é simplesmente um esquema. É possível criar um novo esquema para usar como um repositório de recurso ou usar um existente.

Um armazenamento de recurso contém exibições de recurso. Uma exibição de recurso encapsula um pipeline Python ou SQL para transformar dados brutos em um ou mais recursos relacionados. Todos os recursos definidos em uma exibição de recurso são atualizados a partir dos dados de origem ao mesmo tempo.

Dica

Usuários com acesso a mais de um repositório de recurso podem combinar exibições de recurso de vários repositórios de recurso para criar conjuntos de dados de treinamento e inferência.

O Snowflake Feature Store oferece suporte a dois tipos de exibições de recurso:

  • Gerenciada pelo Snowflake: O Snowflake Feature Store atualiza os recursos na exibição de recurso para você, de forma incremental e eficiente, de acordo com uma cronograma especificada por você.

  • Externa: Algum outro processo fora do repositório de recurso mantém os recursos na exibição de recurso. Este tipo de exibição de recurso é destinado ao uso com ferramentas como dbt.

As exibições de recurso são organizadas no repositório de recurso de acordo com as entidades às quais se aplicam. Uma entidade é uma abstração de nível superior que representa o assunto de um recurso. Por exemplo, em um repositório de recurso para um serviço de streaming de filmes, as principais entidades podem ser usuários e filmes. Dados brutos de filmes e dados de atividade do usuário podem ser convertidos em recursos úteis, como tempo de exibição por filme e duração da sessão do usuário, e as exibições de recurso com esses recursos podem ser marcadas com entidades relevantes.

Modelo de dados de back-end

Objetos de repositório de recursos são implementados como objetos Snowflake. Todos os objetos do repositório de recursos estão, portanto, sujeitos às regras de controle de acesso do Snowflake.

Objeto do Feature Store

Objeto Snowflake

Feature Store

schema

exibição de recursos

tabela dinâmica ou exibição

entidade

tag

recurso

coluna em uma tabela dinâmica ou em uma exibição

Propriedades de exibições de recursos (como nome e entidade) são implementadas como tags em tabelas ou exibições dinâmicas.

É possível consultar ou manipular objetos Snowflake usando SQL. As alterações feitas via SQL são refletidas na API Python e vice-versa.

Dica

Todos os objetos de um Snowflake Feature Store são armazenados no esquema do feature store. Para excluir completamente um repositório de recursos, certifique-se de que o esquema não contenha nenhum outro recurso e, em seguida, descarte o esquema.

Introdução

Nota

A API Python Snowflake Feature Store faz parte do pacote Snowpark ML Python, snowflake-ml-python. É possível usá-lo em seu sistema local no IDE Python de sua preferência ou em uma planilha Snowsight ou notebook. Para obter mais detalhes, consulte APIs Python para Snowflake ML.

Comece sua jornada com Introdução ao Snowflake Feature Store para uma apresentação dos conceitos do Snowflake Feature Store. Em seguida, continue com os guias de início rápido adicionais do Snowflake, incluindo:

Consulte Padrões comuns de recurso e consulta para exemplos de tipos específicos de transformações de recurso.

Nota

Elas são exibidas apenas como exemplos e segui-las pode exigir direitos adicionais sobre dados, produtos ou serviços de terceiros que não são de propriedade ou fornecidos pela Snowflake. A Snowflake não garante a precisão desses exemplos.