Requisitos para Feature Store

Como estruturar a entrada de features na sua Feature Store

Iago Brandao
casasbahiatech
4 min readOct 4, 2022

--

Escrito por Iago Brandão, revisado por Mônica Borges e Pedro Carvalho

Introdução

No passado recente tem-se falado muito sobre Feature Store, um conceito relativamente novo no mercado, sendo um repositório centralizado de variáveis para modelos, também conhecidas como features (daí o nome), diversos são os benefícios, mas a reutilização de features é o principal.

Durante a definição e implantação da Feature Store aqui na ViaHub, percebemos que precisaríamos olhar para algumas práticas para que a evolução da adoção e desenvolvimento do conteúdo da Feature Store seja o mais fluído possível.

Neste artigo, buscando fazer com que seu processo de inserção de novas feature na Feature Store seja um sucesso, vamos compartilhar algumas dicas e aprendizados que tivemos.

Contexto

Para que você aproveite melhor as nossas dicas, vale comentar mais das ferramentas e tecnologias envolvidas na Feature Store que utilizamos.

Na Feature Store da Databricks, lidamos com feature tables, ou seja, tabelas com diversas features que podem ser reutilizadas por Cientistas de Dados e Modelos de Machine Learning. Para salvar as features em feature tables, utilizamos uma arquitetura em cluster e execução em Spark como motor de processamento.

Além disso, é importante comentar que as features podem ser geradas a qualquer momento, principalmente por Cientistas de Dados e Analistas de Dados, porém só se tornam produtivas após serem implantadas, daí a necessidade de padronizar e solicitar requisitos pré-implantação.

Requisitos para entrada na Feature Store

Considerando este contexto, seguem algumas dicas e aprendizados para facilitar esse processo de inserção de novas features na Feature Store.

Use cargas incrementais

Prefira cargas incrementais “append”. Você não vai querer um mundo em preto e branco, cargas totais “overwrite” sobrescrevem seu dado, cargas incrementais são coloridas e vivas. Caso você sobrescreva seu dado, você estará apagando o seu dado e colocando outro no lugar, impactando cientistas, analistas e modelos de Machine Learning, além de inviabilizar análises e backtests com dados históricos.

Termine e valide o ETL antes de incluir na Feature Store

Mesmo que validar o correto funcionamento e conteúdo gerado pelo ETL seja um ponto claro e essencial, é importante deixar explícito para que todos que queiram entregar features para a Feature Store.

Versione o código do ETL que cria suas features

Muitas vezes você vai precisar garantir que está usando as features conforme o que foi acordado, ou ainda retomar como alguma feature foi calculada, ou até fazer um rollback e voltar a calcular uma ou mais features no formato anterior, para isso, versione o código que gera suas Features. Utilizar o Github pode ser uma alternativa.

Especifique o path/diretório para sua tabela

Isso é importante tanto para as feature tables da Feature Store, quanto para as features que são candidatas a entrarem na Feature Store. Caso você esteja usando Spark e tabelas Delta/Parquet, não se esqueça de salvar seu dado em um diretório que possa ser acessível, caso contrário o Hive vai salvar o dado em sua localização padrão, podendo inviabilizar a consulta e homologação de outros ambientes.

Descreva cada feature, você vai precisar disso

De preferência, peça a quem criou a tabela de features para descrever o que cada feature representa, é possível que só essa pessoa saiba de detalhes essenciais, como conhecimento de negócio e lógicas envolvidas, evitando assim que o time de ML crie uma descrição tão genérica que impeça que a feature seja reutilizada.

Preze por governança, prefira tabelas Delta

Prefira o formato Delta de tabelas ao formato Parquet, toda a camada de governança adicional é de grande importância para consultar quando houve modificações no dado ou voltar para uma versão anterior do dado, caso necessário. Isso te ajuda a lidar com eventos anômalos relacionados ao dado.

Especifique a periodicidade de carga das features

A pessoa que criou a tabela de features deve indicar o melhor período de execução da carga dessas features na Feature Store, mesmo que essa periodicidade seja nula, para o caso de cargas frias. Assim, quem consumir o dado vai saber quais períodos terá disponível de dados para suas análises e modelos de ML.

Utilize um padrão de nomenclaturas

A cada nova feature, ou feature table, você vai perceber a necessidade de ter um padrão para nomear suas features

Acredito que já deu para entender que aqui na ViaHub agente tem paixão por alta performance, autonomia e participação não é? Esses são alguns dos pilares da ViaHub, a nossa área de tecnologia! Se você gostou e tem interesse de estar em um time assim, basta se inscrever no nosso portal de vagas em https://viahub.gupy.io/. Conheça também mais sobre a ViaHub e a cultura tech que temos em https://www.viahub.com.br/ !

--

--

Iago Brandao
casasbahiatech

Apaixonado pelo propósito e pela entrega de valor. Atualmente trabalha na Via como Tech Lead de Ciência de Dados, apoiando o negócio e o time de produtos a evol