GitHub Actions

Concluído

Quando quiser automatizar fluxos de trabalho com o GitHub, use o GitHub Actions.

O GitHub é usado principalmente para hospedar projetos de código. Ao hospedar seu código de machine learning em um repositório GitHub, você pode criar o GitHub Actions para criar, testar e implantar automaticamente seu código.

Observação

Para usar o GitHub Actions com os pipelines do Azure Machine Learning, você precisa permitir que seu repositório GitHub acesse seu workspace do Azure Machine Learning por meio de uma conexão segura.

Você aprenderá a usar o GitHub Actions para executar um pipeline do Azure Machine Learning.

Criar uma Ação do GitHub

Diagrama da hierarquia de pipelines.

  1. Defina um evento que vai disparar o fluxo de trabalho.
  2. Execute o fluxo de trabalho, que é composto por trabalhos.
  3. Um trabalho contém uma ou mais etapas.
  4. Realize a etapa de execução de um pipeline do Azure Machine Learning.
  5. O pipeline do Azure Machine Learning é composto por scripts ou componentes do Azure Machine Learning.

Para criar o fluxo de trabalho do GitHub Actions, defina as etapas que deseja executar em um arquivo YAML. No arquivo YAML, você incluirá:

  • Evento: como você deseja disparar o fluxo de trabalho.
  • Trabalho: um grupo de etapas que você deseja executar em um executor. Para cargas de trabalho de machine learning, você provavelmente usará uma máquina virtual Ubuntu Linux.
  • Etapa: um script ou ação que você deseja executar. Por exemplo, um comando da CLI para iniciar o pipeline do Azure Machine Learning (az ml job create).

Para executar um pipeline do Azure Machine Learning sempre que as alterações forem enviadas por push para o repositório, você pode usar um arquivo YAML como este:

name: Train model

on:
  push:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest 
    steps:
    - name: check out repo
      uses: actions/checkout@v2
    - name: install az ml extension
      run: az extension add -n ml -y
    - name: azure login
      uses: azure/login@v1
      with:
        creds: ${{secrets.AZURE_CREDENTIALS}}
    - name: set current directory
      run: cd src
    - name: run pipeline
      run: az ml job create --file src/aml_service/pipeline-job.yml --resource-group dev-ml-rg --workspace-name dev-ml-ws

O fluxo de trabalho de exemplo vai:

  1. Conferir o repositório para disponibilizá-lo no executor.
  2. Instalar a extensão do Azure Machine Learning para a CLI.
  3. Entrar no Azure usando o AZURE_CREDENTIALS predefinido.
  4. Navegar até a pasta src, que contém todo o código de produção.
  5. Executar um pipeline do Azure Machine Learning.

Executar um fluxo de trabalho com o GitHub Actions

Suponha que você tenha criado o arquivo YAML para definir o fluxo de trabalho. Você armazena o arquivo YAML no diretório .github/workflows/ no seu repositório.

Para exibir o fluxo de trabalho, navegue até a guia GitHub Actions do repositório.

Captura de tela da visão geral do GitHub Actions.

O GitHub selecionará automaticamente todos os fluxos de trabalho armazenados no diretório .github/workflows/.

Dica

Se você adicionar workflow_dispatch: ao arquivo YAML de fluxo de trabalho, poderá disparar manualmente o fluxo de trabalho a ser executado na guia Actions.

Você pode disparar o fluxo de trabalho com os eventos especificados no seu arquivo YAML do fluxo de trabalho. No exemplo, um push para o repositório vai disparar o fluxo de trabalho a ser executado. Sempre que você fizer uma alteração e enviar seus commits por push para o repositório (localmente no Visual Studio Code ou diretamente no GitHub), o fluxo de trabalho será executado.

Selecione a execução mais recente para inspecionar se todas as etapas foram executadas com êxito ou quais mensagens de erro você recebeu.

Captura de tela do fluxo de trabalho executado com êxito.

Quando um fluxo de trabalho dispara um pipeline do Azure Machine Learning, você também deve examinar a execução de pipeline no workspace do Azure Machine Learning, pois ainda podem ocorrer erros no pipeline do Azure Machine Learning. Todas as mensagens de erro poderão ser exibidas na pasta de saídas da execução do experimento de pipeline do Azure Machine Learning.