SOS Vertex AI Feature Store: as top 6 dúvidas 🚨

Amanda Furtado Brinhosa
google-cloud-brasil
5 min readNov 7, 2022

Quando se fala em MLOps, um assunto que tem sido destaque é o gerenciamento de features utilizando uma Feature Store. Aqui no blog já tivemos um artigo super prático sobre a Vertex AI Feature Store. O objetivo do texto de hoje é aprofundar um pouco mais sobre o tópico, trazendo algumas das principais dúvidas que recebemos aqui em Google Cloud.

🧐 Afinal, como funciona essa Feature Store?

Antes de mais nada, é necessário reforçar que não é responsabilidade da Feature Store fazer o processo de feature engineering, que é o cálculo das features em si. A Feature Store é uma ferramenta que otimiza o consumo e armazenamento para features que são onerosas de se computar e que podem ser reutilizadas entre diferentes modelos.

Uma implementação de Feature Store geralmente virá empacotada em forma de API. Quando se fala em consumo em lote (batch), não há uma preocupação tão grande, principalmente para casos de uso em que os volumes de dados não são tão altos. Muitas vezes, uma ferramenta mais simples que faça processos de ELT, resolve. Já quando se fala em consumo online, aí sim se começa a perceber uma boa vantagem de escolher uma Feature Store. É muito difícil implementá-la do zero, ainda mais considerando requisitos de baixa latência. Outra dificuldade é implementar o rastreamento de pontos do passado.

Na animação abaixo, temos a representação da Vertex AI Feature Store, que justamente abstrai todas as operações em chamadas de API. Destaque para a ingestão de features por streaming, que foi recém lançada no Google Cloud Next ‘22! 😎

Arquitetura Funcional da Vertex AI Feature Store: agora com ingestão por streaming!

⏸️ É possível pausar a Vertex AI Feature Store?

Para alegria geral da nação: SIM! Mas vamos com calma.

Importante dizer que a parte online (tanto storage quanto serving) é completamente opcional. Se não existe caso de uso, por qual motivo ter essa parte da infraestrutura? Porém, se a mesma for provisionada e depois pausada (ou seja, escalar para zero), os dados armazenados online serão deletados e não podem ser restaurados. Antes de fazer essa operação, é necessário exportar os dados da Feature Store e isso pode ser feito via snapshot, que é apenas um recorte, ou de maneira integral. E claro, sem dados armazenados, não há o que consumir, então é preciso refazer a ingestão antes de subir a parte online novamente.

🧑‍💻 Como é o gerenciamento entre online e offline?

No momento da ingestão é feito o controle de onde os dados serão escritos. Como colocado anteriormente, a parte online é completamente opcional. É preciso se atentar apenas em como a ingestão será feita (momento do dia com menor consumo, por exemplo), uma vez que isso pode afetar a performance do consumo online. Se não existe o armazenamento online, a ingestão é feita apenas na parte offline e a performance depende apenas do número de workers associado (que são completamente independentes dos nós online!).

Outro ponto de atenção é quanto ao armazenamento. A parte online possui um limite de 5TB para cada nó (online serving node). Já a offline é ilimitada, tendo apenas limite de retenção (4000 dias). Como qualquer outra ferramenta, vale ter cuidado com as cotas e limites.

🚀 Como é a escalabilidade?

Quando ativado o autoscaling, a Feature Store irá automaticamente mudar a quantidade de nós baseada no uso de CPU. Além de auxiliar na performance, também ajuda no quesito custo. Também é possível alocar um número fixo de nós disponíveis. Porém, é importante reforçar que a escalabilidade da Feature Store funciona melhor quando os padrões de tráfego são graduais (ou seja, sem picos curtos de consumo), independente se o ajuste é feito automático ou manual.

📝 Como é o processo de ingestão?

Como anunciado no Google Cloud Next ’22, é possível fazer a ingestão via streaming, com requisições para a API da Feature Store. Quando falamos em ingestão por lotes, podemos utilizar uma tabela do BigQuery, arquivos CSV ou Avro que estão no Cloud Storage ou diretamente de Pandas Dataframes.

A figura abaixo ilustra como funciona na prática: primeiro temos o trabalho de feature engineering, que pode ser feito por uma diversidade de ferramentas, dependendo do caso de uso. Depois que os dados já foram processados (ou seja, as features calculadas), aí fazemos a ingestão via API por streaming ou em lote.

Ilustração do processo de ingestão de features para a Feature Store

O ponto de atenção aqui é sobre regiões. Os dados da fonte precisam estar na mesma região ou multi-região da Feature Store. Ou seja, se a Feature Store está em us-central1, ela só conseguirá ingerir dados de us-central1 ou da multi-região US.

🤔 Por que eu escolheria a Vertex AI Feature Store?

Apesar de falar do ponto de vista da Vertex AI Feature Store, já que as funcionalidades podem variar com outras disponíveis na comunidade e mercado, de forma geral podemos destacar algumas questões. Primeiro de tudo, construir integrações que sejam consistentes para lidar com diferenças entre offline e online é bastante difícil. Outra complexidade é a recuperação de features no tempo (point-in-time lookups), que não é trivial como apenas colocar uma timestamp associada ao dado. Além disso, ter um processo de monitoramento de features com alertas é essencial para a saúde de modelos de IA.

Vale ter atenção ainda à integração da ferramenta escolhida. No caso da Vertex AI Feature Store, a integração com outros produtos Google Cloud e com a própria Vertex AI, facilitam muito o trabalho, gerenciamento e manutenção para os times.

Conclusão

Neste artigo, conseguimos aprofundar um pouco melhor sobre as funcionalidades da Vertex AI Feature Store. Com uma boa avaliação dos casos de uso, do cenário atual de cada empresa e seus objetivos futuros, é possível até reduzir custos. Ao evitar problemas de consistência de dados entre treino e produção e compartilhando features entre diferentes times (evitando retrabalho), o tempo pode ser investido em outras tarefas mais relevantes, como no planejamento do retreino de modelos e com maior assertividade.

Se você já utilizou outras Feature Stores, que dica compartilharia? Quais as dúvidas mais recorrentes? Bora discutir! 🙋

--

--