MLOps Série Parte 3: Testando a escalabilidade de sistemas seguros de Machine Learning usando MLOps

A capacidade de um sistema de se ajustar às mudanças adicionando ou removendo recursos para atender à demanda é conhecida como escalabilidade. Aqui estão alguns testes para verificar a escalabilidade do seu modelo.

Teste de sistema

Os testes de sistema são realizados para testar a robustez do projeto de um sistema para determinadas entradas e saídas esperadas (por exemplo, um pipeline MLOps , inferência). Os testes de aceitação (para atender aos requisitos do usuário) podem ser realizados como parte dos testes do sistema.

Teste A/B

O teste A/B é realizado enviando tráfego de produção para sistemas alternativos que serão avaliados. O teste de hipótese estatística é usado para decidir qual sistema é melhor.

Modelo de teste AB em MLOPs.

Figura 1: Teste A/B

Teste canário

O teste canário é feito entregando a maior parte do tráfego de produção ao sistema atual e enviando o tráfego de um pequeno grupo de usuários para o novo sistema que estamos avaliando.

Modelo de teste Canary em MLOPs.

Figura 2: Teste Canário

Teste de sombra

O envio do mesmo tráfego de produção para vários sistemas é conhecido como teste de sombra. O teste de sombra é simples de monitorar e valida a consistência operacional.

Modelo de teste Shadow em MLOPs.

Figura 3: Teste de sombra

Teste de carga

O teste de carga é uma técnica para simular uma carga real em software, aplicativos e sites. O teste de carga simula vários usuários usando um aplicativo de software para simular o uso esperado do programa. Ele mede o seguinte:

•    Resistência: Se um aplicativo puder resistir à carga de processamento, espera-se que ele tenha que resistir por um longo período.
•    Volume: O aplicativo é submetido a um grande volume de dados para testar se o desempenho do aplicativo é esperado.
•    Estresse: Avaliar a capacidade da aplicação de manter um determinado grau de eficácia em situações adversas.
•    Desempenho: Determinar o desempenho de um sistema em termos de capacidade de resposta e estabilidade sob uma carga de trabalho específica.
•    Escalabilidade: mede a capacidade do aplicativo de aumentar ou diminuir a escala em reação a um aumento no número de usuários.

Testes de carga podem ser realizados para testar os fatores acima usando vários aplicativos de software. Vejamos um exemplo de teste de carga de um microsserviço de IA usando locust.io. O painel da Figura 4 reflete o total de solicitações feitas ao microsserviço por segundo, bem como os tempos de resposta. Usando esses insights, podemos avaliar o desempenho do microsserviço de IA sob uma determinada carga.

Captura de tela dos gráficos de teste de carga no Locust.io.

Figura 4: Teste de carga usando Locust.io

Saber mais

Para saber mais sobre a implementação do teste acima, assista a este vídeo de demonstração e veja o código de teste de carga de microsserviços de IA usando locust.io. Você pode verificar o código no repositório GitHub de microsserviços de teste de carga . Para obter mais detalhes e aprender sobre a implementação prática, confira o livro Engineering MLOps ou aprenda como construir e implantar um modelo no Azure Machine Learning usando MLOps no webinar sob demanda “Get Time to Value with MLOps Best Practices” .

Arbit: Especialista em MLOps!

Pode não ser parecer fácil gerar valor para seus dados, mas a Arbit, pode ajudá-lo. Há mais de 20 anos atuando com inteligência de dados, a Arbit possui especialistas para implementar as melhores soluções ao seu ambiente de negócios. Fale conosco agora mesmo

Deixe um comentário

O seu endereço de e-mail não será publicado.