Tutorial: Introdução a um script do Python no Azure Machine Learning (SDK v1, parte 1 de 3)
APLICA-SE A: SDK do Python azureml v1
Neste tutorial, você executará seu primeiro script do Python na nuvem com o Azure Machine Learning. Este tutorial é a primeira parte de uma série com duas partes.
Este tutorial evita a complexidade de treinar um modelo de machine learning. Você executará um script Python "Olá, Mundo" na nuvem. Você aprenderá como um script de controle é usado para configurar e criar uma execução no Azure Machine Learning.
Neste tutorial, você irá:
- Criar e executar um script "Olá, Mundo!" do Python.
- Criar um script de controle do Python para enviar "Olá, Mundo!" para o Azure Machine Learning.
- Entender os conceitos do Azure Machine Learning no script de controle.
- Enviar e executar o script "Olá, Mundo!".
- Exibe a saída do código na nuvem.
Pré-requisitos
- Conclua Criar os recursos que você precisa para começar para criar um espaço de trabalho e uma instância de computação para usar nesta série de tutoriais.
-
- Crie um cluster de computação baseado em nuvem. Nomeie-o como 'cpu-cluster' para corresponder ao código neste tutorial.
Criar e executar um script do Python
Este tutorial usa a instância de computação como seu computador de desenvolvimento. Primeiro, crie algumas pastas e o script:
- Entre no Estúdio do Azure Machine Learning e selecione seu workspace, se solicitado.
- À esquerda, selecione Notebooks
- Na barra de ferramentas Arquivos, selecione + e escolha Criar pasta.
- Dê à pasta o nome get-started.
- À direita do nome da pasta, use … para criar outra pasta em get-started.
- Dê à nova pasta o nome src. Use o link Editar local se o local do arquivo não estiver correto.
- À direita da pasta src, use as … para criar um arquivo na pasta src.
- Dê ao arquivo o nome hello.py. Alterne o Tipo de arquivo para Python ( .py)*.
Copie este código para o arquivo:
# src/hello.py
print("Hello world!")
A estrutura de pastas do projeto agora terá a seguinte aparência:
Testar o script
Você pode executar o código localmente, o que, nesse caso, significa na instância de computação. A execução local do código traz o benefício da depuração interativa do código.
Se você interrompeu a instância de computação anteriormente, inicie-a agora com a ferramenta Iniciar computação à direita da lista suspensa de computação. Aguarde cerca de um minuto para que o estado mude para Em execução.
Selecione Salvar e executar script no terminal para executar o script.
Você verá a saída do script na janela do terminal que é aberta. Feche a guia e selecione Terminar para fechar a sessão.
Criar um script de controle
Um script de controle permite que você execute o script hello.py
em diferentes recursos de computação. Use o script de controle para controlar como e em que local o código de machine learning é executado.
Selecione as … no final da pasta get-started para criar um arquivo. Crie um arquivo Python chamado run-hello.py e copie/cole o seguinte código nesse arquivo:
# get-started/run-hello.py
from azureml.core import Workspace, Experiment, Environment, ScriptRunConfig
ws = Workspace.from_config()
experiment = Experiment(workspace=ws, name='day1-experiment-hello')
config = ScriptRunConfig(source_directory='./src', script='hello.py', compute_target='cpu-cluster')
run = experiment.submit(config)
aml_url = run.get_portal_url()
print(aml_url)
Dica
Se você usou outro nome quando criou o cluster de cálculo, ajuste o nome no código compute_target='cpu-cluster'
também.
Compreender o código
Aqui está uma descrição de como o script de controle funciona:
ws = Workspace.from_config()
O workspace conecta-se ao workspace do Azure Machine Learning, de modo que você possa se comunicar com seus recursos do Azure Machine Learning.
experiment = Experiment( ... )
O experimento oferece uma forma simples de organizar vários trabalhos com um único nome. Mais tarde, você pode ver como os experimentos facilitam a comparação de métricas entre dezenas de trabalhos.
config = ScriptRunConfig( ... )
ScriptRunConfig encapsula seu código hello.py
e o passa para seu workspace. Como o nome sugere, você pode usar essa classe para configurar como deseja que seu script seja executado no Azure Machine Learning. Ele também especifica em qual destino de computação o script é executado. Nesse código, o destino é o cluster de cálculo criado no tutorial de configuração.
run = experiment.submit(config)
Envia o seu script. Esse envio é chamado de execução. Na v2, ele foi renomeado para um trabalho. Uma execução/trabalho encapsula uma única execução do seu código. Use um trabalho para monitorar o progresso do script, capturar a saída, analisar os resultados, visualizar métricas, entre outros.
aml_url = run.get_portal_url()
O objeto run
fornece um identificador na execução do seu código. Monitore seu progresso do estúdio do Azure Machine Learning com a URL que imprime do script Python.
Enviar e executar seu código na nuvem
Selecione Salvar e executar script no terminal para executar o script de controle que, por sua vez, executa
hello.py
no cluster de cálculo criado no tutorial de configuração.No terminal, talvez você precise entrar nele para se autenticar. Copie o código e siga o link para concluir esta etapa.
Depois de autenticado, você verá um link no terminal. Selecione o link para exibir o trabalho.
Monitorar o código na nuvem usando o estúdio
A saída do script contém um link para o estúdio que tem esta aparência: https://ml.azure.com/experiments/hello-world/runs/<run-id>?wsid=/subscriptions/<subscription-id>/resourcegroups/<resource-group>/workspaces/<workspace-name>
.
Siga o link. No início, você verá um status de Na fila ou Preparação. A primeira execução leva de 5 a 10 minutos para ser concluída. Isso ocorrerá devido ao seguinte:
- Uma imagem do Docker será criada na nuvem
- O cluster de cálculo será redimensionado de 0 para 1 nó
- A imagem do Docker será baixada na computação.
Os trabalhos subsequentes são mais rápidos (aproximadamente 15 segundos) à medida que a imagem do Docker é armazenada em cache na computação. Você pode testar isso reenviando o código abaixo após a conclusão do primeiro trabalho.
Aguarde cerca de 10 minutos. Você verá uma mensagem informando que o trabalho foi concluído. Em seguida, use Atualizar para ver o status mudar para Concluído. Quando o trabalho for concluído, vá para a guia Saídas + logs. Lá, você pode ver um arquivo std_log.txt
na pasta user_logs
. A saída do script está neste arquivo.
As pastas azureml-logs
e system-logs
contêm arquivos que podem ser úteis quando você está depurando trabalhos remotos na nuvem.
Próxima etapa
Neste tutorial, você pegou um script "Olá, Mundo!" simples e o executou no Azure. Você viu como se conectar ao seu Workspace do Azure Machine Learning, criar um experimento e enviar o código hello.py
para a nuvem.
No próximo tutorial, você vai aprimorar esses aprendizados executando algo mais interessante do que print("Hello world!")
.
Observação
Caso deseje concluir a série de tutoriais aqui e não progredir para a próxima etapa, lembre-se de limpar seus recursos.