Ir para o conteúdo principal

O que é uma Feature Store?

Tecton

Atualizado: 15 de maio de 2025

Sobre os autores:
Mike Del Balso, CEO e Cofundador da Tecton
Willem Pienaar, Criador do Feast

As equipes de dados estão começando a perceber que o machine learning operacional exige a resolução de problemas de dados que vão muito além da criação de pipelines de dados.

Em uma postagem anterior, Por que precisamos de DevOps para dados de ML, destacamos alguns dos principais desafios de dados que as equipes enfrentam ao colocar sistemas de ML em produção.

  • Acessar os dados brutos corretos
  • Construir recursos a partir de dados brutos
  • Combinar recursos em dados de treinamento
  • Calcular e disponibilizar recursos em produção
  • Recursos de monitoramento na produção

Os sistemas de dados de produção, seja para analítica de grande porte ou transmissão em tempo real, não são novos. No entanto, o machine learning operacional — inteligência orientada por ML incorporada aos aplicativos voltados para o cliente — é novo para a maioria das equipes. O desafio de implantar o machine learning na produção para fins operacionais (por exemplo, sistemas de recomendação, detecção de fraudes, personalização etc.) apresenta novos requisitos para nossas ferramentas de dados.

Um novo tipo de infraestrutura de dados específica para ML está surgindo para tornar isso possível.

Cada vez mais, as equipes de ciência de dados e engenharia de dados estão recorrendo a repositórios de recursos para gerenciar os conjuntos de dados e os pipelines de dados necessários para produzir seus aplicativos de ML. Esta postagem descreve os principais componentes de um repositório de recursos moderno e como a soma dessas partes atua como um multiplicador de força nas organizações, reduzindo a duplicação de esforços de engenharia de dados, acelerando o ciclo de vida do machine learning e desbloqueando um novo tipo de colaboração entre as equipes de ciência de dados.

Recapitulando rapidamente: em ML, um recurso é um dado usado como sinal de entrada para um modelo preditivo.
Por exemplo, se uma empresa de cartão de crédito está tentando prever se uma transação é fraudulenta, um recurso útil pode ser saber se a transação está ocorrendo em um país estrangeiro ou como o valor dessa transação se compara às transações típicas do cliente. Quando nos referimos a um recurso, geralmente estamos nos referindo ao conceito desse sinal (por exemplo, “transaction_in_foreign_country”), não um valor específico do recurso (por exemplo não “a transação #1364 foi em um país estrangeiro”).
Infraestrutura de dados específica para aprendizado de máquina

Qual é o propósito principal de um repositório de recursos

“A interface entre modelos e dados”

Apresentamos os repositórios de recursos pela primeira vez em nossa postagem no blog que descrevia a plataforma Michelangelo da Uber. Desde então, os repositórios de recursos emergiram como um componente necessário da pilha operacional de machine learning.

Os benefícios do repositório de recursos incluem:

  1. Produzir novos recursos sem amplo suporte de engenharia
  2. Automatizar a computação, preenchimento retroativo e registro de recursos
  3. Compartilhar e reutilizar pipelines de recursos entre equipes
  4. Acompanhar as versões, a linhagem e os metadados dos recursos.
  5. Alcançar consistência entre os dados de treinamento e de disponibilização.
  6. Monitorar a integridade dos pipelines de recursos na produção

Os repositórios de recursos têm como objetivo resolver o conjunto completo de problemas de gestão de dados encontrados ao criar e operar aplicativos de ML operacionais.

Um repositório de recursos é um sistema de dados específico de ML que:

  • Executa pipelines de dados que transformam dados brutos em valores de recursos.
  • Armazena e gerencia os próprios dados do recurso, e
  • Fornece dados de recursos de forma consistente para fins de treinamento e inferência
Tecton

Para permitir o gerenciamento simples de recursos, os repositórios de recursos fornecem abstrações de dados que facilitam construir, implantar e raciocinar sobre pipelines de recursos em diferentes ambientes. Por exemplo, eles facilitam a definição de uma transformação de recurso uma vez, depois calculam e servem seus valores de forma consistente tanto no ambiente de desenvolvimento (para treinamento em valores históricos) quanto no ambiente de produção (para inferência com novos valores de recurso).

Os repositórios de recursos atuam como um centro de dados e metadados de recurso ao longo do ciclo de vida de um projeto de ML. Os dados em um repositório de recursos são usados para:

  • Exploração e engenharia de recursos
  • Iteração, treinamento e depuração
  • Descoberta e compartilhamento de recursos
  • Produção que serve de modelo para inferência
  • Monitoramento operacional da saúde

Os repositórios de recursos proporcionam economias de escala para organizações de ML, permitindo a colaboração. Quando um recurso é registrado em um repositório de recursos, ele fica disponível para reutilização imediata por outros modelos em toda a organização. Isso reduz a duplicação de esforços em engenharia de dados e permite que novos projetos de ML sejam iniciados com uma biblioteca de recursos selecionados e prontos para produção.

Tecton

Os repositórios de recursos eficazes são projetados para ser sistemas modulares que podem ser adaptados ao ambiente em que são implantados. Existem cinco componentes principais que normalmente compõem um repositório de recursos. No restante deste artigo, analisaremos esses componentes e descreveremos seu papel no funcionamento de aplicações operacionais de ML.

Quais são os componentes de um repositório de recursos

Existem 5 componentes principais de um repositório de recursos moderno: Transformação, Armazenamento, Servir, Monitoramento e Registro de Recursos.

Tecton

Nas seções seguintes, apresentaremos uma visão geral da finalidade e das capacidades típicas de cada uma dessas seções.

Disponibilizando dados de recurso

Os repositórios de recursos fornecem dados de recursos para modelos. Esses modelos exigem uma visão consistente dos recursos durante o treinamento e a disponibilização. As definições dos recursos usados para ensinar um modelo devem corresponder exatamente aos recursos fornecidos no serviço online. Quando não coincidem, ocorre uma distorção entre os dados de treinamento e os de serviço , o que pode causar problemas catastróficos e difíceis de depurar no desempenho do modelo.

Tecton

Os repositórios de recursos abstraem a lógica e o processamento usados para gerar um recurso, oferecendo aos usuários uma maneira fácil e canônica de acessar todos os recursos de uma empresa de forma consistente em todos os ambientes em que são necessários.

Ao recuperar dados offline (por exemplo, para treinamento), os valores dos recursos são geralmente acessados por meio de SDKs de repositórios de recursos compatíveis com notebooks. Eles fornecem views pontuais e corretas do estado do mundo para cada exemplo usado para ensinar um modelo (também conhecido como "viagem do tempo").

Para a disponibilização online, um repositório de recursos entrega um único vetor de recursos de cada vez, composto pelos valores de recurso mais recentes. As respostas são servidas através de uma API de alto desempenho apoiada por um banco de dados de baixa latência.

Tecton

Armazenamento de dados para machine learning

Os repositórios de recursos persistem dados de recurso para permitir a recuperação por meio de camadas de feature serving. Normalmente, contêm uma camada de armazenamento online e outra offline para suportar os requisitos de diferentes sistemas de feature serving.

Tecton

As camadas de armazenamento offline são normalmente usadas para armazenar meses ou anos de dados de recursos para fins de treinamento. Os dados de repositórios de recursos offline geralmente são armazenados em data warehouses ou data lakes, como S3, BigQuery, Snowflake e Redshift. Estender um data lake ou data warehouse existente para armazenamento offline de recursos é geralmente preferível para evitar silos de dados.

Camadas de armazenamento online são usadas para persistir valores de recursos para consulta de baixa latência durante a inferência. Normalmente, armazenam apenas os valores de recursos mais recentes para cada entidade, modelando essencialmente o estado atual do mundo. As lojas online geralmente são eventualmente consistentes e não possuem requisitos de consistência rígidos para a maioria dos casos de uso de ML. Geralmente, são implementadas com armazenamentos de chave-valor como DynamoDB, Redis ou Cassandra.

Tecton

Os repositórios de recursos usam um modelo de dados baseado em entidades em que cada valor de recurso está associado a uma entidade (por exemplo, um usuário) e a um timestamp. Um modelo de dados baseado em entidades fornece uma estrutura mínima para dar suporte ao gerenciamento padronizado de recursos, se ajusta naturalmente aos fluxos de trabalho comuns de engenharia de recursos e permite simples queries de recuperação na produção.

Transformação de dados em machine learning

Tecton

Aplicações operacionais de ML exigem o processamento regular de novos dados em valores de recursos para que os modelos possam fazer previsões usando uma view atualizada do mundo. Os repositórios de recursos gerenciam e orquestram as transformações de dados que produzem esses valores, além de ingerir valores produzidos por sistemas externos. As transformações gerenciadas pelos repositórios de recursos são configuradas por definições em um registro de recursos comum (descrito abaixo).

A maioria das equipes que estão começando a usar os repositórios de recursos já tem pipelines de dados existentes que produzem valores de recursos. Isso torna muito importante que os repositórios de recursos sejam gradualmente adotáveis e tenham integrações de primeira classe com as plataformas de dados existentes, permitindo que as equipes operacionalizem imediatamente os pipelines de ETL existentes para seus casos de uso de ML.

 

Os repositórios de recursos comumente interagem com três tipos principais de transformações de dados:

Tipo de RecursoDefiniçãoFonte de dados de entrada comumExemplo
Transformação em loteTransformações que são aplicadas somente a dados em repouso.Data warehouse, data lake, banco de dadosPaís do usuário, categoria do produto
Transformação em transmissãoTransformações aplicadas a fontes de transmissãoKafka, Kinesis, PubSubNúmero de cliques por vertical por usuário nos últimos 30 minutos, número de views por listagem na última hora
Transformação sob demandaTransformações utilizadas para gerar recursos com base em dados disponíveis apenas no momento da previsão. Estes recursos não podem ser pré-computados.Aplicativo voltado para o usuárioO usuário está atualmente em um local compatível?

Um dos principais benefícios é facilitar o uso de diferentes tipos de recursos juntos nos mesmos modelos.

Tecton

Os modelos precisam acessar novos valores de recursos para inferência. Os repositórios de recursos fazem isso recalculando regularmente os recursos de forma contínua. Os jobs de transformações são orquestrados para garantir que novos dados sejam processados e transformados em novos valores de recursos. Esses jobs são executados em mecanismos de processamento de dados (por exemplo, Spark ou Pandas) aos quais o repositório de recursos está conectado.

O desenvolvimento de modelos introduz diferentes requisitos de transformação. Ao iterar sobre um modelo, novos recursos são frequentemente criados para serem usados em datasets de treinamento que correspondem a eventos históricos (por exemplo, todas as compras nos últimos 6 meses). Para permitir esses casos de uso, os repositórios de recursos facilitam a execução de "jobs de preenchimento retroativo" que geram e armazenam valores históricos de um recurso para treinamento. Alguns repositórios de recursos preenchem automaticamente os recursos recém-registrados para intervalos de tempo predefinidos para datasets de treinamento registrados.

O código de transformação é reutilizado em todos os ambientes, evitando distorções no serviço de treinamento e liberando as equipes de reescrever o código de um ambiente para o outro.

Os repositórios de recursos gerenciam todos os recursos relacionados aos recursos (compute, armazenamento, serviço) de forma holística ao longo do ciclo de vida do recurso. Ao automatizar tarefas de engenharia repetitivas necessárias para colocar um recurso em produção, elas possibilitam um caminho simples e rápido para a produção. Otimizações de gestão (por exemplo, aposentar recursos que não estão sendo usados por nenhum modelo, ou desduplicar transformações de recursos entre modelos) pode trazer eficiências significativas, especialmente à medida que as equipes crescem cada vez mais na complexidade de gerenciar recursos manualmente.

 

Monitoramento de Machine Learning

Quando algo dá errado em um sistema de ML, geralmente é um problema de dados. Os repositórios de recursos são posicionadas de forma única para detectar e destacar esses problemas. Eles podem calcular métricas sobre os recursos que armazenam e fornecem, descrevendo a correção e a qualidade. Os repositórios de recursos monitoram essas métricas para fornecer um sinal da saúde geral de um aplicativo de ML.

Tecton

Os dados de recursos podem ser validados com base em esquemas definidos pelo usuário ou outros critérios estruturais. A qualidade dos dados é acompanhada por meio do monitoramento de drift e da assimetria entre os conjuntos de dados de treinamento e de serviço. Por exemplo, os dados de recursos fornecidos aos modelos são comparados aos dados com os quais o modelo foi treinado para detectar inconsistências que possam degradar o desempenho do modelo.

Ao executar sistemas de produção, também é importante monitorar as métricas operacionais. Os repositórios de recursos acompanham métricas operacionais relacionadas à funcionalidade central — por exemplo, métricas relacionadas ao armazenamento de recursos (disponibilidade, capacidade, utilização, estagnação) ou feature serving (throughput, latência, taxas de erro). Outras métricas descrevem as operações de componentes importantes do sistema adjacente, como métricas operacionais para motores externos de processamento de dados (por exemplo, taxa de sucesso do job, throughput, atraso e taxa de processamento).

Os repositórios de recursos disponibilizam essas métricas para a infraestrutura de monitoramento existente. Isso permite que a integridade das aplicações de ML seja monitorada e gerenciada com as ferramentas de observabilidade existentes no ambiente de produção.

Com visibilidade de quais recursos são usados por quais modelos, os repositórios de recursos podem agregar automaticamente alertas e métricas de saúde em views relevantes para usuários, modelos ou consumidores específicos.

Não é essencial que todas os repositórios de recursos implementem esse monitoramento internamente, mas elas devem, pelo menos, fornecer as interfaces às quais os sistemas de monitoramento da qualidade dos dados podem se conectar. Diferentes casos de uso de ML podem ter necessidades de monitoramento diferentes e especializadas, portanto, a capacidade de conexão aqui é importante.

 

Registro de modelos de machine learning

Um componente crítico em todos os repositórios de recursos é um registro centralizado de definições e metadados padronizados de recursos. O registro atua como uma única fonte de verdade para informação sobre um recurso de uma organização.

Tecton

O registro é uma interface central para interações do usuário com o repositório de recursos. As equipes usam o registro como um catálogo comum para explorar, desenvolver, colaborar e publicar novas definições dentro e entre as equipes.

As definições no registro configuram o comportamento do sistema do repositório de recursos. Os jobs automatizados utilizam o registro para programar e configurar a ingestão de dados, transformações e armazenamento. Isso define a base de quais dados são armazenados no repositório de recursos e como eles são organizados. As APIs de serviço usam o registro para um entendimento consistente de quais valores de recursos devem estar disponíveis, quem deve ter acesso a eles e como devem ser fornecidos.

O registro permite que metadados importantes sejam anexados às definições de recursos. Isso proporciona uma forma de acompanhamento de propriedade, informação específica do projeto ou do domínio, e um caminho para fácil integração com sistemas adjacentes. Isso inclui informação sobre dependências e versões, que é usada para acompanhamento de linhagem.

Para auxiliar nos fluxos de trabalho comuns de depuração, compliance e auditoria, o registro funciona como um registro imutável do que está disponível analiticamente e o que está realmente em execução em produção.

Até agora, vimos os principais componentes mínimos de um repositório de recursos. Na prática, as empresas geralmente têm necessidades como compliance, governança e segurança que exigem recursos adicionais voltados para a empresa. Esse será o tema de uma futura postagem no blog.

Introdução aos repositórios de recursos

Vemos os repositórios de recursos como o centro do fluxo de dados em aplicativos modernos de ML. Eles estão rapidamente provando ser uma infraestrutura crítica para equipes de ciência de dados que colocam o ML em produção. Esperamos que o número de organizações que usarão repositórios de recursos quadruplique até 2028

Existem algumas opções para começar com repositórios de recursos:

  • O Feast é uma ótima opção se você já tem pipelines de transformações para compute seu recurso, mas precisa de uma ótima camada de armazenamento e serviço para ajudá-lo a usá-los na produção. Atualmente, o Feast é apenas para GCP, mas estamos trabalhando duro para disponibilizar o Feast como um repositório de recursos light-weight para todos os ambientes. Fique ligado.
  • Tecton é uma plataforma de recursos como serviço. Uma grande diferença entre Feast e Tecton é que Tecton permite transformações, então pipelines de recursos podem ser gerenciados de ponta a ponta dentro do Tecton. Tecton é uma oferta gerenciada e uma ótima escolha de repositório de recursos se você precisa de SLAs de produção, hosting, colaboração avançada, transformações gerenciadas (lotes/transmissão/tempo real) e/ou capacidades empresariais.

Escrevemos esta postagem no blog para fornecer uma definição comum de repositórios de recursos, à medida que elas emergem como um componente primário da pilha de ML operacional. Acreditamos que a indústria está prestes a presenciar uma explosão de atividades nessa área.

    Voltar ao glossário