Implantar um modelo para previsões em tempo real, de baixa latência (<100ms) com alta disponibilidade.
→Implantar o modelo em um Azure ML Managed Online Endpoint.
Por quê: Managed online endpoints são um serviço totalmente gerenciado otimizado para inferência em tempo real, fornecendo auto-scaling, balanceamento de carga, implantações blue-green e monitoramento integrado.
Referência↗
Pontuar um grande volume de dados (milhões de registros) de forma assíncrona, com a eficiência de custo sendo uma prioridade.
→Implantar o modelo em um Azure ML Batch Endpoint.
Por quê: Batch endpoints são projetados para pontuação assíncrona de grandes conjuntos de dados com alta taxa de transferência. Eles podem usar clusters de computação escaláveis que desligam para zero quando ociosos, otimizando custos.
Implantar uma nova versão do modelo minimizando o risco. É necessário mudar gradualmente o tráfego para a nova versão e permitir fácil reversão.
→Usar um único managed online endpoint com duas implantações (por exemplo, "blue" para o modelo antigo, "green" para o novo). Usar divisão de tráfego para controlar a porcentagem de requisições indo para cada implantação.
Por quê: Este padrão de implantação blue-green permite implantações seguras e sem tempo de inatividade. Você pode validar o novo modelo em uma pequena parte do tráfego ao vivo antes de se comprometer com uma mudança completa.
Empacotar um modelo com suas dependências e artefatos de forma padronizada e agnóstica a frameworks para implantação.
→Usar o formato de modelo MLflow. Ao registrar o modelo, incluir o arquivo conda.yaml ou requirements.txt e quaisquer artefatos de código necessários.
Por quê: MLflow oferece uma convenção padrão de empacotamento de modelos que o Azure ML compreende nativamente. Isso simplifica a implantação, pois o Azure ML pode construir automaticamente o ambiente necessário.
Um modelo implantado apresenta alta latência porque carrega arquivos auxiliares grandes (por exemplo, um featurizer grande) em cada requisição de previsão.
→Mover a lógica de carregamento de arquivos da função `run()` para a função `init()` no script de pontuação.
Por quê: A função `init()` é executada apenas uma vez quando o container inicia. Carregar ativos aqui os torna globalmente disponíveis para todas as chamadas `run()`, evitando carregamentos redundantes em cada requisição.
Um endpoint em tempo real experimenta tráfego variável (picos altos, vales baixos). É necessário manter o desempenho de forma econômica.
→Configurar auto-scaling na implantação do managed online endpoint. Definir um número mínimo e máximo de instâncias e uma regra de escalabilidade baseada na utilização da CPU ou latência da requisição.
Por quê: O auto-scaling ajusta automaticamente o número de instâncias de computação para corresponder à carga de tráfego, garantindo desempenho durante os picos e economizando custos durante as quedas.
Uma implantação de modelo requer bibliotecas de sistema específicas, versões customizadas do CUDA ou um servidor de inferência customizado não presente nas imagens padrão do Azure ML.
→Criar um Dockerfile customizado que estenda uma imagem base de inferência do Azure ML, adicionar as dependências necessárias, construir e enviá-lo para o Azure Container Registry. Referenciar esta imagem no ambiente de implantação.
Por quê: Estender uma imagem base oferece controle total sobre o ambiente de execução, mantendo a compatibilidade com a infraestrutura de serviço do Azure ML.
Automatizar o ciclo de vida de ML de ponta a ponta, incluindo retreinamento, avaliação e implantação, acionado por mudanças de código ou dados.
→Usar Azure DevOps ou GitHub Actions integrado com o Azure ML CLI v2 para criar um pipeline de CI/CD. O pipeline deve incluir um quality gate que compare o novo modelo com uma linha de base antes da implantação.
Por quê: Este padrão MLOps automatiza o fluxo de trabalho de ML, garantindo consistência, qualidade e iteração rápida. O quality gate previne regressões de desempenho do modelo.
O desempenho de um modelo em produção está degradando devido a mudanças na distribuição dos dados de entrada. O modelo precisa ser retreinado automaticamente quando um drift significativo é detectado.
→Configurar um monitor de data drift do Azure ML no endpoint. Configurar um alerta que acione um Azure Logic App ou Azure Function, que por sua vez inicia o pipeline de retreinamento.
Por quê: Isso cria um sistema MLOps de ciclo fechado que mantém automaticamente a relevância do modelo em resposta a padrões de dados em mudança, sem intervenção manual.
Uma nova versão de modelo implantada é encontrada como defeituosa em produção. É necessário reverter rapidamente para a versão estável anterior.
→Se estiver usando uma implantação blue-green, redirecione 100% do tráfego de volta para a implantação estável. Alternativamente, atualize o endpoint para reimplantar a versão anterior do modelo do registro de modelos.
Por quê: A mudança de tráfego proporciona um rollback instantâneo. Reimplantar uma versão do registro também é uma maneira rápida e confiável de restaurar um estado conhecido e funcional.
É necessário monitorar tanto a saúde operacional (latência, erros) quanto a qualidade preditiva (data drift, acurácia) de um modelo implantado.
→Habilitar a integração do Application Insights no endpoint para métricas operacionais. Configurar a coleta de dados e o monitoramento de data drift do Azure ML para métricas de qualidade do modelo.
Por quê: Esta abordagem de duas frentes fornece uma visão completa da saúde do modelo. O App Insights rastreia o desempenho do sistema, enquanto a coleta de dados/monitoramento de drift rastreia o desempenho preditivo do modelo.
O endpoint do modelo está falhando devido a dados de entrada malformados ou inesperados dos clientes.
→Implementar lógica de validação de entrada dentro da função `run()` do script de pontuação. Verificar tipos de dados, intervalos e estruturas, e retornar um erro significativo (por exemplo, HTTP 400) para requisições inválidas.
Por quê: A validação no lado do servidor protege o modelo de falhas e fornece feedback claro e imediato aos consumidores da API, tornando o serviço mais robusto.