Usar ações do GitHub com o Azure Machine Learning
APLICA-SE A:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (current)
Comece pelo GitHub Actions para preparar um modelo no Azure Machine Learning.
Este artigo ensinará como criar um fluxo de trabalho de Ações do GitHub que cria e implanta um modelo de aprendizado de máquina no Azure Machine Learning. Você treinará um modelo de regressão linear scikit-learn no conjunto de dados do NYC Taxi.
O GitHub Actions usa um arquivo YAML (.yml) de fluxo de trabalho no caminho do /.github/workflows/
repositório. Esta definição contém as várias etapas e 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:
Uma área de trabalho do Azure Machine Learning. Se você não tiver um, use as etapas no artigo Guia de início rápido: criar recursos do espaço de trabalho para criar um.
Para instalar o Python SDK v2, use o seguinte comando:
pip install azure-ai-ml azure-identity
Para atualizar uma instalação existente do SDK para a versão mais recente, use o seguinte comando:
pip install --upgrade azure-ai-ml azure-identity
Para obter mais informações, consulte Instalar o Python SDK v2 para Azure Machine Learning.
- Uma conta GitHub. Se não tiver uma, inscreva-se gratuitamente.
Passo 1: Obter o código
Fork o seguinte repo no GitHub:
https://github.com/azure/azureml-examples
Clone seu repo bifurcado localmente.
git clone https://github.com/YOUR-USERNAME/azureml-examples
Etapa 2: Autenticar com o Azure
Você precisará primeiro definir como autenticar com o Azure. Você pode usar uma entidade de serviço ou OpenID Connect.
Gerar credenciais de implantação
Crie uma entidade de serviço com o comando az ad sp create-for-rbac na CLI do Azure. Execute este 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 este uso --sdk-auth
com um aviso de descontinuaçã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 seu aplicativo do Serviço de Aplicativo semelhante ao abaixo. Copie este objeto JSON para mais tarde.
{
"clientId": "<GUID>",
"clientSecret": "<GUID>",
"subscriptionId": "<GUID>",
"tenantId": "<GUID>",
(...)
}
Criar segredos
No GitHub, vá para o seu repositório.
Vá para Configurações no menu de navegação.
Selecione Segredos de Segurança > e Ações de variáveis>.
Selecione Novo segredo do repositório.
Cole toda a saída JSON do comando CLI do Azure no campo de valor do segredo. Dê o nome
AZURE_CREDENTIALS
ao segredo .Selecione Add secret (Adicionar segredo).
Etapa 3: Atualizar setup.sh
para se conectar ao seu espaço de trabalho do Azure Machine Learning
Você precisará atualizar as variáveis do arquivo de configuração da CLI para corresponder ao seu espaço de trabalho.
No repositório bifurcado, vá para
azureml-examples/cli/
.Edite
setup.sh
e atualize essas variáveis no arquivo.Variável Description GRUPO Nome do grupo de recursos LOCALIZAÇÃO Localização do espaço de trabalho (exemplo: eastus2
)ÁREA DE TRABALHO Nome do espaço de trabalho do Azure Machine Learning
Etapa 4: Atualizar pipeline.yml
com o nome do cluster de computação
Você usará um pipeline.yml
arquivo para implantar seu pipeline do Azure Machine Learning. Este é um pipeline de aprendizado de máquina e não um pipeline de DevOps. Você só precisará fazer essa atualização se estiver usando um nome diferente do nome do cpu-cluster
cluster do computador.
- No repositório bifurcado, vá para
azureml-examples/cli/jobs/pipelines/nyc-taxi/pipeline.yml
. - Sempre que vir
compute: azureml:cpu-cluster
o , atualize o valor de com o nome do cluster decpu-cluster
computação. Por exemplo, se o cluster for nomeadomy-cluster
, o novo valor seráazureml:my-cluster
. Há cinco atualizações.
Etapa 5: Executar o fluxo de trabalho de Ações do GitHub
Seu fluxo de trabalho é autenticado com o Azure, configura a CLI do Azure Machine Learning e usa a CLI para treinar um modelo no Azure Machine Learning.
Seu arquivo de fluxo de trabalho é composto por uma seção de gatilho e trabalhos:
- Um gatilho
on
inicia o fluxo de trabalho na seção. O fluxo de trabalho é executado por padrão em uma agenda cron e quando uma solicitação pull é feita a partir de ramificações e caminhos correspondentes. Saiba mais sobre eventos que acionam fluxos de trabalho. - Na seção de trabalhos do fluxo de trabalho, você faz checkout do código e faz logon no Azure com seu segredo da entidade de serviço.
- A seção de trabalhos também inclui uma ação de configuração que instala e configura a CLI do Machine Learning (v2). Depois que a CLI for instalada, a ação de tarefa de execução executará seu arquivo do Azure Machine Learning
pipeline.yml
para treinar um modelo com dados de táxi de Nova York.
Habilite seu fluxo de trabalho
No repositório bifurcado, 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 fluxos de trabalho selecionando Eu entendo meus fluxos de trabalho, vá em frente e habilite-os.
Selecione o fluxo de trabalho cli-jobs-pipelines-nyc-taxi-pipeline e escolha Ativar 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 fluxo de trabalho
Abra a execução do fluxo de trabalho concluído e verifique se o trabalho de compilação foi executado com êxito. Você verá uma marca de seleção verde ao lado do trabalho.
Abra o estúdio de Aprendizado de Máquina do Azure e navegue até o exemplo nyc-taxi-pipeline. Verifique se cada parte do seu trabalho (preparar, transformar, treinar, prever, pontuar) foi concluída e se você vê uma marca de seleção verde.
Clean up resources (Limpar recursos)
Quando o grupo de recursos e o repositório não forem mais necessários, limpe os recursos implantados excluindo o grupo de recursos e o repositório GitHub.