Usar GitHub Actions com o Azure Machine Learning
APLICA-SE A:Extensão de ML da CLI do Azure v2 (atual)SDK do Python azure-ai-ml v2 (atual)
Comece a usar o GitHub Actions para treinar um modelo no Azure Machine Learning.
Este artigo ensinará como criar um fluxo de trabalho do GitHub Actions que cria e implanta um modelo de machine learning no Azure Machine Learning. Você treinará um modelo de regressão linear scikit-learn no conjunto de dados de táxi de NOVA YORK.
O GitHub Actions usa um arquivo YAML (.yml) de fluxo de trabalho no caminho /.github/workflows/
do seu repositório. Essa definição contém as várias etapas e os parâmetros que compõem o fluxo de trabalho.
Pré-requisitos
Antes de seguir as etapas neste artigo, verifique se você tem os seguintes pré-requisitos:
Um Workspace do Azure Machine Learning. Se você não tiver um, use as etapas do artigo Início Rápido: criar recursos de workspace para criar.
Para instalar o SDK do Python v2, use o seguinte comando:
pip install azure-ai-ml azure-identity
Para atualizar uma instalação do SDK existente para a versão mais recente, use o seguinte comando:
pip install --upgrade azure-ai-ml azure-identity
Para saber mais, confira Instalar o SDK do Python v2 para Azure Machine Learning.
- Uma conta do GitHub. Caso ainda não tenha uma, inscreva-se gratuitamente.
Etapa 1: obter o código
Bifurque o seguinte repositório no GitHub:
https://github.com/azure/azureml-examples
Clone seu repositório bifurcado localmente.
git clone https://github.com/YOUR-USERNAME/azureml-examples
Etapa 2: Autenticar com o Azure
Primeiro, você precisará definir como autenticar com o Azure. Você pode usar uma entidade de serviço ou o OpenID Connect.
Gerar as credenciais de implantação
Crie uma entidade de serviço com o comando az ad sp create-for-rbac na CLI do Azure. Execute esse comando com o Azure Cloud Shell no portal do Azure ou selecionando o botão Experimentar.
az ad sp create-for-rbac --name "myML" --role contributor \
--scopes /subscriptions/<subscription-id>/resourceGroups/<group-name> \
--json-auth
O parâmetro --json-auth
está disponível nas versões da CLI do Azure >= 2.51.0. Versões anteriores a essa usam --sdk-auth
com um aviso de substituição.
No exemplo acima, substitua os espaços reservados pela ID da assinatura, nome do grupo de recursos e nome do aplicativo. A saída é um objeto JSON com as credenciais de atribuição de função que fornecem acesso ao aplicativo do Serviço de Aplicativo semelhante ao mostrado abaixo. Copie esse objeto JSON para uso posterior.
{
"clientId": "<GUID>",
"clientSecret": "<GUID>",
"subscriptionId": "<GUID>",
"tenantId": "<GUID>",
(...)
}
Criar segredos
No GitHub, acesse seu repositório.
Acesse Configurações no menu de navegação.
Selecione Segurança > Segredos e variáveis > Ações.
Selecione Novo segredo de repositório.
Cole toda a saída JSON do comando da CLI do Azure no campo valor do segredo. Dê ao segredo o nome
AZURE_CREDENTIALS
.Selecione Adicionar segredo.
Etapa 3: atualizar setup.sh
para se conectar ao seu workspace do Azure Machine Learning
Será necessário atualizar as variáveis do arquivo de configuração da CLI para corresponder ao seu workspace.
No repositório clonado, acesse
azureml-examples/cli/
.Edite
setup.sh
e atualize essas variáveis no arquivo.Variável Descrição GROUP nome do grupo de recursos LOCALIZAÇÃO Local do seu workspace (exemplo: eastus2
)WORKSPACE Nome do workspace do Azure Machine Learning
Etapa 4: atualizar pipeline.yml
com o nome do seu cluster de cálculo
Você usará um arquivo pipeline.yml
para implantar seu pipeline do Azure Machine Learning. Trata-se de um pipeline de machine learning e não de DevOps. Você só precisará fazer essa atualização se estiver usando um nome diferente de cpu-cluster
para o cluster de cálculo.
- No repositório clonado, acesse
azureml-examples/cli/jobs/pipelines/nyc-taxi/pipeline.yml
. - Sempre que vir
compute: azureml:cpu-cluster
, atualize o valor decpu-cluster
com o nome do cluster de cálculo. Por exemplo, se o cluster for chamado demy-cluster
, o novo valor seráazureml:my-cluster
. Há cinco atualizações.
Etapa 5: executar seu fluxo de trabalho do GitHub Actions
Seu fluxo de trabalho é autenticado com o Azure, configura a CLI do Azure Machine Learning e usa ela para treinar um modelo no Azure Machine Learning.
O arquivo de fluxo de trabalho é composto por uma seção de gatilho e trabalhos:
- Um gatilho inicia o fluxo de trabalho na seção
on
. O fluxo de trabalho é executado por padrão em um agendamento cron e quando uma solicitação de pull é feita por meio de branches e caminhos correspondentes. Saiba mais sobre eventos que disparam fluxos de trabalho. - Na seção de trabalhos do fluxo de trabalho, você faz check-out de código e faz logon no Azure com o segredo da entidade de serviço.
- A seção de trabalhos também inclui uma ação de instalação que instala e configura a CLI do Machine Learning (v2). Depois que a CLI é instalada, a ação executar trabalho executa o arquivo
pipeline.yml
do Azure Machine Learning para treinar um modelo com os dados de táxi de NOVA YORK.
Habilitar seu fluxo de trabalho
No repositório clonado, abra
.github/workflows/cli-jobs-pipelines-nyc-taxi-pipeline.yml
e verifique se o fluxo de trabalho tem esta aparência.name: cli-jobs-pipelines-nyc-taxi-pipeline on: workflow_dispatch: schedule: - cron: "0 0/4 * * *" pull_request: branches: - main - sdk-preview paths: - cli/jobs/pipelines/nyc-taxi/** - .github/workflows/cli-jobs-pipelines-nyc-taxi-pipeline.yml - cli/run-pipeline-jobs.sh - cli/setup.sh jobs: build: runs-on: ubuntu-latest steps: - name: check out repo uses: actions/checkout@v2 - name: azure login uses: azure/login@v1 with: creds: ${{secrets.AZURE_CREDENTIALS}} - name: setup run: bash setup.sh working-directory: cli continue-on-error: true - name: run job run: bash -x ../../../run-job.sh pipeline.yml working-directory: cli/jobs/pipelines/nyc-taxi
Selecione Exibir execuções.
Habilite os fluxos de trabalho selecionando Eu entendo meus fluxos de trabalho, prossiga e habilite-os.
Selecione o fluxo de trabalho cli-jobs-pipelines-nyc-taxi-pipeline e escolha Habilitar fluxo de trabalho.
Selecione Executar fluxo de trabalho e escolha a opção Executar fluxo de trabalho agora.
Etapa 6: verificar a execução do seu fluxo de trabalho
Abra a execução concluída do seu fluxo de trabalho e verifique se o trabalho de build foi executado com êxito. Você verá uma marca de verificação verde ao lado do trabalho.
Abra o Estúdio do Azure Machine Learning e navegue até o nyc-taxi-pipeline-example. Verifique se cada parte do trabalho (preparação, transformação, treinamento, previsão, pontuação) foi concluída e se há uma marca de verificação verde.
Limpar os recursos
Quando seu grupo de recursos e repositório não forem mais necessários, limpe os recursos implantados excluindo o grupo de recursos e o repositório GitHub.