MLOps (Machine Learning and Operations) no Azure

O MLOps (Machine Learning e Operations), de forma similar ao DevOps, é a combinação de práticas e ferramentas que permitem aos times de Data Science e Operações melhorar a implementação de modelos, através da governança de modelos de ML (Machine Learning) e IA, monitoramento, validação, colaboração e comunicação.

MLOps-MSFT
Figura: Microsoft Azure – MLOps

Isso porque segundo Gartner, muitas empresas estão desenvolvendo modelos de Machine Learning, mas apenas 47% deles são publicados em produção. E ainda 88% das iniciativas de IA possuem dificuldades para passar do estágio de teste.

Azure ML é composto de interfaces web e SDK que faz o treinamento e deploy do modelo. O processo (figura abaixo) envolve a gestão dos dados, limpeza dos dados, escrevendo e executando experimentos, publicando os modelos para coletar os dados reais (em produção) e aplicar melhorias nos modelos.

MLOps

  • Experiment: os cientistas de dados realizam diversos experimentos, evoluindo e coletando dados, a procura de respostas para as necessidades do negócio. Fundamento nos conceitos de DevOps e da Engenharia de Software, o MLOps sugere práticas para evitar a promoção de modelos mal escritos a outros ambientes.
  • Develop: o treinamento dos algoritmos (Azure ML Training Services), ETL (Data pipelines) e as práticas de CI/CD para criação dos Pipelines (Azure DevOps Pipelines) de deploy dos experimentos construídos de ML.
  • Operate: inference, monitoramento (com uso de analyse/profile, app telemetry, etc.), testes automatizados e data feedback loop para aprendizado com os dados que levam a melhorias nos modelos.

 

Vantagens

Com os times trabalhando juntos (cientistas de dados e operações), encorajam as operações de negócio data-driven, reduzindo o gap entre a descoberta de insights e ações de implementação. Algumas das vantagens são:

  • Reprodutibilidade e auditabilidade: a criação dos modelos em pipelines específicos e reproduzíveis, possibilitando rollbacks (em caso de erros) e auditorias, caso seja necessário algum rastreamento.

  • Validação: herda conceitos de DevOps como validações automáticas, testes, profiling e gestão de ambientes.

  • Habilita automação e observabilidade ao realizar novas implementações. Permite a comparação entre predicted x expected performance. Coleta as informações que servem de treinamentos aos modelos para melhorias futuras.

 

Fases do MLOps

O framework DevOps para soluções AI no Azure pode ser macro representado dessa forma:

Azure-AI-solutions

E compreende quatro principais fases entre a criação até a implantação dos modelos:

  1. Criação e treinamento dos modelos: use o treinamento com pipelines de aprendizado para criar pipelines reproduzíveis, reunindo todas as etapas (da preparação de dados à avaliação do modelo).
  2. Implantação de modelos: empacotamos o modelo para implantação e a criação de perfil para ajudar a configurar memória, CPU e validar os modelos.

  3. Automatizar o aprendizado E2E: atualizar frequentemente os modelos com Azure Machine Learning e GitHub, testar e implementar continuamente com outros aplicativos e serviços.

  4. Trilha de auditoria: coletar os dados de ponta a ponta para estabelecer uma trilha de auditoria. Por exemplo: dados do publicador dos modelos, data de implementação, uso em produção, etc.

fases-MLOpsFigura: Microsoft Azure – MLOps (adaptada)

 

 

Analytic Hierarchy Process (AHP) – método de apoio a decisões complexas

Analytic Hierarchy Process (AHP)
É um método de apoio a tomada de decisões complexas, baseado em procedimento abrangente e racional na estruturação do problema. Foi desenvolvido por Thomas L. Saaty em 1972, na Escola Wharton de Administração de Empresas da Universidade da Pensilvânia.

A essência AHP considera os julgamentos humanos e as informações numéricas, pois converte os julgamentos em valores numéricos. Isso permite o processamento e comparação de toda a extensão do problema.

Geralmente, utilizamos modelos de software como Expert Choice, Decision Lens, Make It Rational e Web-HIPRE para trabalhar com os dados e síntese dos resultados. Ou também o software desenvolvido pela Universidade Federal de Alfenas.

AHP

E como funciona?

  • Hierarquia: decompor o problema em subproblemas. Facilita a compreensão e permite análises independentes.
  • Elementos da hierarquia: tangível ou intangível, relaciona-se com os aspectos do problema de decisão.
  • Avaliação: avaliar as decisões sistematicamente, considerando seus elementos e comparando-os um ao outro. Os dados podem ser concretos ou com base no julgamento sobre a importância dos elementos. Um peso ou prioridade é derivado para cada elemento da hierarquia.

AHP-subcriterios.png


Aplicabilidade
Embora possa ser utilizado por indivíduos lidando com decisões simples, o AHP é mais útil quando equipes estão envolvidas em

  • Problemas complexos que necessitam de percepção humana
  • Resolução terá repercussão de longo-prazo
  • Dificuldade de quantificar ou comparar elementos da decisão
  • Problema de comunicação entre os elementos – especialidades, terminologias e perspectivas diferentes


Utilizando AHP

  • Objetivo: Comprar um carro
  • Critérios: Estilo, Confiabilidade e Consumo
  • Alternativas: Focus, Corolla, Civic, Fluence

AHP-criterios

Os dados são sintetizados de modo a determinar rankings relativos de cada alternativa. Podem ser usados métodos quantitativos e qualitativos para comparar os critérios e definir os pesos e prioridades. E baseado no julgamento humano, determinamos os critérios mais importantes:

  1. A confiabilidade é 2 x mais importante que o estilo
  2. O estilo é 3 x mais importante que o confiabilidade
  3. Confiabilidade é 4 x mais importante que o consumo

A Pairwise Comparation (comparação paritária) relaciona os pesos atribuídos aos critérios, expressando a importância de um critério relativo em relação ao outro:

pairwise

Passo 1
Converter a matriz de frações em decimais
pairwise-II

Passo 2 – Multiplicar as matrizes
Passo 3 – Somar as linhas e depois colunas. Depois normalizar, dividindo o valor de cada linha pelo o total da coluna
Passo 4 – Recomeça-se o processo. Compara-se o resultado anterior com o novo encontrado, até que uma nova interação não demonstra muita diferença

Claro, que este cálculo deve ser feito utilizando um software recomendado. O resultado então ficou:AHP-resultado

Pode-se calcular alternativas também, realizando para cada critério o mesmo processo. A medida de inconsistência entre a pairwise comparision da matriz pode ser expressa por: C.I. = λmáx – n
               n – 1

Data Mining (Mineração de dados) utilizando Weka

O Weka (Waikato Enviroment for Knowledge Analysis) é um software livre utilizado neste Post para aplicar técnicas de mineração de dados. A ferramenta Weka dispõe de algoritmos de Data Mining, tais como:

  • Classificação: Árvore de decisão, Naive Bayes, entre outras
  • Predição numérica: Regressão linear, perceptron multicamadas e outras
  • Agrupamento: SimpleKMeans, DBScan e outras
  • Associação: Apriori, FPGrowth e outras

O Data Mining está inserido no processo de KDD (Knowledge Discovery in Databases), que segundo Fayyad et al. (1996), trata-se de um processo não trivial de identificação de padrões, que tem por objetivo a descoberta de conhecimento em banco de dados, a fim de extrair informações implícitas e potencialmente úteis.

Alguns conceitos como KDD e as tarefas da Mineração de Dados são imprescindíveis para a compreensão e aplicabilidade dos recursos em seu ambiente. Na minha Dissertação do Mestrado explico em detalhes o conteúdo teórico.

A opção Explorer (tela inicial do Weka) é a principal interface para Data Mining:

weka.png

O Weka utiliza o formato ARFF e marcações como @relation, @attribute (tipo e valores) e @data (instância dos dados). As guias PreprocessClassify, Cluster Associate serão utilizadas nos exemplos deste post.

weka-tela-inicial


Regressão Linear
“A Regressão Linear é uma equação para se estimar a condicional (valor esperado) de uma variável y, dados os valores de algumas outras variáveis x”. No primeiro exemplo, utilizamos a classe weka.classifiers.LinearRegression para descobrir o custo de indisponibilidade na empresa, ocasionadas por falhas em sistemas.

weka-linear-regression

Como a equação só trabalha com valores numéricos, alguns valores foram convertidos para utilização do algoritmo. O coeficiente indica os atributos com maior peso na equação.

Classificação
O algoritmo J48 trabalha com modelos de decisão em árvore, construídas de forma hierárquica, selecionando o atributo mais apropriado para cada situação. Neste exemplo, o algoritmo trabalhou com treinamento de 70% do conjunto e 30% para testes. No final é apresentada a classificação das instâncias, utilizando o índice kappa – medida de qualidade do modelo – e apresentou 0,834 de concordância, o que indica poucas amostras classificadas erroneamente.

weka-j48

Também pode ser utilizada a opção Visualize Tree para a representação da classificação em árvore de decisão.

 

Associação
Por fim, a regra de associação é um padrão da forma X → Y (X implica em Y), em que X e Y são conjuntos disjuntos de valores (X ∩ Y ≠ φ). A força da regra pode ser medida em (TAN et al., 2009):

  • Suporte: determina a frequência da aplicação de uma regra a um determinado conjunto de dados

weka-suporte

  • Confiança: determina a frequência que os itens Y aparecem nas transações que contenham X.

weka-confianca

algoritmo Apriori (de classificação) é utilizado para descobrir relacionamentos no conjunto de dados. É necessário configurar um suporte e confiança mínima nos parâmetros do Weka – parâmetros lowerBoundMinSupport (suporte mínimo) e minMetric (confiança mínima). O resultado será as regras de associação com maior confiança, como apontado no exemplo abaixo, baseado nos atributos configurados.

  Regra de associação Confiança
1 Tipo=0 Parada=0 3052 ==> Contorno=0 3017 conf:(0.99)
2 Tipo=1 Contorno=0 3165 ==> Parada=0 3103 conf:(0.98)
3 Reincidente=1 3907 ==> Parada=0 Contorno=0 3733 conf:(0.96)
4 Tipo=1 Parada=0 4324 ==> Duracao_menor_8h=1 3921 conf:(0.91)
5 Reincidente=0 3610 ==> Duracao_menor_8h=1 Parada=0 3016 conf:(0.84)
6 Duracao_menor_8h=1 Parada=0 4252 ==> Reincidente=0 3016 conf:(0.71)