MLOps Series Parte 1: A arte de testar sistemas de Machine Learning usando MLOps

O teste é um exercício importante no ciclo de vida do desenvolvimento de um sistema de Machine Learning para garantir operações de alta qualidade. Usamos testes para confirmar que algo funciona como deveria. Uma vez criados os testes, podemos executá-los automaticamente sempre que fizermos uma alteração em nosso sistema e continuar a melhorá-los ao longo do tempo. É uma boa prática recompensar a implementação de testes e identificar fontes de erros o mais cedo possível no ciclo de desenvolvimento para evitar o aumento das despesas de downstream e perda de tempo.

Hoje, veremos o teste de sistemas de Machine Learning de uma perspectiva de operações de Machine Learning (MLOps) e aprenderemos sobre boas práticas de caso e uma estrutura de teste que você pode usar para criar sistemas de aprendizado de máquina robustos, escaláveis ​​e seguros. Antes de nos aprofundarmos nos testes, vamos ver o que é MLOps e seu valor para o desenvolvimento de sistemas de aprendizado de máquina.

Modelo gráfico definindo e ilustrando MLOPs, o casamento de aprendizado de máquina e devops, que mostra os componentes, etapas, tarefas e fluxo de funcionamento do processo.

Figura 1: MLOps = DevOps + Machine Learning.

O desenvolvimento de software é interdisciplinar e está evoluindo para facilitar o Machine Learning. MLOps é um processo para fundir Machine Learning com desenvolvimento de software, combinando Machine Learning e DevOps. O MLOps visa criar, implantar e manter modelos de aprendizado de máquina na produção de maneira confiável e eficiente. O DevOps impulsiona as operações de Machine Learning. Vejamos como isso funciona na prática. Abaixo está uma ilustração do fluxo de trabalho do MLOps de como o aprendizado de máquina é ativado pelo DevOps para orquestrar soluções de aprendizado de máquina robustas, escaláveis ​​e seguras.

Gráfico que descreve os três estágios principais do fluxo de trabalho de MLOPs, começando com o pipeline de aprendizado de máquina, implantação e monitoramento.

Figura 2: Fluxo de trabalho do MLOps.

O fluxo de trabalho do MLOps é modular, flexível e pode ser usado para criar provas de conceito ou operacionalizar soluções de Machine Learning em qualquer empresa ou setor. Esse fluxo de trabalho é segmentado em três módulos: Construir, Implantar e Monitorar. Build é usado para desenvolver modelos de Machine Learning usando um pipeline de aprendizado de máquina. O módulo Deploy é usado para implantar modelos em ambientes de desenvolvimento, teste e produção. O módulo Monitor é usado para monitorar, analisar e controlar o sistema de Machine Learning para obter o máximo valor comercial. Os testes são realizados principalmente em dois módulos: os módulos Build e Deploy. No módulo Build, os dados são ingeridos para treinamento, o modelo é treinado usando dados ingeridos e, em seguida, é testado na etapa de teste do modelo.

1. Teste de modelo 

Nesta etapa, avaliamos o desempenho do modelo treinado em um conjunto separado de pontos de dados denominados dados de teste (que foram divididos e com versão na etapa de ingestão de dados). A inferência do modelo treinado é avaliada de acordo com as métricas selecionadas de acordo com o caso de uso. A saída desta etapa é um relatório sobre o desempenho do modelo treinado. No módulo Deploy, implantamos os modelos treinados para ambientes de desenvolvimento, teste e produção, respectivamente. Primeiro, começamos com o teste do aplicativo (feito em ambientes de desenvolvimento e teste).

2. Teste de aplicativos 

Antes de implantar um modelo de aprendizado de máquina na produção, é vital testar a robustez, escalabilidade e segurança do modelo. Portanto, temos a fase de “teste do aplicativo”, onde testamos rigorosamente todos os modelos treinados e o aplicativo em um ambiente semelhante à produção chamado de ambiente de teste ou preparação. Nesta fase, podemos realizar testes como testes A/B, testes de integração, testes de aceitação do usuário (UAT), teste de sombra ou teste de carga.

Abaixo está a estrutura para teste que reflete a hierarquia de necessidades para testar sistemas de Machine Learning.

Gráfico de pirâmide mostrando a hierarquia das necessidades de aprendizado de máquina, começando de baixo com tarefas que se enquadram em robustez, seguidas por tarefas que se enquadram em escalabilidade e, por último, no topo com tarefas que se enquadram em segurança.

Figura 3: Hierarquia de necessidades para testar sistemas de aprendizado de máquina.

Uma maneira de pensar em sistemas de Machine Learning é considerar a hierarquia de necessidades de Maslow. Os níveis mais baixos de uma pirâmide refletem a “sobrevivência” e o verdadeiro potencial humano é liberado somente depois que a sobrevivência básica e as necessidades emocionais são satisfeitas. Da mesma forma, testes que inspecionam robustez, escalabilidade e segurança garantem que o sistema não apenas funcione no nível básico, mas alcance seu verdadeiro potencial. Uma coisa a observar é que existem muitas formas adicionais de testes funcionais e não funcionais, incluindo testes de fumaça (verificações rápidas de integridade) e testes de desempenho (estresse), mas todos podem ser classificados como testes de sistema.

Nas próximas três postagens, abordaremos cada um dos três níveis amplos de teste, começando com robustez e passando para escalabilidade e, finalmente, segurança.

Para obter mais detalhes e aprender sobre a implementação prática, confira o livro Engineering MLOps ou aprenda como criar e implantar um modelo no Microsoft Azure Machine Learning usando MLOps no webinar sob demanda Get Time to Value with MLOps Best Practices . Além disso, confira nosso blog anunciado recentemente sobre aceleradores de solução (MLOps v2) para simplificar seu fluxo de trabalho MLOps no Azure Machine Learning.

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.