Voltar
Engineering
Tabela de conteúdo

 

Os modelos de aprendizado de máquina (ML) são essenciais para identificar padrões e fazer previsões confiáveis. E em CloudSEK, nossos modelos são treinados para derivar essas previsões em dados coletados de mais de 1000 fontes. Com mais de 50 modelos diferentes em execução na produção, monitorar esses modelos de aprendizado de máquina é uma tarefa assustadora, mas indispensável.

O ciclo de vida de desenvolvimento de ML consiste em treinar e testar modelos, sua implantação na produção e monitorá-los para melhorar a precisão. A falta de monitoramento adequado pode levar a previsões imprecisas, modelos obsoletos e à presença de bugs despercebidos neles.

A equipe de engenharia de dados da CloudSEK trabalha em conjunto com cientistas de dados para implantar modelos de ML e monitorar seus desempenhos continuamente. Para isso, garantimos que os seguintes requisitos sejam atendidos:

  • Controle de versão do modelo: habilite várias versões dos mesmos modelos
  • Inicializando padrões de observadores usando dados recebidos
  • Comparando resultados de diferentes versões

No CloudSEK, diferentes modelos de aprendizado de máquina e suas várias versões classificam um documento em vários estágios. Assim, o cliente é alertado apenas sobre os resultados mais precisos de modelos eficientes ou de um conjunto de resultados combinando diferentes versões.

 

O que constitui uma atualização de versão?

Em essência, todos os módulos de aprendizado de máquina são compostos por duas partes. A saída de um módulo de ML depende desses dois componentes:

  • O arquivo de peso do modelo principal de ML que é gerado ao treinar um modelo.
  • As instruções de código circundantes que representam pré-processamento, extração de recursos, pós-processamento etc.

Como regra geral, qualquer modificação significativa feita nesses dois componentes se qualifica como uma atualização de versão. No entanto, pequenas alterações ou correções de erros ou até mesmo adições de regras estáticas não levam a uma atualização e são simplesmente consideradas atualizações regulares de código, que rastreamos via Git.

 

Implantação e monitoramento de modelos

 Geralmente, os modelos de aprendizado de máquina são hospedados em contêineres docker sem estado. Esses modelos em contêineres escutam filas para mensagens assim que o contêiner docker é executado em um sistema. O contêiner mantém um arquivo de configuração com informações sobre os tipos de modelos, suas versões e se esses modelos são destinados à produção.

Quando o contêiner docker é criado, você pode passar o hash de confirmação do Git mais recente do repositório Git para ele, para ser definido como uma variável de ambiente. O diagrama explica o fluxo de dados entre os modelos de ML e suas diferentes versões:

Machine Leaning models diagram

 

Quando o contêiner é executado, os dados são consumidos de uma fila de mensagens. O nome do modelo presente no arquivo de configuração determina os dados que são consumidos. Depois de processadas, as previsões são retornadas como um dicionário que é então mantido em um banco de dados.

Os módulos de ML também podem retornar metadados opcionais que contêm informações como as pontuações reais de previsão, funções acionadas internamente, etc.

Abaixo está uma amostra de um documento após o processamento dos resultados de todos os modelos:

 

{ “document_id”: “root-001 #96bfac5a46 “, “classificações_stage_1_clf_v0": { “answer”: “página da web suspeita de desfiguração”, “content_meta”: nulo, “hit_time”: data ISO (“2019-12-24T 14:54:09.892 Z”), “commit_hash”: “6f8e8033" }, “classificações_stage_2_clf_v0": { “resposta”: { “motivo”: nulo, “tipo”: “sem ameaça”, “severidade”: nula }, “content_meta”: nulo, “hit_time”: data ISO (“2019-12-24T 15:40:46.245 Z”), “commit_hash”: nulo }, “classificações_stage_2_clf_v1": { “resposta”: { “motivo”: nulo, “tipo”: “sem ameaça”, “severidade”: nula }, “content_meta”: nulo, “hit_time”: data ISO (“2019-12-24T 15:40:46.245 Z”), “commit_hash”: nulo } }

 

Como isso nos ajuda

Esse processo nos permite encontrar, para qualquer documento, o estado exato de todos os modelos que classificaram um determinado documento. Podemos reverter entre as versões do modelo e uma pequena alteração no valor fornecido no arquivo de configuração deve nos permitir diferenciar o modelo de produção principal dos modelos de teste.

Uma instância da Metabase pode ser aproveitada para visualizar as principais métricas e o desempenho de cada classificador em um painel. Ele também pode conter detalhes sobre os documentos que são processados por cada modelo, ou quantos documentos foram classificados na categoria X, categoria Y, etc. (no caso de tarefas de classificação) e muito mais.

 

 

Screenshot of the internal dashboard which helps in visualisations key metrics
Captura de tela do painel interno que ajuda na visualização das principais métricas

O monitoramento também permite que os cientistas de dados estudem e comparem os resultados das várias versões dos modelos, uma vez que os detalhes das saídas das versões são recuperados. Esses dados fornecem a eles um conjunto de documentos que revelam qual saída pode ter sido influenciada por um novo modelo. Esses dados são então adicionados aos dados de treinamento para calibrar os modelos.

 

Nenhum item encontrado.

Blogs relacionados