Usar o GitHub Actions para o treinamento de modelos

Concluído

O GitHub Actions é uma plataforma que permite automatizar tarefas disparadas por eventos que ocorrem em um repositório do GitHub. Um fluxo de trabalho do GitHub Actions consiste em trabalhos. Um trabalho agrupa um conjunto de etapas que podem ser definidas. Uma dessas etapas pode usar a CLI (v2) para executar um trabalho do Azure Machine Learning a fim de treinar um modelo.

Para automatizar o treinamento de modelos com o GitHub Actions, você precisará fazer o seguinte:

  • Criar uma entidade de serviço usando a CLI do Azure.
  • Armazenar as credenciais do Azure em um segredo do GitHub.
  • Definir uma ação do GitHub em YAML.

Criar uma entidade de serviço

Ao usar o GitHub Actions para automatizar trabalhos do Azure Machine Learning, é necessário usar uma entidade de serviço a fim de autenticar o GitHub e gerenciar o workspace do Azure Machine Learning. Por exemplo, para treinar um modelo usando a computação do Azure Machine Learning, você (ou qualquer ferramenta que você usa) precisa estar autorizado a usar essa computação.

Armazenar as credenciais do Azure

As credenciais do Azure necessárias para a autenticação não devem ser armazenadas no código ou em um texto sem formatação, mas em um segredo do GitHub.

Para adicionar um segredo ao repositório do GitHub:

  1. Acesse a guia Configurações.

    Captura de tela da guia “Configurações” no repositório do GitHub.

  2. Na guia Configurações, em Segurança, expanda a opção Segredos e selecione Ações.

    Captura de tela da opção “Segredos” na seção “Segurança”.

  3. Insira suas credenciais do Azure como um segredo e dê ao segredo o nome AZURE_CREDENTIALS.

  4. Para usar um segredo contendo credenciais do Azure em uma ação do GitHub, faça referência a ele no arquivo YAML.

    on: [push]
    
    name: Azure Login Sample
    
    jobs:
      build-and-deploy:
        runs-on: ubuntu-latest
        steps:
          - name: Log in with Azure
            uses: azure/login@v1
            with:
              creds: '${{secrets.AZURE_CREDENTIALS}}'
    

Definir a ação do GitHub

Para definir um fluxo de trabalho, crie um arquivo YAML. É possível disparar o fluxo de trabalho para treinar um modelo manualmente ou com um evento push. O disparo manual do fluxo de trabalho é ideal para testes, enquanto a automatização dele com um evento é melhor para a automação.

Para configurar um fluxo de trabalho do GitHub Actions a fim de dispará-lo manualmente, use on: workflow_dispatch. Para disparar um fluxo de trabalho com um evento push, use on: [push].

Depois que o fluxo de trabalho do GitHub Actions é disparado, é possível adicionar diversas etapas a um trabalho. Por exemplo, é possível usar uma etapa para executar um trabalho do Azure Machine Learning:

name: Manually trigger an Azure Machine Learning job

on:
  workflow_dispatch:

jobs:
  train-model:
    runs-on: ubuntu-latest
    steps:
    - name: Trigger Azure Machine Learning job
      run: |
        az ml job create --file src/job.yml