Feast é um feature store de código aberto projetado para fluxos de trabalho de aprendizado de máquina. Ele fornece uma plataforma centralizada para definir, gerenciar e servir features - as variáveis de entrada usadas por modelos de aprendizado de máquina - tanto para treinamento quanto para inferência online. Ao padronizar o armazenamento e o acesso a features, o Feast visa reduzir a sobrecarga operacional da engenharia de features e garantir consistência entre as features usadas durante o treinamento do modelo e aquelas servidas em produção.
O Feast foi inicialmente desenvolvido pela Gojek e lançado como um projeto de código aberto em 2019. Posteriormente, tornou-se um projeto sob o guarda-chuva de IA e Dados da Linux Foundation, com contribuições de empresas como a Tecton, que foi cofundada pelos criadores originais do Feast. O nome do projeto é um acrônimo para "Feature Store", refletindo seu propósito central.
Conceitos Principais
O Feast organiza features de aprendizado de máquina em uma estrutura estruturada. As entidades primárias incluem:
- Feature Views: Um agrupamento lógico de features que compartilham uma fonte de dados e uma janela de tempo comuns. Cada feature view define o esquema, os dados de origem e as transformações aplicadas para gerar features.
- Entities: As chaves que identificam os sujeitos das features, como um ID de usuário ou um ID de transação. As entities vinculam features a pontos de dados específicos.
- Feature Services: Uma coleção de feature views que podem ser usadas em conjunto para servir features para um modelo ou aplicação específica.
- Data Sources: Os sistemas de armazenamento subjacentes, como BigQuery, Redshift ou Kafka, dos quais os dados brutos são lidos para calcular features.
Arquitetura e Componentes
A arquitetura do Feast é composta por vários componentes-chave que trabalham juntos para gerenciar o ciclo de vida das features:
- Feast Core: O registro central que armazena metadados sobre feature views, entities e data sources. Ele atua como o sistema de registro para definições de features.
- Feast Serving: O serviço que fornece acesso de baixa latência a features para inferência online. Ele recupera features dos online stores e as retorna aos sistemas de serviço de modelos.
- Feast Job Service: Um componente que gerencia o cálculo de features a partir de fontes de dados em lote e streaming, populando tanto os offline stores quanto os online stores.
- Offline Store: Um sistema de armazenamento para dados históricos de features, tipicamente usado para conjuntos de dados de treinamento. Ele suporta junções corretas no ponto no tempo para evitar vazamento de dados.
- Online Store: Um sistema de armazenamento de acesso rápido, como Redis ou DynamoDB, que serve features em tempo real para previsões online.
Uso e Fluxo de Trabalho
O Feast é tipicamente usado no seguinte fluxo de trabalho:
- Definir Features: Cientistas de dados ou engenheiros definem feature views e entities usando arquivos de configuração em Python ou YAML.
- Aplicar: As definições são aplicadas ao registro do Feast, que atualiza os metadados.
- Materializar: O Feast calcula os valores das features a partir das fontes de dados e os armazena nos offline stores e online stores.
- Treinar: Features históricas são recuperadas do offline store para criar conjuntos de dados de treinamento.
- Servir: Durante a inferência, o sistema de serviço de modelos consulta o online store via Feast Serving para obter valores de features atualizados.
Este fluxo de trabalho permite que as equipes reutilizem features em vários modelos e garante que as mesmas definições de features sejam usadas tanto no treinamento quanto na produção.
Ecossistema e Integração
O Feast integra-se com uma variedade de ferramentas de dados e aprendizado de máquina. Ele suporta data warehouses em nuvem como Google Cloud BigQuery, Amazon Web Services Redshift e Microsoft Azure Synapse como offline stores. Para servir online, ele pode usar Redis, DynamoDB ou Firestore. O Feast também funciona com frameworks populares de aprendizado de máquina, como TensorFlow e PyTorch, e pode ser implantado em Kubernetes para escalabilidade.
O Feast é frequentemente comparado a outros feature stores, como Tecton e Hopsworks, mas se distingue por ser de código aberto e neutro em relação a fornecedores. Isso o torna uma escolha popular para organizações que desejam evitar dependência de fornecedores e ter controle total sobre sua infraestrutura de features.
Comunidade e Adoção
O Feast ganhou adoção significativa na comunidade de aprendizado de máquina. Ele é usado por empresas como Gojek, Walmart e Deliveroo para alimentar seus sistemas de recomendação e personalização. O projeto tem uma comunidade ativa no GitHub, com lançamentos regulares e contribuições de uma ampla gama de desenvolvedores. A documentação e os tutoriais do Feast são amplamente referenciados na comunidade de aprendizado de máquina como uma abordagem padrão para gerenciamento de features.
Em 2024, o Feast continua evoluindo com novos recursos e melhorias, incluindo melhor suporte para features de streaming e integração aprimorada com fluxos de trabalho de grandes modelos de linguagem. Espera-se que seu papel no ecossistema de inteligência artificial cresça à medida que mais organizações adotam feature stores para otimizar suas operações de ML.