Requisitos para Feature Store
Como estruturar a entrada de features na sua Feature Store
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/ !