Treinar modelos com Azure Machine Learning

APLICA-SE A: SDK do azure-ai-ml para Python v2 (atual)

O Azure Machine Learning fornece várias maneiras de treinar seus modelos, desde soluções de primeiro código usando o SDK até soluções de baixo código, como machine learning automatizado e designer visual. Use a seguinte lista para determinar qual método de treinamento é o ideal para você:

  • SDK do Azure Machine Learning para Python: o SDK do Python fornece várias maneiras de treinar modelos, cada um com funcionalidades diferentes.

    Método de treinamento Descrição
    command() Uma maneira comum de treinar modelos é enviar um command() que inclui um script de treinamento, um ambiente e informações de computação.
    Machine learning automatizado O machine learning automatizado permite treinar modelos sem uma ampla experiência em ciência de dados ou conhecimento de programação. Para pessoas com conhecimento de ciência de dados e programação, ele fornece uma forma de economizar tempo e recursos automatizando a seleção de algoritmos e o ajuste de hiperparâmetros. Você ainda configura o trabalho de ML automatizado com configurações como o tipo de tarefa, dados de treinamento, coluna de destino, computação e limites.
    Pipeline de machine learning Pipelines não são um método de treinamento diferente, mas uma forma de definir um fluxo de trabalho usando etapas modulares e reutilizáveis, que podem incluir treinamento como parte do fluxo de trabalho. Os pipelines de machine learning oferecem suporte ao uso de machine learning automatizado e trabalhos de comando para treinar modelos. Como os pipelines não estão voltados especificamente para o treinamento, os motivos para usar um pipeline são mais variados do que os outros métodos de treinamento. Geralmente, você pode usar um pipeline quando:
    * Deseja agendar processos não supervisionados, como trabalhos de treinamento de longa duração ou preparação de dados.
    * Usa várias etapas coordenadas em recursos de computação heterogêneos e locais de armazenamento.
    * Use o pipeline como um modelo reutilizável para cenários específicos, como retreinamento ou pontuação de lote.
    * Acompanhe e controle as versões das fontes de dados, entradas e saídas do seu fluxo de trabalho.
    * O fluxo de trabalho é implementado por equipes diferentes que trabalham em etapas específicas independentemente. As etapas podem ser unidas em um pipeline para implementar o fluxo de trabalho.
  • Designer: o Designer do Azure Machine Learning fornece um ponto de entrada fácil no aprendizado de máquina para criar uma prova de conceitos ou para usuários com pouca experiência de codificação. Ele permite treinar modelos usando uma interface do usuário baseada na Web do tipo “arrastar e soltar”. Você pode usar o código do Python como parte do design ou treinar modelos sem escrever nenhum código.

  • CLI do Azure: a CLI de machine learning fornece comandos para tarefas comuns com o Azure Machine Learning e é muito usada para scripts e tarefas de automação. Por exemplo, quando você tiver criado um pipeline ou script de treinamento, poderá usar a CLI do Azure para iniciar a execução de treinamento em uma agenda ou quando os arquivos de dados usados para treinamento forem atualizados. Para treinar modelos, fornece comandos para enviar tarefas de treinamento. Ele pode enviar trabalhos de comando, trabalhos de ML automatizados e trabalhos de pipeline.

Cada um desses métodos de treinamento pode usar diferentes tipos de recursos de computação para treinamento. Coletivamente, esses recursos são chamados de destinos de computação. Um destino de computação pode ser um computador local ou um recurso de nuvem, como Computação do Azure Machine Learning, Azure HDInsight ou uma máquina virtual remota.

SDK do Python

O SDK do Azure Machine Learning para Python permite criar e executar fluxos de trabalho de machine learning com o Azure Machine Learning. Você pode interagir com o serviço de uma sessão interativa do Python, Jupyter Notebooks, Visual Studio Code ou outro IDE.

Enviar um comando

Um trabalho de treinamento genérico com o Azure Machine Learning pode ser definido usando a função command( ). Em seguida, o objeto Command é usado, juntamente com seus scripts de treinamento para treinar um modelo no destino de computação especificado.

Você pode começar com um objeto Command para seu computador local e alternar para um para um destino de computação baseado em nuvem, conforme necessário. Ao alterar o destino de computação, você só altera o parâmetro de computação no objeto Command que você usa. Uma execução também registra informações sobre o trabalho de treinamento, como entradas, saídas e logs.

Aprendizado de Máquina Automatizado

Defina as iterações, configurações de hiperparâmetro, personalização e outras configurações. Durante o treinamento, o Azure Machine Learning tenta algoritmos e parâmetros diferentes em paralelo. O treinamento para assim que atingir os critérios de parada que você definiu.

Dica

Além do SDK do Python, você também pode usar o ML automatizado por meio do Azure Machine Learning Studio.

Pipeline de machine learning

Os pipelines de aprendizado de máquina podem usar os métodos de treinamento mencionados anteriormente. Pipelines se tratam mais de criar um fluxo de trabalho, assim abrangem mais do que apenas o treinamento de modelos.

Saber o que acontece quando você envia um trabalho de treinamento

O ciclo de vida de treinamento Azure para um trabalho de comando típico baseado em script consiste nas etapas a seguir. Trabalhos automatizados de ML e pipeline seguem um fluxo semelhante, mas o comportamento exato de execução e cache de imagem pode variar de acordo com o tipo de trabalho e o ambiente:

  1. Feche os arquivos na pasta do projeto e carregue-os na nuvem.

    Dica

    Para evitar que arquivos desnecessários sejam incluídos no instantâneo, faça uma opção Ignorar arquivo (.gitignore ou .amlignore) no diretório. Adicione os arquivos e diretórios a serem excluídos para esse arquivo. Para obter mais informações sobre a sintaxe a ser usada dentro desse arquivo, consulte sintaxe e padrões para .gitignore. O arquivo .amlignore usa a mesma sintaxe. Se ambos os arquivos existirem, o arquivo .amlignore será usado e o arquivo .gitignore não será usado.

  2. Amplie seu cluster de computação ou computação sem servidor.

  3. Criar ou fazer download do Dockerfile para o nó de computação

    1. O sistema calcula um hash de:
    2. O sistema usa esse hash como chave em uma pesquisa do ACR (Registro de Contêiner do Azure) do workspace
    3. Se não for encontrado, ele procurará uma correspondência no ACR global
    4. Se não for encontrado, o sistema criará uma nova imagem (que será armazenada em cache e registrada no ACR do workspace)
  4. Baixando o arquivo ZIP do projeto para o armazenamento temporário no nó de computação

  5. Descompactar o arquivo do projeto

  6. Execute o nó de computação usando o comando especificado pelo job, como python <entry script> <arguments> para um script de treinamento em Python.

  7. Salvamento de logs, arquivos de modelo e outros arquivos gravados em ./outputs na conta de armazenamento associada ao espaço de trabalho

  8. Reduzir a capacidade computacional, incluindo a remoção do armazenamento temporário

Designer do Azure Machine Learning

O Designer permite treinar modelos usando uma interface de arrastar e soltar no navegador da Web.

CLI do Azure

A CLI de machine learning é uma extensão para a CLI do Azure. Ela fornece comandos de CLI multiplataforma para trabalhar com o Azure Machine Learning. Normalmente, você usa a CLI para automatizar tarefas, como treinar um modelo de machine learning.

VS Code

Use a extensão vs code para executar e gerenciar seus trabalhos de treinamento. Para saber mais, confira o guia de instruções sobre o gerenciamento de recursos do VS Code.

Próximas etapas

Em seguida, saiba como criar pipelines de produção de ML com o SDK do Python v2 em um Jupyter Notebook.