Como testar pipelines em produção

Parabéns! Você implantou o preditor de aparência global de unicórnios. Você quer que o preditor execute 24 horas sem nenhum problema. Você logo percebe que precisa monitorar seu pipeline de ML. O monitoramento de todos os seus componentes pode parecer complicado, mas vamos analisar os requisitos e as soluções.

Procurar desvio de treinamento/exibição

O desvio de treinamento/exibição significa que os dados de entrada diferem entre treinamento e disponibilização. A tabela a seguir descreve os dois tipos importantes de desvio:

Tipo Definição Exemplo Solução
Desvio do esquema Os dados de entrada de treinamento e de disponibilização não estão de acordo com o mesmo esquema. O formato ou a distribuição dos dados de exibição muda enquanto o modelo continua a treinar com dados antigos. Use o mesmo esquema para validar dados de treinamento e disponibilização. Verifique as estatísticas não verificadas pelo seu esquema separadamente, como a fração dos valores ausentes
Desvio de atributo Os dados da engenharia são diferentes entre o treinamento e a exibição. O código de engenharia de atributos varia entre o treinamento e a disponibilização, produzindo diferentes dados de engenharia. Semelhante à distorção de esquema, aplique as mesmas regras estatísticas entre o treinamento e a disponibilização de dados de engenharia. Rastrear o número de recursos distorcidos detectados e a proporção de exemplos distorcidos por recurso.

Monitoramento do pipeline ao longo da idade do modelo

Se os dados de exibição evoluírem com o tempo, mas seu modelo não for treinado novamente regularmente, você verá uma diminuição na qualidade do modelo. Monitore o tempo desde que o modelo foi treinado novamente em novos dados e defina uma idade limite para alertas. Além de monitorar a idade do modelo na disponibilização, é preciso monitorar a idade do modelo em todo o pipeline para capturar paradas de pipeline.

Testar se os pesos e saídas do modelo são numericamente estáveis

Durante o treinamento do modelo, seus pesos e saídas de camada não podem ser NaN ou Inf. Escreva testes para verificar os valores NaN e Inf dos seus pesos e saídas de camada. Além disso, teste se mais da metade das saídas de uma camada é zero.

Monitorar o desempenho do modelo

Seu preditor de aparência de unicórnio está em alta do que o esperado. Você está recebendo muitas solicitações de previsão e ainda mais dados de treinamento. Você acha isso ótimo até perceber que seu modelo está gastando mais memória e tempo para treinar. Para monitorar o desempenho do modelo, siga estas etapas:

  • Acompanhe o desempenho do modelo por versões de código, modelo e dados. Esse rastreamento permite identificar a causa exata de qualquer degradação no desempenho.
  • Teste as etapas de treinamento por segundo para uma nova versão de modelo em relação à versão anterior e em relação a um limite fixo.
  • Identifique os vazamentos de memória definindo um limite para uso da memória.
  • Monitorar os tempos de resposta da API e rastrear os percentis. Embora os tempos de resposta da API possam estar fora do seu controle, respostas lentas podem causar métricas reais ruins.
  • Monitore o número de consultas respondidas por segundo.

Testar a qualidade do modelo dinâmico nos dados exibidos

Você validou seu modelo. E se cenários reais, como o comportamento do unicórnio, mudarem após a gravação dos dados de validação? Em seguida, a qualidade do modelo veiculado será reduzida. No entanto, a qualidade do teste na exibição é difícil porque os dados reais nem sempre são rotulados. Se os dados de exibição não estiverem rotulados, considere estes testes:

  • Gere identificadores usando avaliadores humanos.

  • Investigar modelos que mostram um viés estatístico significativo nas previsões. Consulte Classificação: viés de previsão.

  • Acompanhe métricas reais para seu modelo. Por exemplo, se você estiver classificando spam, compare suas previsões com o spam denunciado pelo usuário.

  • Reduza a possível divergência entre o treinamento e a disponibilização de dados ao disponibilizar uma nova versão de modelo em uma fração das suas consultas. Ao validar o novo modelo de exibição, troque gradualmente todas as consultas para a nova versão.

Usando esses testes, lembre-se de monitorar a degradação repentina e lenta da qualidade da previsão.