Recursos Machine Learning da Microsoft – Jupyter Hub

Olá pessoal!

No artigo anterior descrevi como utilizar a Máquina Virtual de Data Science, disponibilizada no Microsoft Azure, para realizar atividades de Machine Learning. Nele criamos uma sessão R e desenvolvemos um modelo de classificação para mensagens com o objetivo de identificar aqueles que são SPAM.

Agora irei mostrar como podemos facilmente acessar o Jupyter Hub e conseguir utilizar todo o poder computacional provisionado em nossa máquina virtual.

Acessando o Jupyter Hub

Conforme visto no artigo anterior, a máquina virtual de Data Science já possui vários recursos e bibliotecas instalados. E um destes é o Jupyter Notebook para R e Python o qual podemos acessar via HTTPS.

No ato da criação da máquina virtual, um dos pontos que configuramos foi a parte de Networking, com as portas que seriam disponibilizadas para acesso externo.

Por padrão, o Azure disponibiliza apenas algumas portas como a do SSH, JupyterHub e RStudioServer:

Para acessar o Jupyter Hub precisamos disponibilizar a porta 8000. Se por algum motivo a sua máquina virtual não permite acesso a essa porta, então acesse novamente as configurações de Networking da máquina virtual no Azure e inclua a regra para permitir acesso externo a porta 8000:

Feito isso, você pode agora acessar o JupyterHub através do endereço: https://<domain-name-or-ip>/:8000/

IMPORTANTE: O Jupyter Hub está disponível através da porta 8000 via HTTPS. Poderá aparecer alerta sobre acesso HTTPS com problema de certificado. Nesse caso, acesse opções avançadas para prosseguir mesmo assim.

Serão também solicitados usuário e senha. Aqui você deve especificar as mesmas credenciais definidas no ato da criação da VM. Após o login você será então redirecionado para a página inicial do Jupyter Hub que irá exibir várias pastas com exemplos de Notebooks:

Dentre esses exemplos, temos o MMLSpark, CNTK, tensorflow, SparkML, etc.

Acessando Workspace do ML Studio do Jupyter Hub da VM Data Science

Conforme vimos nos primeiros artigos da nossa série, o MLStudio é um serviço de nuvem disponibilizado pela Microsoft para desenvolver algoritmos de Machine Learning utilizando vários módulos já pré-definidos e parametrizáveis em um editor com recursos de Drag&Drop. Ele consiste de um ou mais espaços de trabalho (workspaces) onde você pode criar seus projetos e experimentos. E podemos acessar esse mesmo Workspace do Jupyter Hub da nossa máquina virtual para explorar aqui o dataset.

  1. Abra o portal do MLStudio através do link https://studio.azureml.net
  2. Entre com suas credenciais de acesso. Se não tiver, você pode criar uma nova credencial gratuitamente.
  3. Ao entrar no MLStudio, acesse o item de menu “SETTINGS” e copie o Workspace ID:
  4. Na aba “AUTHORIZATION TOKENS”, copie um dos dois tokens apresentados:
  5. Pronto! Agora podemos voltar para o Jupyter Hub da nossa Máquina Virtual.
  6. Dentro do Jupyter Hub, abra o notebook “Introduction to Azure ML R notebooks”. Este Notebook é para predição de preços de casas e possui os scripts necessários para acessar o Workspace do ML Studio e também publicar um Web Service para acessar esse modelo.
    • Opcionalmente você pode também utilizar o Notebook Python “IrisClassifierPyMLWebService”.
  7. Seguindo o Notebook, em “Publishing a web service”, especifique os valores de “workspace_id” e “authorization_token” de acordo com aqueles valores obtidos a pouco do ML Studio:
  8. O próximo passo é publicar o web service usando a função “publishWebService”.
  9. Após a execução do comando, será criado um novo Web Service que pode ser acessado diretamente pelo Notebook ao também pelo próprio ML Studio:
  10. E conforme vimos no nosso primeiro artigo da série, ao clicar no Web Service, você pode testá-lo diretamente via browser ou através de um documento Excel.

Escalabilidade da Máquina Virtual

Uma das vantagens de se utilizar máquinas virtuais é que temos maior controle sobre os recursos computacionais que serão utilizados para realizar nossas atividades de Machine Learning. E na medida em que são explorados os recursos da máquina virtual, pode ser necessário provisionar mais recursos. Por exemplo, ao experimentar os notebooks para TensorFlow, é provável que uma máquina virtual mais simples não seja eficiente o suficiente para trazer resultados em um tempo aceitável.

Do mesmo modo, o contrário também pode ser verdade. Você pode ter provisionado uma capacidade maior de processamento e que está sendo subutilizada. Neste caso o ideal seria reduzir essa capacidade para reduzir os custos da máquina virtual.

Para aumentar ou diminuir a capacidade de processamento da máquina virtual, é muito simples. Basta acessar o recurso no portal do Azure e, em Configurações (Settings), selecionar Tamanho (Size). Serão exibidas novas opções de tamanho. No meu caso, por exemplo, vou selecionar uma máquina virtual NC6 para executar os notebooks redes neurais.

Uma única observação importante é que esse redimensionamento pode afetar os seus arquivos e dados armazenados no disco local da máquina virtual. Nesse caso, recomenda-se utilizar outros recursos para armazenamento desses arquivos, como o File Storage (ver documentação).

Considerações Finais

Vimos neste artigo uma breve apresentação do recurso Jupyter Hub disponibilizado pela máquina virtual de Data Science disponibilizada pela Microsoft. É uma forma rápida e simples para ter acesso aos recursos computacionais provisionados na máquina virtual.

Nos próximos artigos iremos explorar mais outros recursos disponibilizados pela Microsoft para Data Science, como o Azure DataBricks.

Até a próxima!

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s