As seguintes práticas recomendadas ajudam a planear e usar o Vertex AI Feature Store (antigo) em vários cenários. Este guia não se destina a ser exaustivo.
Funcionalidades do modelo que descrevem em conjunto várias entidades
Algumas funcionalidades podem aplicar-se a vários tipos de entidades. Por exemplo, pode ter um valor calculado que regista os cliques por produto por utilizador. Esta funcionalidade descreve em conjunto os pares produto-utilizador.
Neste caso, a prática recomendada é criar um tipo de entidade separado para agrupar funcionalidades partilhadas. Pode criar um tipo de entidade, como product-user
, para
conter funcionalidades partilhadas.
Para os IDs das entidades, concatene os IDs das entidades individuais, como os IDs das entidades do produto e do utilizador individuais. O único requisito é que os IDs têm de ser strings. Estes tipos de entidades combinados são denominados tipos de entidades compostos.
Para mais informações, consulte o artigo sobre como criar um tipo de entidade.
Use políticas IAM para controlar o acesso em várias equipas
Use funções e políticas de IAM para definir diferentes níveis de acesso a diferentes grupos de utilizadores. Por exemplo, os investigadores de ML, os cientistas de dados, os DevOps e os engenheiros de fiabilidade do site requerem acesso à mesma featurestore, mas o respetivo nível de acesso pode variar. Por exemplo, os utilizadores de DevOps podem precisar de autorizações para gerir um featurestore, mas não precisam de acesso ao conteúdo do featurestore.
Também pode restringir o acesso a um tipo de entidade ou featurestore específico através de políticas de IAM ao nível do recurso.
Por exemplo, imagine que a sua organização inclui as seguintes personagens fictícias. Uma vez que cada perfil fictício requer um nível de acesso diferente, é atribuída a cada perfil fictício uma função do IAM predefinida diferente. Também pode criar e usar as suas próprias funções personalizadas.
Perfil | Descrição | Função predefinida |
---|---|---|
Investigador de ML ou analista empresarial | Utilizadores que apenas veem dados em tipos de entidades específicos | roles/aiplatform.featurestoreDataViewer (pode ser concedida ao nível do projeto ou do recurso) |
Cientistas de dados ou engenheiros de dados | Utilizadores que trabalham com recursos de tipo de entidade específicos. Para os recursos que possuem, podem delegar o acesso a outros responsáveis. | roles/aiplatform.entityTypeOwner (pode ser concedida ao nível do projeto ou do recurso) |
TI ou DevOps | Utilizadores que têm de manter e otimizar o desempenho de featurestores específicos, mas não precisam de aceder aos dados. | roles/aiplatform.featurestoreInstanceCreator (pode ser
concedida ao nível do projeto ou do recurso) |
Data pipeline de importação de dados automatizada | Aplicações que escrevem dados em tipos de entidades específicos. | roles/aiplatform.featurestoreDataWriter (pode ser concedida
ao nível do projeto ou do recurso) |
Engenheiro de fiabilidade de sites | Utilizadores que gerem featurestores específicas ou todas as featurestores num projeto | roles/aiplatform.featurestoreAdmin (pode ser concedida ao nível do projeto ou do recurso) |
Global (qualquer utilizador do Vertex AI Feature Store [antigo]) | Permitir que os utilizadores vejam e pesquisem funcionalidades existentes. Se encontrarem uma funcionalidade com a qual querem trabalhar, podem pedir acesso aos proprietários da funcionalidade. Para os Google Cloud utilizadores da consola, esta função também é necessária para ver a página de destino da Vertex AI Feature Store (antiga), a página de tarefas de importação e a página de tarefas de publicação em lote. |
Conceda a função roles/aiplatform.featurestoreResourceViewer
ao nível do projeto. |
Monitorize e ajuste os recursos em conformidade para otimizar a importação em lote
As tarefas de importação em lote requerem trabalhadores para processar e escrever dados, o que pode aumentar a utilização da CPU do seu Feature Store e afetar o desempenho da publicação online. Se preservar o desempenho da publicação online for uma prioridade, comece com um trabalhador para cada dez nós de publicação online. Durante a importação, monitorize a utilização da CPU do armazenamento online. Se a utilização da CPU for inferior ao esperado, aumente o número de trabalhadores para tarefas de importação em lote futuras para aumentar o débito. Se a utilização da CPU for superior ao esperado, aumente o número de nós de publicação online para aumentar a capacidade da CPU ou diminua a quantidade de trabalhadores de importação em lote, o que pode reduzir a utilização da CPU.
Se aumentar o número de nós de publicação online, tenha em atenção que o Vertex AI Feature Store (antigo) demora cerca de 15 minutos a atingir o desempenho ideal após a atualização.
Para mais informações, consulte os artigos atualize um Feature Store e importe em lote valores de funcionalidades.
Para mais informações sobre a monitorização da Feature Store, consulte as métricas do Cloud Monitoring.
Use o campo disableOnlineServing
quando preencher dados históricos
O preenchimento é o processo de importação de valores de caraterísticas históricos e não afeta os valores de caraterísticas mais recentes. Neste caso, pode desativar a publicação online, o que ignora quaisquer alterações à loja online. Para mais informações, consulte o artigo Preencha dados do histórico.
Use o dimensionamento automático para reduzir os custos durante as flutuações de carga
Se usar o Vertex AI Feature Store (antigo) extensivamente e encontrar flutuações de carga frequentes nos seus padrões de tráfego, use o dimensionamento automático para otimizar os custos. O dimensionamento automático permite que o Vertex AI Feature Store (antigo) reveja os padrões de tráfego e ajuste automaticamente o número de nós para cima ou para baixo, consoante a utilização da CPU, em vez de manter um número elevado de nós. Esta opção funciona bem para padrões de tráfego que encontram um crescimento e um declínio graduais.
Para mais informações sobre o ajuste de escala automático, consulte as opções de ajuste de escala.
Teste o desempenho dos nós de publicação online para publicação em tempo real
Pode validar o desempenho do featurestore durante a publicação online em tempo real testando o desempenho dos nós de publicação online. Pode realizar estes testes com base em vários parâmetros de testes de referência, como QPS, latência e API. Siga estas diretrizes para testar o desempenho dos nós de publicação online:
Execute todos os clientes de teste a partir da mesma região, de preferência no Compute Engine ou no Google Kubernetes Engine: isto evita discrepâncias devido à latência da rede resultante de saltos entre regiões.
Use a API gRPC no SDK: a API gRPC tem um desempenho melhor do que a API REST. Se precisar de usar a API REST, ative a opção HTTP keep-alive para reutilizar as ligações HTTP. Caso contrário, cada pedido resulta na criação de uma nova ligação HTTP, o que aumenta a latência.
Execute testes de maior duração: execute testes com uma duração superior (15 minutos ou mais) e um mínimo de 5 QPS para calcular métricas mais precisas.
Adicione um período de "preparação": se iniciar os testes após um período de inatividade, pode observar uma latência elevada enquanto as ligações são restabelecidas. Para ter em conta o período inicial de latência elevada, pode designar este período como um "período de preparação", quando as leituras de dados iniciais são ignoradas. Em alternativa, pode enviar uma taxa baixa, mas consistente, de tráfego artificial para o Feature Store para manter a ligação ativa.
Se necessário, ative o dimensionamento automático: se prevê um crescimento e um declínio graduais no seu tráfego online, ative o dimensionamento automático. Se escolher o dimensionamento automático, o Vertex AI altera automaticamente o número de nós de serviço online com base na utilização da CPU.
Para mais informações sobre a publicação online, consulte o artigo Publicação online. Para mais informações acerca dos nós de publicação online, consulte o artigo Nós de publicação online.
Especifique uma hora de início para otimizar os custos de armazenamento offline durante o fornecimento em lote e a exportação em lote
Para otimizar os custos de armazenamento offline durante a publicação em lote e a exportação em lote, pode especificar um startTime
no seu pedido batchReadFeatureValues
ou exportFeatureValues
. O pedido executa uma consulta num subconjunto dos dados de atributos disponíveis, com base no startTime
especificado. Caso contrário, o pedido consulta todo o volume disponível de dados de funcionalidades, o que resulta em custos de utilização de armazenamento offline elevados.
O que se segue?
Saiba mais sobre as práticas recomendadas para implementar modelos de ML preparados de forma personalizada no Vertex AI.