Configure um laboratório para ensinar ciência de dados com Python e Jupyter Notebooks

Este artigo descreve como configurar uma máquina virtual (VM) de modelo no Azure Lab Services que inclui ferramentas para ensinar os alunos a usar o Jupyter Notebooks. Você também aprende como os usuários do laboratório podem se conectar a blocos de anotações em suas máquinas virtuais.

Jupyter Notebooks é um projeto de código aberto que permite combinar facilmente rich text e código-fonte Python executável em uma única tela, conhecida como um notebook. Execute um bloco de anotações para criar um registro linear de entradas e saídas. Essas saídas podem incluir texto, tabelas de informações, gráficos de dispersão e muito mais.

Nota

Este artigo faz referência a recursos disponíveis em planos de laboratório, que substituíram as contas de laboratório.

Pré-requisitos

  • Para configurar este laboratório, você precisa acessar uma assinatura do Azure. Discuta com o administrador da sua organização para ver se consegue obter acesso a uma subscrição existente do Azure. Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.

Definir configurações do plano de laboratório

Depois de ter uma assinatura do Azure, você pode criar um plano de laboratório no Azure Lab Services. Para obter mais informações sobre como criar um novo plano de laboratório, consulte Guia de início rápido: configurar recursos para criar laboratórios. Você também pode usar um plano de laboratório existente.

Este laboratório usa uma das imagens da Máquina Virtual de Ciência de Dados como a imagem de VM base. Estas imagens estão disponíveis no Azure Marketplace. Essa opção permite que os criadores de laboratório selecionem a imagem como uma imagem base para seu laboratório. Você precisa habilitar essas imagens em seu plano de laboratório.

Siga estas etapas para habilitar essas imagens do Azure Marketplace disponíveis para criadores de laboratório.

  • Selecione uma das seguintes imagens do Azure Marketplace, dependendo dos requisitos do seu sistema operacional:

    • Máquina Virtual de Ciência de Dados – Windows Server 2019/Windows Server 2022
    • Máquina Virtual de Ciência de Dados – Ubuntu 20.04
  • Como alternativa, crie uma imagem de VM personalizada:

    As imagens de VM de Ciência de Dados no Azure Marketplace já estão configuradas com o Jupyter Notebooks. Essas imagens também incluem outras ferramentas de desenvolvimento e modelagem para ciência de dados. Se você não precisa dessas ferramentas extras e deseja uma configuração leve com apenas blocos de anotações Jupyter, crie uma imagem de VM personalizada. Para obter um exemplo, consulte Instalando o JupyterHub no Azure.

    Depois de criar a imagem personalizada, carregue a imagem em uma galeria de computação para usá-la com o Azure Lab Services. Saiba mais sobre como usar a galeria de computação no Azure Lab Services.

Criar um laboratório

Configuração da máquina de modelo

Depois de criar um laboratório, crie uma VM de modelo baseada no tamanho da máquina virtual e na imagem que você escolher. Configure a VM de modelo com tudo o que você deseja fornecer aos seus alunos para esta classe. Para obter mais informações, consulte Criar e gerenciar um modelo no Azure Lab Services.

As imagens de VM de Ciência de Dados vêm com muitas das estruturas e ferramentas de ciência de dados necessárias para esse tipo de classe. Por exemplo, as imagens incluem:

A Máquina Virtual de Ciência de Dados – A imagem do Ubuntu é provisionada com o servidor X2Go para permitir que os usuários do laboratório usem uma experiência gráfica de desktop.

Habilitando ferramentas para usar GPUs

Se você estiver usando o tamanho de GPU pequena alternativa (computação), recomendamos verificar se as estruturas e bibliotecas de Ciência de Dados estão configuradas corretamente para usar GPUs. Talvez seja necessário instalar uma versão diferente dos drivers NVIDIA e do kit de ferramentas CUDA. Para configurar as GPUs, você deve consultar a documentação da estrutura ou da biblioteca.

Por exemplo, para validar que o TensorFlow usa a GPU, conecte-se à VM de modelo e execute o seguinte código Python-TensorFlow no Jupyter Notebooks:

import tensorflow as tf
from tensorflow.python.client import device_lib

print(device_lib.list_local_devices())

Se a saída desse código se parecer com o seguinte resultado, o TensorFlow não está usando a GPU:

[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 15833696144144374634
]

Continuando com este exemplo, consulte Suporte a GPU TensorFlow para obter orientação. As orientações do TensorFlow abrangem:

Depois de seguir as etapas do TensorFlow para configurar a GPU, quando você executar novamente o código de teste, você verá resultados semelhantes à saída a seguir.

[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 15833696144144374634
, name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 11154792128
locality {
  bus_id: 1
  links {
  }
}
incarnation: 2659412736190423786
physical_device_desc: "device: 0, name: NVIDIA Tesla K80, pci bus id: 0001:00:00.0, compute capability: 3.7"
]

Fornecer blocos de anotações para a turma

A próxima tarefa é fornecer aos usuários do laboratório blocos de anotações que você deseja que eles usem. Você pode salvar blocos de anotações localmente na VM de modelo para que cada usuário de laboratório tenha sua própria cópia.

Se você quiser usar blocos de anotações de exemplo do Aprendizado de Máquina do Azure, veja como configurar um ambiente com o Jupyter Notebooks.

Publicar a máquina de modelos

Para disponibilizar a VM de laboratório para usuários de laboratório, publique o modelo. A VM de laboratório tem todas as ferramentas e blocos de anotações locais que você configurou anteriormente.

Conecte-se ao Jupyter Notebooks

As seções a seguir mostram diferentes maneiras para os usuários do laboratório se conectarem aos Blocos de Anotações do Jupyter na VM do laboratório.

Usar Blocos de Anotações Jupyter na VM de laboratório

Os usuários de laboratório podem se conectar de sua máquina local à VM de laboratório e, em seguida, usar os Blocos de Anotações Jupyter dentro da VM de laboratório.

Se você usar uma VM de laboratório baseada no Windows, os usuários de laboratório poderão se conectar a suas VMs de laboratório por meio da área de trabalho remota (RDP). Para obter mais informações, consulte como se conectar a uma VM de laboratório do Windows.

Se você usar uma VM de laboratório baseada em Linux, os usuários de laboratório poderão se conectar a suas VMs de laboratório por meio de SSH ou usando X2Go. Para obter mais informações, consulte como se conectar a uma VM de laboratório Linux.

Túnel SSH para o servidor Jupyter na VM

Para laboratórios baseados em Linux, você também pode se conectar diretamente do seu computador local ao servidor Jupyter dentro da VM de laboratório. O protocolo SSH permite o encaminhamento de portas entre o computador local e um servidor remoto. Esta é a VM de laboratório do usuário. Um aplicativo executado em uma determinada porta no servidor é encapsulado para a porta de mapeamento no computador local.

Siga estas etapas para configurar um túnel SSH entre a máquina local de um usuário e o servidor Jupyter na VM de laboratório:

  1. Vá para o site do Azure Lab Services.

  2. Verifique se a VM de laboratório baseada em Linux está em execução.

  3. Selecione o ícone >Conectar via SSH para obter o comando de conexão SSH.

    O comando de conexão SSH se parece com o exemplo a seguir:

    ssh -p 12345 student@ml-lab-00000000-0000-0000-0000-000000000000.eastus2.cloudapp.azure.com
    

    Saiba mais sobre como se conectar a uma VM Linux.

  4. No computador local, inicie um terminal ou prompt de comando e copie a cadeia de conexão SSH para ele. Em seguida, adicione -L 8888:localhost:8888 à cadeia de comando, que cria o túnel entre as portas.

    O comando final deve ser semelhante ao exemplo a seguir.

    ssh –L 8888:localhost:8888 -p 12345 student@ml-lab-00000000-0000-0000-0000-000000000000.eastus.cloudapp.azure.com
    
  5. Pressione Enter para executar o comando.

  6. Quando solicitado, forneça a senha da VM de laboratório para se conectar à VM de laboratório.

  7. Quando você se conectar à VM, inicie o servidor Jupyter usando este comando:

    jupyter notebook
    

    O comando gera uma URL para o servidor Jupyter no terminal. O URL deve ser semelhante a este exemplo:

    http://localhost:8888/?token=8c09ecfc93e6a8cbedf9c66dffdae19670a64acc1d37
    
  8. Para se conectar ao seu Jupyter Notebook e trabalhar nele, cole este URL em um navegador no computador local.

    Nota

    O Visual Studio Code também permite uma ótima experiência de edição do Jupyter Notebook. Você pode seguir as instruções sobre como se conectar a um servidor Jupyter remoto e usar a mesma URL da etapa anterior para se conectar a partir do VS Code em vez do navegador.

Fazer uma estimativa dos custos

Esta seção fornece uma estimativa de custo para executar essa classe para 25 usuários de laboratório. São 20 horas de aula programadas. Além disso, cada usuário recebe uma cota de 10 horas para trabalhos de casa ou tarefas fora do horário de aula agendado. O tamanho da VM escolhido foi a GPU pequena alternativa (computação), que é de 139 unidades de laboratório. Se você quiser usar o tamanho Pequeno (20 unidades de laboratório) ou Médio (42 unidades de laboratório), você pode substituir a parte da unidade de laboratório na equação aqui com o número correto.

Aqui está um exemplo de uma possível estimativa de custo para esta classe: 25 lab users * (20 scheduled hours + 10 quota hours) * 139 lab units * 0.01 USD per hour = 1042.5 USD.

Importante

Esta estimativa de custos é apenas para fins de finalidade, por exemplo. Para obter detalhes atuais sobre preços, consulte Preços dos Serviços de Laboratório do Azure.

Neste artigo, você aprendeu como criar um laboratório para uma classe Jupyter Notebooks e como o usuário pode se conectar a seus blocos de anotações na VM de laboratório. Você pode usar uma configuração semelhante para outras classes de aprendizado de máquina.

A imagem do modelo agora pode ser publicada no laboratório. Para obter mais informações, consulte Publicar a VM de modelo.

Ao configurar seu laboratório, consulte os seguintes artigos: