Partilhar via


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:

  1. Entre no estúdio do Azure Machine Learning e selecione seu espaço de trabalho, se solicitado.
  2. À esquerda, selecione Blocos de anotações
  3. Na barra de ferramentas Ficheiros , selecione +e, em seguida, selecione Criar nova pasta. A captura de tela mostra a criação de uma nova ferramenta de pasta na barra de ferramentas.
  4. Nomeie a pasta como get-started.
  5. À direita do nome da pasta, use o botão ... para criar outra pasta em Introdução. A captura de tela mostra a criação de um menu de subpasta.
  6. Nomeie a nova pasta src. Use o link Editar local se o local do arquivo não estiver correto.
  7. À direita da pasta src, use o botão ... para criar um novo arquivo na pasta src.
  8. 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:

A estrutura de pastas mostra hello.py na subpasta src.

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.

A captura de tela mostra o início da instância de computação se ela for interrompida

Selecione Salvar e executar script no terminal para executar o script.

A captura de tela mostra salvar e executar script na ferramenta de terminal na barra de ferramentas

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

  1. 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.

  2. 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.

  3. 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.