Testando um modelo

Machine Learning de ponta a ponta

Joshua Stapleton

Machine Learning Engineer

Deployment

  • Próxima etapa no ciclo de ML
  • Após treino e avaliação
  • Disponibilizar o modelo para uso

Fase de deployment no ciclo de vida de ML

Machine Learning de ponta a ponta

Testes

  • Testes:
    • Modelo não cai
    • Retorna saídas razoáveis na inferência
    • Retorna em tempo razoável

Fase de deployment no ciclo de vida de ML

Machine Learning de ponta a ponta

Unittest

  • Testes
    • Sinalizar eventos anômalos/inesperados
    • Verificar se o modelo atua como esperado

 

  • unittest
    • Biblioteca padrão do Python para testes
    • Caso de teste: tipo de teste
    • Método de caso: teste único de um aspecto
Machine Learning de ponta a ponta

Uso do unittest

import unittest


class TestModelInference(unittest.TestCase):
def setUp(self): self.model = fitted_model self.X_test = X_test
def test_prediction_output_shape(self): y_pred = self.model.predict(self.X_test) self.assertEqual(y_pred.shape[0], self.X_test.shape[0])
if __name__ == '__main__': unittest.main()
Machine Learning de ponta a ponta

Uso do unittest (cont.)

 

    def test_input_values(self):
        print("Running test_input_values test case")

        # Get inputs (each row in testing set)
        for input in X_test: 
            for value in input:
                # if value is cholestrol, for example:
                self.assertIn(value, [0, 500])
Machine Learning de ponta a ponta

Testes em Python

Machine Learning de ponta a ponta

O que fazer e não fazer em testes

Boas práticas

  • NÃO...
    • Escrever testes demais
    • Escrever testes redundantes
    • Testar componentes muito confiáveis

 

  • SIM...
    • Escrever testes para aumentar a confiabilidade
    • Testar para checar/alinhar expectativas
    • Testar novas funcionalidades
Machine Learning de ponta a ponta

Benefícios dos testes

Benefícios do TDD

  • Confiança no desenvolvimento
    • Iteração estável
    • Menos preocupação com bugs
  • Desempenho
    • Confiabilidade
    • Pronto para produção
Machine Learning de ponta a ponta

Vamos praticar!

Machine Learning de ponta a ponta

Preparing Video For Download...