Recursos Machine Learning da Microsoft – Workbench

Olá pessoal, bem-vindos ao blog talkitbr!

Para quem ainda não acompanha o blog, publiquei nas últimas semanas vários artigos para tratar de recursos Machine Learning disponibilizados pela Microsoft. Já falamos sobre o serviços de nuvem para Machine Learning como o ML Studio e o Azure Notebooks e também tratamos de outro recurso de infraestrutura como serviço, que é a máquina virtual de Data Science.

Neste post agora irei abordar outro recurso que possui várias funcionalidades interessantes que irão ajudar o cientista de dados a realizar suas atividades: o Azure Machine Learning Workbench.

Disponível para os Sistemas Operacionais Windows e Mac OS X, o Workbench é uma aplicação Desktop que permite ao cientista de dados criar projetos de machine Learning, preparar dados e executar algoritmos em diferentes targets, como máquina local, docker local, máquina remota e clusters.

A seguir irei repassar algumas dessas funcionalidades. Para informações mais detalhadas, acesse https://docs.microsoft.com/en-us/azure/machine-learning/service/

Instalando o Azure Machine Learning Workbench

Para instalar o Workbench, você primeiro precisa se certificar que seu Sistema Operacional é suportado. Até o momento em que este artigo foi escrito, o Workbench era suportado pelas seguintes plataformas:

  • Windows 10 ou Windows Server 2016
  • macOS Sierra ou High Sierra

Se o seu sistema operacional é suportado, o próximo passo então é criar o recurso do “Machine Learning Experimentation” no Microsoft Azure. Se você não tem uma conta no Microsoft Azure, crie agora mesmo uma conta gratuitamente seguindo as orientações descritas no meu artigo Recursos Machine Learning da Microsoft – VM Data Science.

Depois disso, é só seguir as orientações descritas neste link: https://docs.microsoft.com/en-us/azure/machine-learning/service/quickstart-installation#prerequisites.

Criando Projeto no Workbench

Depois de instalado o programa, execute-o. Na primeira vez serão solicitadas suas credenciais Microsoft. Aqui você deve usar as mesmas credenciais de sua conta Azure onde foi criado o Machine Learning Experimentation. Depois de logado, selecione a opção de menu “File > New Project…”. É exibido um painel onde você pode fornecer informações sobre o novo projeto que está sendo criado:

Note que são sugeridos vários exemplos de projetos. Muitos deles podem ser obtidos em https://github.com/Azure?utf8=%E2%9C%93&q=MachineLearningSamples&type=&language=. Para exemplificar o uso do Workbench, irei criar um projeto de classificação de Flor de Iris.

  • Note que um dos campos opcionais disponíveis no formulário de criação do projeto é um repositório Git que deve ser de um projeto criado no Visual Studio Team Services: https://docs.microsoft.com/pt-br/azure/machine-learning/desktop-workbench/using-git-ml-project#step-2-create-a-team-project-or-use-an-existing-team-project. Ao especificar este campo, você pode facilmente compartilhar este projeto com outras pessoas que podem trabalhar de forma colaborativa no desenvolvimento do projeto de Data Science.

    Caso ocorra erro de acesso ao repositório GIT, você pode criar um token de segurança no VSTS (em “Security” para sua conta, selecionar opção “Add personal access tokens”) e então usar linha de comando (acessar via File > Open Command Prompt) e executar o seguinte comando com o argumento “vststoken”:

    az ml project create --name <project name> --workspace <workspace name> --account <experimentation account name> --resource-group <resource group name> --path <local folder path> --repo <VSTS repo URL> --vststoken <personal access token> -u <template url from git>
    
  • Outro campo do formulário de criação de projeto é o Workspace, que é aquele definido pelo recurso Machine Learning Experimentation criado no Azure.

Após a criação do projeto, ao abri-lo serão exibidos um readme e também um conjunto de assets padrão do projeto:

Preparação dos Dados

Todos que lidam com Machine Learning sabem que uma atividade dispendiosa é justamente a de preparação dos dados. Você deve lidar com um volume muito grande de dados e fazer várias análises para entendimento dos dados e preparação para execução do modelo. E essa atividade acaba tendo que ser revisitada várias vezes durante o processo de descoberta de conhecimento e machine learning.

A seguir irei mostrar alguns passos para preparação dos dados utilizando o Workbench. A documentação completa dos passos evidenciados neste artigo podem ser obtidos em https://docs.microsoft.com/en-us/azure/machine-learning/desktop-workbench/tutorial-classifying-iris-part-1.

  1. Com o projeto aberto no Workbench, acesse a aba de dados. Note que os dados são divididos em Data Sources e também Data Preparations.
    • Os Data Sources são os dados brutos. Eles podem ser arquivos locais (texto, excel, Parquet) ou ainda um servidor de banco de dados.
    • Os Data Preparations podem ser quantos você desejar e são criados a partir dos Data Sources.
    • Note que, para ambos os casos, temos do lado direito um painel com os Steps aplicados ao dado. Você pode nesse momento editar e também habilitar/desabilitar Steps (só para Data Preparation), tendo maior controle de como os dados estão sendo preparados.
  2. Vamos começar do Zero. No nosso diretório do projeto temos um arquivo chamado iris.csv. Adicione este arquivo como um novo Data Source:
  3. Será exibido novo item no seu conjunto de Data Sources.
  4. Note que você tem no próprio workbench, ao passar o cursor do mouse sobre uma determinada coluna, informações de Missing Values, valores válidos e erros. Além disso, você pode clicar em “Metrics” para exibir informações estatísticas de cada coluna:
  5. Clique agora em “Prepare” para realizarmos o Data Preparation desses dados.
  6. Neste momento você pode usar um mesmo pacote de Data Preparation ou criar um novo. Vamos optar por criar um novo pacote de Data Preparation
  7. Um novo item será acrescido no nosso conjunto de Data Preparations. No meu caso é o “iris-1”
  8. Certifique-se que você selecionou esse Data Preparation.
  9. Em seguida vamos iniciar a preparação alterando o nome e ordem das colunas. Os novos nomes serão: “Sepal Length”, “Sepal Width”, “Petal Length”, “Petal Width” e “Species”:
    • Note que foram incluídos Steps para cada rename feito nas colunas.
    • Próximo passo agora é fazer uma contagem de valores distintos de espécies.
  10. Selecione a coluna “Species”.
  11. Abra o menu de contexto da coluna (clicar com o botão direito do mouse sobre o cabeçalho da coluna) e selecione a opção “Value Counts”:
  12. Note que temos alguns valores nulos na coluna. Vamos removê-los aplicando um filtro. Para isso, basta clicar sobre a barra onde temos o “(null)” e clicar no sinal de menos “-“:
  13. O valor “(null)” será filtrado e será incluído um novo Step na preparação dos dados.
  14. Sobre os Steps, a qualquer momento você pode editar, remover e até mudar a ordem deles. Para isso, basta clicar no indicador do lado direito do Step para abrir o menu de contexto e escolher a opção desejada:
  15. Assim que você terminar a preparação dos dados, o próximo passo é gerar o código para obter esses dados. Para isso, abra o menu de contexto referente ao item do Data Preparation que deseja utilizar (para isso clicar com o botão direito do mouse sobre o item) e então selecione a opção “Generate Data Access Code File”.
  16. Será criado um novo arquivo python chamado “Iris-1.py” com o código mínimo necessário para obter o resultado do Data Preparation. A partir desse código você já poderá construir seu modelo:
    # Use the Azure Machine Learning data preparation package
    from azureml.dataprep import package
    
    # Use the Azure Machine Learning data collector to log various metrics
    from azureml.logging import get_azureml_logger
    logger = get_azureml_logger()
    
    # This call will load the referenced package and return a DataFrame.
    # If run in a PySpark environment, this call returns a
    # Spark DataFrame. If not, it will return a Pandas DataFrame.
    df = package.run('Iris-1.dprep', dataflow_idx=0)
    
    # Remove this line and add code that uses the DataFrame
    df.head(10)
    

Construindo Modelo no Workbench

Feita a preparação dos dados, vamos agora para a etapa de construção do modelo usando recursos como Python ou Spark.

Podemos aqui desenveolver o nosso próprio modelo, editando aquele arquivo que geramos na etapa anterior, ou podemos verificar o exemplo que já temos disponível.

Como o objetivo deste artigo é demonstrar a ferramenta, vamos seguir revisando o que temos no exemplo.

  1. Em “Files” abra o arquivo “iris_sklearn.py”. Outro arquivo é o iris_spark.py que usa as bibliotecas do Spark.
  2. Este script irá carregar as features contidas no nosso conjunto de dados, realizar o split desses dados e executar o algoritmo para classificação.
  3. Note que um dos passos envolve o uso de taxa de regularização. Essa taxa pode ser fornecida através da definição do argumento na parte superior da tela.
  4. Agora chegou o momento de executarmos esse script. Para executá-lo você deve escolher primeiro o Target. Esse Target pode ser tanto local como remoto, usando docker e até clusters.
  5. Neste artigo vamos focar na execução local. Em breve irei demonstrar como executar o script remotamente.
  6. Selecione neste momento a opção “local”. Se você tiver o docker instalado na sua máquina, pode então escolher a opção “docker”.

    • Ao definir como Target a máquina local, você deve ter instalados os pacotes requeridos pelo script.
    • Ao escolher a opção docker, será criada uma imagem com todas as dependências necessárias para executar o script. Dessa forma você não precisa instalar qualquer pacote adicional na sua máquina. Por isso essa seria a opção mais interessante.
      • Definido o Target, clique em “Run”.
      • Será criado um Job para execução do script no Target selecionado. Você pode acompanhar o progresso da execução do Job clicando no item correspondente.
      • Para visualizar os resultados de gráficos e arquivos, clicar no item em si no painel de Jobs. Serão exibidos detalhes da execução, saídas e também os logs gerados.

Visualizando Histórico

Todo trabalho de Data Science envolve vários experimentos com ajustes de valores, visando obter o melhor resultado.

Muitas vezes podemos obter um bom resultado a partir das modificações. Mas em outras vezes isso pode não ser verdade. É importante nesses casos poder acompanhar o histórico de execuções e inclusive poder comparar esses resultados.

E esse é outro recurso que o Workbench possui. Você pode a qualquer momento visualizar o histórico de execuções e compará-las.

  1. Para o script executado anteriormente, especifique como argumento o valor 0.005. Essa será nossa taxa de regularização. Depois disso execute novamente o script.
  2. Feito isso, abra o item “Runs” para visualizar as execuções.
  3. Serão mostradas as execuções por arquivo ou opção com todas as execuções.
  4. Selecione o item “iris_sklearn.py”
  5. Serão exibidos detalhes de execução do script, com duração, quantidade de execuções, entre outras informações.
  6. Na parte inferior, temos uma tabela com todas as execuções realizadas.
  7. Ao selecionar ao menos duas execuções, é exibida opção para comparação.
  8. Clique em “Compare Runs”.
  9. Será exibida outra tela comparando as execuções.
  10. Nesse caso não houve alteração. Mas aqui podemos tem uma visão clara de como nossas modificações podem afetar o resultado obtido pelo modelo.

Considerações Finais

Vimos neste artigo uma breve apresentação do recurso Azure Machine Learning Workbench. Essa é uma ferramenta que ainda está em preview, mas possui muitos recursos. Vimos aqui apenas parte desses recursos.

Você quer algo mais avançado, então siga este tutorial sobre compartilhamento de bicicletas: https://docs.microsoft.com/pt-br/azure/machine-learning/desktop-workbench/tutorial-bikeshare-dataprep.

Nos próximos artigos irei explorar ainda outros recursos do Azure Workbench para mostrar como podemos executar esse Job em vários Targets diferentes como a VM de Data Science que já exploramos e também clusters.

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 )

w

Conectando a %s