Tutorial: Introdução a um script Python no Azure Machine Learning (SDK v1, parte 1 de 3)
APLICA-SE A: Python SDK azureml v1
Neste tutorial, você executa seu primeiro script Python na nuvem com o Azure Machine Learning. Este tutorial é a parte 1 de uma série de tutoriais em duas partes.
Este tutorial evita a complexidade de treinar um modelo de aprendizado de máquina. Você executará um script Python "Hello World" na nuvem. Você aprenderá como um script de controle é usado para configurar e criar uma execução no Aprendizado de Máquina do Azure.
Neste tutorial, vai:
- Crie e execute um "Olá mundo!" Script Python.
- Crie um script de controle Python para enviar "Hello world!" para o Azure Machine Learning.
- Entenda os conceitos do Azure Machine Learning no script de controle.
- Envie e execute o script "Olá mundo!".
- Veja a saída do seu código na nuvem.
Pré-requisitos
- Complete Crie os recursos necessários para começar a 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 'cpu-cluster' para corresponder ao código neste tutorial.
Criar e executar um script 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 espaço de trabalho, se solicitado.
- À esquerda, selecione Blocos de anotações
- Na barra de ferramentas Ficheiros , selecione +e, em seguida, selecione Criar nova pasta.
- Nomeie a pasta como get-started.
- À direita do nome da pasta, use o botão ... para criar outra pasta em Introdução.
- Nomeie a nova pasta src. Use o link Editar local se o local do arquivo não estiver correto.
- À direita da pasta src, use o botão ... para criar um novo arquivo na pasta src.
- Nomeie seu arquivo hello.py. Mude o tipo de ficheiro para Python (.py)*.
Copie este código para o seu ficheiro:
# src/hello.py
print("Hello world!")
Sua estrutura de pastas do projeto agora terá a seguinte aparência:
Teste seu script
Você pode executar seu código localmente, o que neste caso significa na instância de computação. Executar código localmente tem o benefício da depuração interativa de código.
Se você já parou sua instância de computação, 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ê vê a saída do script na janela do terminal que se abre. Feche a guia e selecione Encerrar para fechar a sessão.
Criar um script de controle
Um script de controle permite que você execute seu hello.py
script em diferentes recursos de computação. Você usa o script de controle para controlar como e onde seu código de aprendizado de máquina é executado.
Selecione o ... no final da pasta de introdução para criar um novo 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)
Gorjeta
Se você usou um nome diferente quando criou seu cluster de computação, certifique-se de ajustar 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 espaço de trabalho se conecta ao seu espaço de trabalho do Azure Machine Learning, para que você possa se comunicar com seus recursos do Azure Machine Learning.
experiment = Experiment( ... )
O Experimento fornece uma maneira simples de organizar vários trabalhos sob 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 hello.py
código e o passa para seu espaço de trabalho. Como o nome sugere, você pode usar essa classe para configurar como deseja que seu script seja executado no Aprendizado de Máquina do Azure. Ele também especifica em qual destino de computação o script é executado. Neste código, o destino é o cluster de computação que você criou no tutorial de configuração.
run = experiment.submit(config)
Envia 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 e muito mais.
aml_url = run.get_portal_url()
O run
objeto fornece um identificador na execução do seu código. Monitorize o seu progresso a partir do estúdio de Aprendizagem de Máquina do Azure com o URL que imprime a partir do script Python.
Envie e execute seu código na nuvem
Selecione Salvar e executar script no terminal para executar o script de controle, que, por sua vez, é executado
hello.py
no cluster de computação que você criou no tutorial de configuração.No terminal, poderá ser-lhe pedido que inicie sessão 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 visualizar o trabalho.
Monitore seu código na nuvem no estúdio
A saída do seu script contém um link para o estúdio que se parece com isto: https://ml.azure.com/experiments/hello-world/runs/<run-id>?wsid=/subscriptions/<subscription-id>/resourcegroups/<resource-group>/workspaces/<workspace-name>
.
Siga o link. Em primeiro lugar, você verá um status de Enfileirado ou Preparando. A primeira corrida leva de 5 a 10 minutos para ser concluída. Isso ocorre porque ocorre o seguinte:
- Uma imagem do docker é construída na nuvem
- O cluster de computação é redimensionado de 0 para 1 nó
- A imagem do docker é baixada para o computador.
Os trabalhos subsequentes são mais rápidos (~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 a alteração de status para Concluído. Quando o trabalho for concluído, vá para a guia Saídas + logs . Lá você pode ver um std_log.txt
arquivo na user_logs
pasta. A saída do seu script está neste arquivo.
As azureml-logs
pastas e system-logs
contêm arquivos que podem ser úteis quando você está depurando trabalhos remotos na nuvem.
Próximo passo
Neste tutorial, você pegou um script simples "Olá mundo!" e o executou no Azure. Você viu como se conectar ao seu espaço de trabalho do Azure Machine Learning, criar um experimento e enviar seu hello.py
código para a nuvem.
No próximo tutorial, você aproveita esses aprendizados executando algo mais interessante do que print("Hello world!")
.
Nota
Se você quiser terminar a série de tutoriais aqui e não progredir para a próxima etapa, lembre-se de limpar seus recursos.