1 of 57

O papel do QA em Machine Learning

Giulia Verruck Tortola

Analista de Quality Assurance

Globalcode – Open4education

Globalcode – Open4education

2 of 57

Agenda

      • Quem sou eu?
      • O que é Machine Learning?
      • Qualidade em Machine Learning
      • Desafios
      • Testes para Machine Learning

Globalcode – Open4education

3 of 57

Giulia Verruck Tortola

Globalcode – Open4education

4 of 57

O que é Machine Learning?

Inteligência Artificial

Aprendizado de Máquina/�Machine Learning

Globalcode – Open4education

5 of 57

O que é Machine Learning?

Inteligência Artificial

Aprendizado de Máquina/�Machine Learning

Globalcode – Open4education

6 of 57

O que é Machine Learning?

Inteligência Artificial

Aprendizado de Máquina/�Machine Learning

Globalcode – Open4education

7 of 57

O que é Machine Learning?

Inteligência Artificial

Aprendizado de Máquina/�Machine Learning

Globalcode – Open4education

8 of 57

O que é Machine Learning?

POR REFORÇO

Tentativa e erro, recebendo feedbacks positivos ou negativos em relação às suas ações.

NÃO SUPERVISIONADO

Dados não rotulados, buscando identificar padrões ou estruturas ocultas nos dados

SUPERVISIONADO

Dados rotulados (dados de entrada com suas respectivas saídas esperadas)

Globalcode – Open4education

9 of 57

O que é Machine Learning?

POR REFORÇO

Tentativa e erro, recebendo feedbacks positivos ou negativos em relação às suas ações.

NÃO SUPERVISIONADO

Dados não rotulados, buscando identificar padrões ou estruturas ocultas nos dados

SUPERVISIONADO

Dados rotulados (dados de entrada com suas respectivas saídas esperadas)

Globalcode – Open4education

10 of 57

O que é Machine Learning?

POR REFORÇO

Tentativa e erro, recebendo feedbacks positivos ou negativos em relação às suas ações.

NÃO SUPERVISIONADO

Dados não rotulados, buscando identificar padrões ou estruturas ocultas nos dados

SUPERVISIONADO

Dados rotulados (dados de entrada com suas respectivas saídas esperadas)

Globalcode – Open4education

11 of 57

O que é Machine Learning?

POR REFORÇO

Tentativa e erro, recebendo feedbacks positivos ou negativos em relação às suas ações.

NÃO SUPERVISIONADO

Dados não rotulados, buscando identificar padrões ou estruturas ocultas nos dados

SUPERVISIONADO

Dados rotulados (dados de entrada com suas respectivas saídas esperadas)

Globalcode – Open4education

12 of 57

O que é Machine Learning?

Reconhecimento� de padrões

Detecção �de Fraudes

Previsão

de demanda

Diagnóstico

Médico

Globalcode – Open4education

13 of 57

O que é Machine Learning?

Reconhecimento� de padrões

Detecção �de Fraudes

Previsão

de demanda

Diagnóstico

Médico

Globalcode – Open4education

14 of 57

Qualidade para Machine Learning

Não é apenas testar

Processo de qualidade

Foco no cliente final

Globalcode – Open4education

15 of 57

Qualidade para Machine Learning

Não é apenas testar

Processo de qualidade

Foco no cliente final

Globalcode – Open4education

16 of 57

Qualidade para Machine Learning

Não é apenas testar

Processo de qualidade

Foco no cliente final

Globalcode – Open4education

17 of 57

Qualidade para Machine Learning

Não é apenas testar

Processo de qualidade

Foco no cliente final

Globalcode – Open4education

18 of 57

Desafios

  • Localização dos pontos fracos
  • Complexo
  • Conhecer bem o processo interno e o ciclo de vida de Machine Learning

Globalcode – Open4education

19 of 57

Machine Learning Life Cycle

Business Requirements

Analytics Approach

Data Requirements

Data Collection

Exploratory Data Analysys

Data Preparation

Model Selection

Model Evaluation

Model Deployment

Model Tunning

Project Review

Planning

Data

Development

Deployment

Globalcode – Open4education

20 of 57

Machine Learning Life Cycle

Business Requirements

Analytics Approach

Data Requirements

Data Collection

Exploratory Data Analysys

Data Preparation

Model Selection

Model Evaluation

Model Deployment

Model Tunning

Project Review

Planning

Data

Development

Deployment

Globalcode – Open4education

21 of 57

Machine Learning Life Cycle

Business Requirements

Analytics Approach

Data Requirements

Data Collection

Exploratory Data Analysys

Data Preparation

Model Selection

Model Evaluation

Model Deployment

Model Tunning

Project Review

Planning

Data

Development

Deployment

Globalcode – Open4education

22 of 57

Machine Learning Life Cycle

Business Requirements

Analytics Approach

Data Requirements

Data Collection

Exploratory Data Analysys

Data Preparation

Model Selection

Model Evaluation

Model Deployment

Model Tunning

Project Review

Planning

Data

Development

Deployment

Globalcode – Open4education

23 of 57

Machine Learning Life Cycle

Business Requirements

Analytics Approach

Data Requirements

Data Collection

Exploratory Data Analysys

Data Preparation

Model Selection

Model Evaluation

Model Deployment

Model Tunning

Project Review

Planning

Data

Development

Deployment

Globalcode – Open4education

24 of 57

Machine Learning Life Cycle

Business Requirements

Analytics Approach

Data Requirements

Data Collection

Exploratory Data Analysys

Data Preparation

Model Selection

Model Evaluation

Model Deployment

Model Tunning

Project Review

Planning

Data

Development

Deployment

Globalcode – Open4education

25 of 57

Machine Learning Life Cycle

Business Requirements

Analytics Approach

Data Requirements

Data Collection

Exploratory Data Analysys

Data Preparation

Model Selection

Model Evaluation

Model Deployment

Model Tunning

Project Review

Planning

Data

Development

Deployment

Globalcode – Open4education

26 of 57

Machine Learning Life Cycle

Business Requirements

Analytics Approach

Data Requirements

Data Collection

Exploratory Data Analysys

Data Preparation

Model Selection

Model Evaluation

Model Deployment

Model Tunning

Project Review

Planning

Data

Development

Deployment

Globalcode – Open4education

27 of 57

Machine Learning Life Cycle

Business Requirements

Analytics Approach

Data Requirements

Data Collection

Exploratory Data Analysys

Data Preparation

Model Selection

Model Evaluation

Model Deployment

Model Tunning

Project Review

Planning

Data

Development

Deployment

Globalcode – Open4education

28 of 57

Machine Learning Life Cycle

Business Requirements

Analytics Approach

Data Requirements

Data Collection

Exploratory Data Analysys

Data Preparation

Model Selection

Model Evaluation

Model Deployment

Model Tunning

Project Review

Planning

Data

Development

Deployment

Globalcode – Open4education

29 of 57

Machine Learning Life Cycle

Business Requirements

Analytics Approach

Data Requirements

Data Collection

Exploratory Data Analysys

Data Preparation

Model Selection

Model Evaluation

Model Deployment

Model Tunning

Project Review

Planning

Data

Development

Deployment

Globalcode – Open4education

30 of 57

Machine Learning Life Cycle

Business Requirements

Analytics Approach

Data Requirements

Data Collection

Exploratory Data Analysys

Data Preparation

Model Selection

Model Evaluation

Model Deployment

Model Tunning

Project Review

Planning

Data

Development

Deployment

Globalcode – Open4education

31 of 57

Machine Learning Life Cycle

Business Requirements

Analytics Approach

Data Requirements

Data Collection

Exploratory Data Analysys

Data Preparation

Model Selection

Model Evaluation

Model Deployment

Model Tunning

Project Review

Planning

Data

Development

Deployment

Globalcode – Open4education

32 of 57

Machine Learning Life Cycle

Business Requirements

Analytics Approach

Data Requirements

Data Collection

Exploratory Data Analysys

Data Preparation

Model Selection

Model Evaluation

Model Deployment

Model Tunning

Project Review

Planning

Data

Development

Deployment

Globalcode – Open4education

33 of 57

Machine Learning Life Cycle

Business Requirements

Analytics Approach

Data Requirements

Data Collection

Exploratory Data Analysys

Data Preparation

Model Selection

Model Evaluation

Model Deployment

Model Tunning

Project Review

Planning

Data

Development

Deployment

Globalcode – Open4education

34 of 57

Tipos de testes

    • Funções Individuais
    • Verificação de Cálculos
    • Operações matemáticas

Unidade

    • Entradas e saídas
    • Pré-processamento
    • Treinamento

Integração

    • Qualidade
    • Consistências

Validação dos Dados

    • Precisão
    • Desempenho

Validação do Modelo

    • Capacidade de lidar com dados incompletos, ruidosos...

Robustez

    • Testes contínuos
    • Detecção de Anomalias

Monitoramento e Desempenho

    • Precisão e desempenho ao longo do tempo

Retenção de Modelo

Globalcode – Open4education

35 of 57

Tipos de testes

    • Funções Individuais
    • Verificação de Cálculos
    • Operações matemáticas

Unidade

    • Entradas e saídas
    • Pré-processamento
    • Treinamento

Integração

    • Qualidade
    • Consistências

Validação dos Dados

    • Precisão
    • Desempenho

Validação do Modelo

    • Capacidade de lidar com dados incompletos, ruidosos...

Robustez

    • Testes contínuos
    • Detecção de Anomalias

Monitoramento e Desempenho

    • Precisão e desempenho ao longo do tempo

Retenção de Modelo

Globalcode – Open4education

36 of 57

Tipos de testes

    • Funções Individuais
    • Verificação de Cálculos
    • Operações matemáticas

Unidade

    • Entradas e saídas
    • Pré-processamento
    • Treinamento

Integração

    • Qualidade
    • Consistências

Validação dos Dados

    • Precisão
    • Desempenho

Validação do Modelo

    • Capacidade de lidar com dados incompletos, ruidosos...

Robustez

    • Testes contínuos
    • Detecção de Anomalias

Monitoramento e Desempenho

    • Precisão e desempenho ao longo do tempo

Retenção de Modelo

Globalcode – Open4education

37 of 57

Tipos de testes

    • Funções Individuais
    • Verificação de Cálculos
    • Operações matemáticas

Unidade

    • Entradas e saídas
    • Pré-processamento
    • Treinamento

Integração

    • Qualidade
    • Consistências

Validação dos Dados

    • Precisão
    • Desempenho

Validação do Modelo

    • Capacidade de lidar com dados incompletos, ruidosos...

Robustez

    • Testes contínuos
    • Detecção de Anomalias

Monitoramento e Desempenho

    • Precisão e desempenho ao longo do tempo

Retenção de Modelo

Globalcode – Open4education

38 of 57

Tipos de testes

    • Funções Individuais
    • Verificação de Cálculos
    • Operações matemáticas

Unidade

    • Entradas e saídas
    • Pré-processamento
    • Treinamento

Integração

    • Qualidade
    • Consistências

Validação dos Dados

    • Precisão
    • Desempenho

Validação do Modelo

    • Capacidade de lidar com dados incompletos, ruidosos...

Robustez

    • Testes contínuos
    • Detecção de Anomalias

Monitoramento e Desempenho

    • Precisão e desempenho ao longo do tempo

Retenção de Modelo

Globalcode – Open4education

39 of 57

Tipos de testes

    • Funções Individuais
    • Verificação de Cálculos
    • Operações matemáticas

Unidade

    • Entradas e saídas
    • Pré-processamento
    • Treinamento

Integração

    • Qualidade
    • Consistências

Validação dos Dados

    • Precisão
    • Desempenho

Validação do Modelo

    • Capacidade de lidar com dados incompletos, ruidosos...

Robustez

    • Testes contínuos
    • Detecção de Anomalias

Monitoramento e Desempenho

    • Precisão e desempenho ao longo do tempo

Retenção de Modelo

Globalcode – Open4education

40 of 57

Tipos de testes

    • Funções Individuais
    • Verificação de Cálculos
    • Operações matemáticas

Unidade

    • Entradas e saídas
    • Pré-processamento
    • Treinamento

Integração

    • Qualidade
    • Consistências

Validação dos Dados

    • Precisão
    • Desempenho

Validação do Modelo

    • Capacidade de lidar com dados incompletos, ruidosos...

Robustez

    • Testes contínuos
    • Detecção de Anomalias

Monitoramento e Desempenho

    • Precisão e desempenho ao longo do tempo

Retenção de Modelo

Globalcode – Open4education

41 of 57

Tipos de testes

    • Funções Individuais
    • Verificação de Cálculos
    • Operações matemáticas

Unidade

    • Entradas e saídas
    • Pré-processamento
    • Treinamento

Integração

    • Qualidade
    • Consistências

Validação dos Dados

    • Precisão
    • Desempenho

Validação do Modelo

    • Capacidade de lidar com dados incompletos, ruidosos...

Robustez

    • Testes contínuos
    • Detecção de Anomalias

Monitoramento e Desempenho

    • Precisão e desempenho ao longo do tempo

Retenção de Modelo

Globalcode – Open4education

42 of 57

Unidade

Unidade

Unidade

Unidade

Unidade

Unidade

Unidade

Unidade

Bibliotecas de Teste em Python

Essas bibliotecas oferecem recursos para escrever e executar testes de unidade em código Python.

Python é uma linguagem de programação amplamente utilizada em Machine Learning, e existem várias bibliotecas de teste disponíveis para testes de unidade

Frameworks de Machine Learning

Como o TensorFlow, PyTorch, scikit-learn e Keras, possuem suas próprias funcionalidades de teste embutidas

Eles fornecem mecanismos para validar e testar modelos de Machine Learning, como a avaliação de métricas de desempenho e a validação cruzada.

Globalcode – Open4education

43 of 57

Unidade

Unidade

Unidade

Unidade

Unidade

Unidade

Unidade

Unidade

Ferramentas de Automação

Existem várias ferramentas de automação de testes que podem ser utilizadas para testes de unidade em Machine Learning

Podem ser configurados para executar testes de unidade automaticamente sempre que ocorrerem alterações no código do modelo.

Ambientes(IDEs)

Possuem recursos integrados para execução e depuração de testes de unidade.

Eles oferecem suporte a frameworks de teste e facilitam a execução dos testes diretamente no ambiente de desenvolvimento.

Globalcode – Open4education

44 of 57

Unidade

Unidade

Unidade

Unidade

Unidade

Unidade

Unidade

Integração

Frameworks de teste em Python

Essas bibliotecas oferecem recursos para escrever e executar testes de unidade em código Python.

Python é uma linguagem de programação amplamente utilizada em Machine Learning, e existem várias bibliotecas de teste disponíveis para testes de unidade

Ferramentas de automação de teste

Podem ser usadas para testar a integração entre o sistema de Machine Learning e outras partes do sistema, como bancos de dados, APIs, interfaces de usuário, entre outros. Essas ferramentas permitem simular interações do usuário e validar se a integração está ocorrendo corretamente.

Globalcode – Open4education

45 of 57

Serviços de Nuvem

Podem ser usadas para implantar e executar testes de unidade em ambientes escaláveis e gerenciados na nuvem.

Isso permite testar os modelos em diferentes cenários e com grande volume de dados.

Containers e Orquestradores

Pode facilitar a criação e o gerenciamento de ambientes de teste isolados para modelos de Machine Learning

Isso permite executar testes de unidade em um ambiente controlado e reproduzível.

Globalcode – Open4education

46 of 57

Unidade

Unidade

Unidade

Unidade

Unidade

Unidade

Unidade

Validação dos Dados

Muitas plataformas de Machine Learning oferecem suporte à execução de consultas SQL em conjuntos de dados para realizar validações. É possível escrever consultas SQL para comparar valores, verificar a integridade dos dados, identificar duplicatas e realizar outras verificações de validação.

Ele fornece uma ampla gama de funcionalidades para filtrar, transformar e validar dados. O Pandas pode ser usado para carregar os conjuntos de dados, executar operações de validação, como verificação de valores ausentes, valores inválidos, duplicatas, entre outros.

Ele fornece uma API em Python para consultas e transformações de dados distribuídos. Com o PySpark, é possível executar consultas e transformações em conjuntos de dados, além de realizar validações de dados usando funções do Spark SQL.

Globalcode – Open4education

47 of 57

Unidade

Unidade

Unidade

Unidade

Unidade

Unidade

Unidade

Validação dos Dados

Ferramentas de profiling e profiling de dados

    • DataProfiler
    • Great Expectations
    • Podem ajudar a verificar a qualidade dos dados, identificar outliers, valores extremos, padrões inconsistentes, entre outros
    • Essas ferramentas automatizam o processo de validação de dados e fornecem métricas e estatísticas úteis para avaliar a qualidade dos dados.

Globalcode – Open4education

48 of 57

Unidade

Unidade

Unidade

Unidade

Unidade

Unidade

Unidade

Validação dos Dados

Globalcode – Open4education

49 of 57

Unidade

Unidade

Unidade

Unidade

Unidade

Unidade

Unidade

Validação do Modelo

Ferramentas de comparação de resultados

numpy.testing

DeepDiff

Datasets de teste

A criação de conjuntos de dados de teste é uma prática comum para validar modelos de Machine Learning

Verificar se o modelo está produzindo os resultados corretos.

Plataformas de ML Ops

Kubeflow, o MLflow e o TensorFlow Extended (TFX)

Recursos para gerenciar o ciclo de vida dos modelos de Machine Learning, incluindo testes de validação

Globalcode – Open4education

50 of 57

Unidade

Unidade

Unidade

Unidade

Unidade

Unidade

Unidade

Validação do Modelo

Ferramentas de visualização e interpretabilidade de modelos

TensorBoard, o SHAP (SHapley Additive exPlanations), o Lime (Local Interpretable Model-Agnostic Explanations) e o Yellowbrick

Podem ajudar a entender e validar o comportamento do modelo. Essas ferramentas permitem visualizar métricas, inspecionar as predições do modelo e interpretar o impacto das features nas decisões do modelo.

Globalcode – Open4education

51 of 57

Unidade

Unidade

Unidade

Unidade

Unidade

Unidade

Unidade

Robustez

Adversarial Testing Frameworks

Foolbox, CleverHans e Adversarial Robustness Toolbox (ART)

Essas ferramentas criam exemplos que são modificados de forma imperceptível, mas podem induzir erros no modelo

Plataformas de Testes em Nuvem

AWS Device Farm, Sauce Labs, BrowserStack e Firebase Test Lab

Essas plataformas permitem que os QA testem a aplicação de Machine Learning em um ambiente diversificado, simulando diferentes cenários e condições adversas

Globalcode – Open4education

52 of 57

Unidade

Unidade

Unidade

Unidade

Unidade

Unidade

Unidade

Monitoramento e Desempenho

Ferramentas de Monitoramento de Infraestrutura

    • Prometheus, Grafana, Datadog e New Relic
    • Essas ferramentas permitem monitorar métricas relacionadas a recursos de hardware, como CPU, memória, utilização de disco, latência de rede, entre outros.

Logging e Logging Aggregators

    • O uso de logs é fundamental para monitorar o desempenho de modelos de Machine Learning
    • Log4j, Logback e Python logging
    • Podem ser usadas para registrar eventos e informações relevantes durante a execução do modelo

Métricas de Desempenho

    • É importante definir métricas relevantes para medir o desempenho dos modelos de Machine Learning
    • Essas métricas podem incluir a precisão, recall, F1-score, AUC-ROC, entre outras, dependendo do tipo de problema e do objetivo do modelo
    • scikit-learn, TensorFlow

e Keras

Globalcode – Open4education

53 of 57

Unidade

Unidade

Unidade

Unidade

Unidade

Unidade

Unidade

Monitoramento e Desempenho

A/B Testing

    • É uma técnica comum para comparar o desempenho de diferentes versões de modelos ou estratégias de Machine Learning
    • o Apache Kafka, Apache Flink e Apache Beam

Sistemas de Monitoramento de Aplicações

    • Além do desempenho dos modelos de Machine Learning, é importante monitorar o desempenho das aplicações que os utilizam
    • Application Performance Monitoring (APM), como o Dynatrace, AppDynamics e New Relic
    • Podem ser empregadas para monitorar o desempenho das aplicações, identificar gargalos, anomalias e otimizar o fluxo de trabalho geral

Globalcode – Open4education

54 of 57

Unidade

Unidade

Unidade

Unidade

Unidade

Unidade

Unidade

Retenção de Modelo

Apache Airflow

MlFlow

Ferramentas de Versionamento de Dados

    • DVC (Data Version Control) e o Git LFS (Large File Storage)

Pipelines de Treinamento e Avaliação

    • Apache Beam, TensorFlow Extended (TFX) e Kubeflow Pipelines

Globalcode – Open4education

55 of 57

Qual o papel do QA em Machine Learning?

QUALIDADE

COMUNICAÇÃO ENTRE O TIME

OBSERVABILIDADE E MONITORAMENTO

QUESTIONAR E APRESENTAR SOLUÇÕES

Globalcode – Open4education

56 of 57

Me chama no Linkedinho:

Globalcode – Open4education

57 of 57