Afinação de hiperparmetro distribuído para modelos de aprendizagem automática

Container Registry
Cosmos DB
Data Lake Storage
Máquinas Virtuais de Ciência de Dados
Machine Learning

Este artigo descreve a sintonização de hiperparímetro distribuído para modelos de aprendizagem de máquinas Python. Os hiperparmetros são parâmetros ajustáveis que controlam o treino de modelos de aprendizagem automática. O desempenho do modelo de aprendizagem automática depende fortemente de hiperparímetros.

A sintonização hiperparítnica, também chamada de otimização do hiperparaímetro, é o processo de encontrar configurações de hiperparímetro que produzam o melhor desempenho de treino de modelo. A Azure Machine Learning pode ajudar a automatizar e distribuir afinação de hiperparímetros.

Arquitetura

Diagrama que mostra o processo de afinação do hiperparímetro no fluxo de trabalho de aprendizagem da máquina de Azure.

Transfira um ficheiro do Visio desta arquitetura.

Fluxo de trabalho

  1. O ecossistema de Machine Learning ingere dados de Azure Data Lake Storage.

  2. Python ou YAML podem configurar conjuntos de hiperparímetros.

  3. Distribuídos por hiperparímetros afinando exemplos de modelos em vários CPUs e GPUs para identificar o modelo de melhor desempenho.

  4. Um registo de modelo Azure Container Registry detém os modelos treinados. Registar os modelos no registo de modelos facilita a organização e a monitorização.

  5. O modelo de melhor desempenho regista-se com machine learning e implementa através de pontos finais geridos por Machine Learning.

  6. A Azure Cosmos DB armazena o modelo para que a web ou aplicação móvel possa consumi-lo.

  7. O Azure Monitor monitoriza e regista atividades durante todo o processo.

Componentes

  • Azure Data Lake Storage fornece um lago de dados massivamente escalável e seguro para cargas de trabalho de análise de alto desempenho.

  • Microsoft Máquina Virtual de Ciência de Dados (DSVM) oferece imagens do Windows Server e da máquina virtual Linux (VM) configuradas com analítica de dados e ferramentas de machine learning. Os cenários deste artigo utilizam os DSVMs Ubuntu Linux.

  • Azure Machine Learning treina, testa, implanta, automatiza e gere machine learning e modelos de IA à escala de nuvem. O cálculo gerido por Machine Learning atribui nós-alvo computacional a pedido, com base numa opção de escala automática. Cada nó de cálculo é um VM que executa um trabalho de treino para um determinado conjunto de hiperparímetros.

  • Azure Container Registry armazena imagens para implantações de contentores Docker. Nesta carga de trabalho, os contentores em cada nó de cálculo executam scripts de treino Python que retiram do Registo de Contentores.

  • Azure Cosmos DB é uma base de dados NoSQL totalmente gerida e sem servidor para aplicações de alto desempenho de qualquer tamanho ou escala.

  • O Azure Monitor recolhe, analisa e atua em dados de telemetria a partir de ambientes Azure e no local. O Monitor ajuda a maximizar o desempenho e a disponibilidade de aplicações e a identificar proativamente problemas.

Detalhes do cenário

Parâmetros de treino ajustáveis ou hiperparímetros controlam o treino do modelo de aprendizagem automática. Por exemplo, os hiperparmetros para redes neurais de aprendizagem profunda incluem o número de camadas escondidas e o número de nós em cada camada. É importante determinar os conjuntos de hiperparímetros que produzem o melhor desempenho de treino de modelo.

O processo de afinação ou otimização do hiperparímetro é normalmente manual, computacionalmente caro e demorado. Machine Learning pode automatizar a afinação do hiperparímetro e permitir que você faça experiências paralelamente para sintonizar eficientemente hiperparímetros.

As secções seguintes descrevem cenários de otimização de hiperparímetros para modelos de aprendizagem de scikit e modelos de aprendizagem profunda com unidades de processamento gráficos (GPUs). Para operacionalizar estes cenários, consulte MLOps para modelos Python usando Azure Machine Learning.

Stack Overflow FAQ cenário de correspondência

Este cenário afina um oleoduto de aprendizagem de scikit para abordar perguntas frequentes (FAQ) correspondentes. O cenário utiliza um subconjunto de dados de perguntas stack overflow que inclui perguntas originais, as suas perguntas duplicadas e as suas respostas. O modelo prevê a probabilidade de uma pergunta duplicada corresponder a uma das perguntas originais. O objetivo é construir um modelo que encontre semelhanças entre perguntas duplicadas.

Este cenário utiliza amostragem de grelha, uma técnica de afinação de hiperparímetro que faz uma pesquisa simples da grelha sobre valores baseados na gama e incremento especificados. Esta técnica pode pesquisar exaustivamente por todo o espaço de pesquisa. A técnica de amostragem da grelha suporta hiperparímetros discretos e o fim precoce de trabalhos de baixo desempenho.

Cenário de deteção fora de stock

Este cenário afina um modelo de deteção de objetos implementado como um serviço web para ajudar a detetar produtos fora de stock nas prateleiras das lojas. O modelo utiliza imagens de prateleiras repletas de produtos para prever espaços vazios, e combina previsões de espaço vazio com outras fontes de informação, como planogramas e bases de dados. Este modelo utiliza um conjunto de dados distribuído sob uma licença CC-BY 4.0 e cobre apenas a previsão do espaço vazio.

Pode distribuir afinação de hiperparímetros em redes neurais configurando vários conjuntos de hiperparímetros, como o número de camadas ocultas e a taxa de aprendizagem, e executando-os em clusters computacional ativados pela GPU em paralelo. Para obter mais informações sobre algoritmos de deteção de objetos de última geração, consulte um levantamento de modelos modernos de deteção de objetos baseados em aprendizagem profunda.

Considerações

Estas considerações implementam os pilares do Quadro Azure Well-Architected, que é um conjunto de princípios orientadores que podem ser utilizados para melhorar a qualidade de uma carga de trabalho. Para mais informações, consulte Microsoft Quadro Well-Architected Azure.

Segurança

A segurança fornece garantias contra ataques deliberados e abuso dos seus valiosos dados e sistemas. Para mais informações, consulte a visão geral do pilar de segurança.

Implementar as seguintes práticas para melhorar a segurança da Aprendizagem automática em Azure:

  • Restringir o acesso a recursos e operações por conta de utilizador ou grupos.
  • Restringir as comunicações de rede de entrada e saída.
  • Criptografe os dados em trânsito e em repouso.
  • Procure por vulnerabilidades.
  • Aplicar e auditar políticas de configuração.

Para obter mais informações sobre a segurança da Machine Learning, consulte a segurança e governação da Enterprise para a Azure Machine Learning.

Otimização de custos

A otimização de custos tem a ver com formas de reduzir despesas desnecessárias e melhorar a eficiência operacional. Para mais informações, consulte a visão geral do pilar de otimização de custos.

O custo de uma afinação de hiperparímetro depende do tamanho do cálculo VM do machine learning, se os nós de baixa prioridade são usados, e o número máximo de nós permitidos no cluster.

Os custos contínuos quando o cluster não está a ser utilizado dependem do número mínimo de nós que o cluster requer. Com a autoscalagem do cluster, o sistema adiciona automaticamente nós até ao máximo permitido quando necessário, e remove os nós até ao mínimo solicitado quando já não é necessário. Se o cluster pode autodimensionar até zero nós, não custa nada quando não está a ser utilizado.

Para obter mais informações sobre os custos de Machine Learning, consulte Plano para gerir os custos da Azure Machine Learning.

Excelência operacional

A excelência operacional abrange os processos de operação que implementam uma aplicação e a mantêm em funcionamento. Para mais informações, consulte a visão geral do pilar de excelência operacional.

Para esta carga de trabalho, o Monitor pode registar atividades de formação, registo e implantação. O monitor também ajuda a rastrear experiências e a analisar registos.

Eficiência de desempenho

Eficiência de desempenho é a capacidade da sua carga de trabalho para dimensionar para satisfazer as exigências que os utilizadores lhe colocam de forma eficiente. Para obter mais informações, consulte a visão geral do pilar de eficiência de desempenho.

Cada conjunto de hiperparmetros funciona num nó de cálculo machine learning. Para o cenário de correspondência de FAQ, cada nó pode ser um VM Standard_D4_v5, que tem quatro núcleos. Este cenário usa um classificador LightGBM, uma estrutura de aumento de gradiente para machine learning. Como resultado, a corrida de afinação do hiperparímetro leva um quarto do tempo original para pesquisar todos os conjuntos em um único nó. Os requisitos de cálculo podem mudar dependendo do caso de utilização e do conjunto de dados.

Você pode usar nós computacional ativados pela GPU, como Standard_NC6s_v3, para casos de uso de aprendizagem profunda como o cenário de deteção fora de stock. Cada ensaio de afinação do hiperparímetro utiliza uma única GPU em cada Standard_NC6s_v3 VM. Os requisitos de cálculo podem mudar dependendo do caso de utilização.

Ao mesmo tempo que a adição de mais nós pode acelerar significativamente o tempo de funcionamento, os tempos de arranque aumentados normalmente adicionam vários minutos de sobrecarga. Escolha uma configuração com capacidade de computação adequada para minimizar os custos de funcionação vs unidade e os tempos de arranque.

Contribuidores

Este artigo é mantido por Microsoft. Foi originalmente escrito pelos seguintes contribuintes.

Autores principais:

Para ver perfis não públicos do LinkedIn, inscreva-se no LinkedIn.

Passos seguintes