Treinar modelos com Azure Machine Learning

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

O Azure Machine Learning fornece várias maneiras de treinar seus modelos, desde soluções de codificação antes do banco de dados usando o SDK até soluções com linguagem de baixo nível, como o machine learning automatizado e o 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ê não precisa se preocupar em definir uma configuração de execução ao usar o machine learning automatizado.
    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 aprendizado de máquina são compatíveis com o uso de machine learning automatizado e a configuração de execução 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 autônomos como preparação de dados ou trabalhos de treinamento de execução prolongada.
    * 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.
    * Fontes de dados de acompanhamento e versão, entradas e saídas para 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 para o aprendizado de máquina para a criação de provas de conceito ou para usuários com pouca experiência em 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 modelos de treinamento, ela fornece comandos que enviam trabalhos de treinamento. Ela pode enviar trabalhos usando pipelines ou configurações de execução.

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 em 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 command(). Em seguida, o comando é usado, juntamente com seus scripts de treinamento, para treinar um modelo no destino de computação especificado.

Você pode começar com um comando para seu computador local e, em seguida, alternar para um comando em 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 comando usado. Uma execução também registra informações sobre o trabalho de treinamento, como entradas, saídas e logs.

Automatizado de Machine Learning

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 quando atinge os critérios de saída 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 do Azure consiste em:

  1. Compacte os arquivos na pasta do projeto e carregue 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. Escalar verticalmente seu cluster de cálculo (ou computação sem servidor

  3. Criar ou fazer download do dockerfile no nó de computação

    1. O sistema calcula um hash:
    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. Fazer download do arquivo compactado do projeto em um armazenamento temporário no nó de computação

  5. Descompactar o arquivo do projeto

  6. O nó de computação que está executando o python <entry script> <arguments>

  7. Salvar os logs, os arquivos de modelo e outros arquivos gravados em ./outputs na conta de armazenamento associada ao workspace

  8. Colocar em escala a computação, incluindo a remoção do armazenamento temporário

Azure Machine Learning Designer

O designer permite treinar modelos usando uma interface do tipo “arrastar e soltar” em seu 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.

Código VS

Você pode usar a extensão VS Code para executar e gerenciar seus trabalhos de treinamento. Consulte o Guia de instruções de gerenciamento de recursos do VS Code para saber mais.

Próximas etapas

Conheça o Tutorial: Criar pipelines de ML de produção com o SDK v2 do Python em um Jupyter Notebook.