BIX Tecnologia

Feature store: o que é, quando usar e como construir

O que é uma feature store, quando usar e como construir a sua.

9 min de leitura
Isabella Machado
Ilustração de uma feature store: um repositório central de features ramificando para um armazenamento offline e um online até um modelo de machine learning

Tire o seu projeto do papel

Compartilhar

Feature store: o que é, quando usar e como construir

Uma feature store é o repositório central que define, calcula, armazena e serve as variáveis (as features) que alimentam modelos de machine learning, garantindo que o treino e a produção usem exatamente a mesma lógica de cálculo. Em vez de cada projeto reescrever suas features do zero, ela vira a fonte única desses atributos, com o mesmo rigor de versionamento que um bom data pipeline aplica aos dados brutos.

O problema que ela resolve é silencioso e caro. Quando o treino usa uma fórmula de feature e a produção usa outra ligeiramente diferente, o modelo passa a receber dados que não batem com o que aprendeu, e a predição degrada sem gerar nenhum erro visível. Essa inconsistência recebeu do Google o nome de training-serving skew. Para combatê-lo, a Uber popularizou a ideia de feature store com a plataforma Michelangelo. Desde então, essa camada passou a integrar qualquer arquitetura madura de MLOps.

Este guia foca em duas perguntas: o que é uma feature store e quando vale a pena adotar uma. No fim, ele mostra como construir a sua sobre a infraestrutura que a empresa já tem, sem cair no erro de comprar uma plataforma complexa antes de ter volume que justifique.

O que é uma feature store

Uma feature é qualquer variável de entrada que o modelo usa para prever algo: o ticket médio dos últimos 30 dias de um cliente, o número de transações na última hora, a idade de uma conta. A feature store é a camada que centraliza a definição dessas variáveis, calcula os valores a partir dos dados brutos e os entrega prontos para consumo, tanto no treino quanto na inferência. Ela faz pelas features o que o dbt faz pelas transformações analíticas: transforma lógica espalhada em ativo versionado e reutilizável.

Uma feature store cumpre dois papéis. O primeiro é consistência: como treino e produção puxam a feature da mesma definição, o training-serving skew deixa de ser uma ameaça constante. O segundo é reuso: uma feature bem construída por um cientista de dados vira insumo para todos os modelos seguintes, em vez de ser reescrita a cada projeto, o que acelera o time e reduz a superfície de erro. Esse ganho depende diretamente da qualidade e consistência dos dados que entram na conta.

No geral, a maioria das feature stores têm os mesmos componentes: um pipeline de transformação que calcula as features, um armazenamento offline com o histórico completo, um armazenamento online com o valor mais recente para respostas rápidas, e um catálogo que descreve cada feature e sua linhagem. É esse catálogo que aproxima a feature store da disciplina de governança de dados, porque ele documenta de onde cada variável veio e quem depende dela.

Offline store e online store: os dois lados de uma feature store

A distinção mais importante para entender uma feature store é a divisão entre o armazenamento offline e o online, porque cada um serve a um momento diferente do ciclo do modelo. O offline store guarda o histórico completo das features, com muitas linhas e profundidade temporal, e vive sobre o data warehouse ou o data lake da empresa. Ele é a base do treino e das predições em batch, onde a latência não importa e o volume, sim.

O online store guarda apenas o valor mais recente de cada feature, otimizado para leitura em milissegundos, quase sempre em um banco chave-valor. Ele existe para o serving em tempo real, quando uma recomendação ou uma decisão antifraude precisa da feature no instante da transação. Para evitar divergências, ambos os armazenamentos derivam da mesma definição, assegurando que o valor servido em tempo real seja exatamente o mesmo utilizado durante o treino.

A principal diferença entre uma feature store e uma simples tabela de dados é a correção point-in-time. Ao montar o conjunto de treino, a feature precisa refletir o valor que existia no momento do evento, não o valor de hoje, senão o modelo aprende com informação do futuro e infla artificialmente as métricas. Esse tipo de vazamento é sutil e distorce a leitura de viés e variância do modelo. A tabela abaixo resume as diferenças entre os dois armazenamentos.

AspectoOffline storeOnline store
ConteúdoHistórico completo das featuresApenas o valor mais recente
Otimizado paraVolume e profundidade temporalLatência de leitura (milissegundos)
ConsomeTreino e serving em batchServing online em tempo real
Base típicaData warehouse ou data lakeBanco chave-valor em memória

Quando usar (e quando não usar) uma feature store

Adotar uma feature store cedo demais pode acabar sendo um erro tão grave quanto ignorar sua utilidade. A pergunta para refletir vai além de se a feature store é boa, mas "o meu contexto justifica o overhead dela?". Uma feature store paga o próprio custo quando vários modelos compartilham as mesmas features, quando existe a necessidade de servir em tempo real com garantia de consistência, ou quando o cálculo das features é pesado e recomputar a cada projeto sai caro. Esses são os cenários em que a camada se encaixa dentro de uma arquitetura de MLOps que já busca reprodutibilidade.

Por outro lado, um único modelo simples, servido só em batch, com um time pequeno e features baratas de recalcular, quase sempre vive melhor sem uma feature store dedicada no início. Nesse caso, uma tabela versionada bem construída com dbt já entrega consistência suficiente, e a plataforma pode entrar depois, quando o reuso e o tempo real aparecerem de fato.

A decisão, portanto, é situacional, e a BIX trabalha de forma agnóstica, combinando as soluções conforme cada operação exige. A tabela a seguir organiza os sinais que podem indicar qual a melhor escolha para o seu contexto:

Sinal na operaçãoAponta para adotarAponta para adiar
Número de modelos em produçãoVários, reusando featuresUm único modelo isolado
Necessidade de servingTempo real com consistênciaSó batch, sem baixa latência
Custo de recalcular featuresAlto, features pesadasBaixo, features simples
Tamanho e maturidade do timeTime de dados dedicadoPoucas pessoas, estágio inicial

Como construir uma feature store

A primeira decisão de construção é entre comprar e montar. Plataformas gerenciadas, como a feature store do Databricks, a do SageMaker e a do Vertex AI, entregam offline e online prontos e integrados ao restante do stack, ao custo de acoplamento ao fornecedor. No caminho aberto, o Feast é o projeto de referência e conecta armazenamentos que a empresa já usa, dando mais controle em troca de mais trabalho de integração. Não existe opção universalmente melhor, e a escolha acompanha a maturidade de dados de cada operação.

Independente da ferramenta, o caminho de construção segue a mesma ordem sensata. Comece sobre o pipeline que já existe, materializando as features com a mesma lógica versionada do resto das transformações, para não criar uma ilha paralela. Em seguida, defina cada feature como código, com nome, tipo, fonte e janela de tempo declarados, de forma que o algoritmo consuma um contrato estável, e não uma consulta ad hoc.

Depois vem a ordem dos armazenamentos: implemente primeiro o offline store, que sustenta o treino e já resolve a consistência da maior parte dos casos, e só materialize o online store quando o serving em tempo real for uma necessidade concreta. Garanta desde o início os joins point-in-time, para que o conjunto de treino nunca enxergue o futuro, e conecte o catálogo à governança de dados para preservar a linhagem. Essa é a mesma disciplina que sustenta um bom tutorial de modelo no Databricks, agora aplicada à camada de features.

Uma feature store bem posicionada resolve dois problemas ao mesmo tempo: garante que treino e produção falem a mesma língua e transforma cada feature em ativo reutilizável em vez de trabalho descartável. Ela não precisa nascer completa nem cara, e o melhor momento para adotá-la é quando o reuso e o tempo real deixam de ser hipótese e viram rotina. O resto é escolher a abordagem certa para a realidade do seu time e evoluir a partir dela.

Se a sua empresa está estruturando a camada de features dos seus modelos e quer decidir entre construir ou adotar uma feature store sem overengineering, nossos especialistas podem ajudar a desenhar a melhor arquitetura para o seu contexto. Fale com a nossa equipe e avance na maturidade dos seus dados.

Fale com os especialistas da BIX Tecnologia e estruture a camada de features dos seus modelos de machine learning, do offline store ao serving em tempo real

Perguntas frequentes

O que é uma feature store? É o repositório central que define, calcula e serve as features de modelos de machine learning de forma consistente para treino e produção. Ela existe para eliminar o descompasso entre a fórmula usada no treino e a usada na inferência, e para transformar cada feature em um ativo reutilizável por vários modelos, com versionamento e linhagem.

Quando usar uma feature store? Use quando vários modelos compartilham as mesmas features, quando há serving em tempo real que exige consistência, ou quando recalcular features é caro. Para um único modelo simples servido só em batch, ela costuma ser overhead no início, e uma tabela bem versionada resolve. A decisão é situacional e depende do volume e da maturidade do time.

Qual a diferença entre offline store e online store? O offline store guarda o histórico completo das features sobre o data warehouse ou data lake e alimenta treino e predições em batch. O online store guarda só o valor mais recente, otimizado para leitura em milissegundos, e alimenta o serving em tempo real. Os dois derivam da mesma definição, o que garante a consistência entre treino e produção.

Feature store é a mesma coisa que um data warehouse? Não. Um data warehouse é um repositório analítico de propósito geral, enquanto a feature store é uma camada especializada em servir variáveis de modelos com consistência entre treino e produção e com baixa latência online. Na prática, a feature store costuma se apoiar no data warehouse como armazenamento offline, mas adiciona catálogo, versionamento e serving que o warehouse sozinho não oferece.

Como começar a construir uma feature store? Comece sobre o pipeline que já existe, materializando as features com a mesma lógica versionada das demais transformações. Defina cada feature como código, implemente primeiro o offline store para o treino e só depois o online store para tempo real, garantindo os joins point-in-time. A ferramenta, gerenciada ou aberta, entra conforme o reuso e a latência exigirem.

Quer agilidade na entrega de software na sua empresa?

Saiba como podemos resolver isso.

Fale com nossos especialistas

Receba uma proposta sem compromisso.

Time BIX