Recursos Machine Learning da Microsoft – Team Data Science Process

Olá pessoal,

Sejam bem vindos ao blog talkitbr! Nas últimas semanas tenho publicado vários artigos buscando descrever vários recursos que a Microsoft provê para realizar atividades relacionadas a Ciência de Dados como um todo que envolvem criação de modelos de Machine Learning, publicação de modelos na nuvem, etc.

Já neste artigo trago informações sobre um processo de Data Science chamado TDSP – Team Data Science Process. De acordo com a documentação, o TDSP propõe uma metodologia de Data Science ágil e iterativa, com o propósito de prover soluções de análise preditiva e aplicações inteligentes de forma ágil e que auxiliam a colaboração e aprendizado em equipe. Este processo engloba uma série de práticas e estruturas recomendadas pela Microsoft e indústria visando facilitar a implementação de projetos de Data Science. Seguem os principais componentes do TDSP:

O ciclo de vida do TDSP define os passos que os projetos devem seguir, desde o início até sua conclusão. É uma alternativa a outros ciclos de vida conhecidos como CRISP-DM e KDD e também podendo ser utilizado em conjunto com eles. Porém o TDSP está focado no contexto de projetos de Data Science que tem como objetivo construir aplicações inteligentes que incluem análise preditiva usando Machine Learning ou Inteligência Artificial (Artificial Intelligence – AI) e que devem ser utilizados em um ambiente de produção que envolve escalabilidade e alta disponibilidade.

Segue diagrama com visão geral do ciclo de vida do TDSP (informações detalhadas podem ser obtidas neste link):

Conforme pode ser observado na figura, os principais passos do TDSP são:

  • Business Understanding: engloba definição de objetivos e identificação das fontes de dados que sejam relevantes e que possuem acurácia quanto aos objetivos do projeto.
  • Data Acquisition and Understanding: engloba tanto a ingestão dos dados dentro do ambiente onde será realizada análise, como também identificação se os dados obtidos são suficientes para atingir aos objetivos do projeto.
  • Modeling: engloba a descoberta de novos atributos ou features (feature engineering); construção e avaliação do modelo que irá realizar a predição conforme objetivos do projeto; e determinar se o modelo obtido é viável para ser utilizado em um abiente de produção.
  • Deployment: Implantação do modelo para um ambiente de produção ou de homologação para que possa ser avaliado pelo usuário final, incluindo devido controle de versão.
  • Customer Acceptance: Finalização dos entregáveis do projeto e seu devido provisionamento em ambiente de produção.

Cada um destes passos envolve artefatos que deverão ser construídos no decorrer do processo e que podem ser consultados na própria documentação do ciclo de vida do TDSP.

O TDSP pode ser adotado em diferentes cenários. Porém aqui irei focar no uso através do Azure Machine Learning Workbench. Para demais cenários, acessar o link TDSP – Team Data Science Process Documentation.

Template de Projetos TDSP

O template do projeto possui essencialmente três pastas:

  • code: Contem os scripts de código do seu projeto.
  • docs: Contem a documentação do projeto.
  • sample_data: Contem um sample pequeno do dataset (até cerca de 5MB) que pode ser usado no início do desenvolvimento do projeto ou também para testes.

Além disso, sugere-se ter na raiz do projeto e em todas as pastas de código arquivos Markdown, chamados ReadMe.md, contendo detalhes da execução do projeto e, no caso das pastas de código, dos scripts. Qualquer outra documentação e imagens devem ser mantidos na pasta “docs” a qual é ignorada pelo Azure Machine Learning na execução dos experimentos.

Criando um projeto TDSP no Workbench

A seguir irei descrever os passos para a criação de um projeto usando o template TDSP. Um recurso importante na hora de criar o projeto no Workbench é a especificação de um repositório Git, sendo este passo fortemente recomendado. Para saber mais como criar esse repositório, acesse a documentação “Integrar Repositórios Git”.

Para criar um projeto que siga o template do TDSP, basta usar o próprio template disponível no ato da criação:

  1. Abrir o Azure Machine Learning Workbench
  2. Acessar o comando “File > New Project…”
  3. Se tiver um repositório no Visual Studio Team Services (VSTS), especificar a URL em “Visualstudio.com GIT Repository URL”
  4. Selecionar a opção TDSP Template

    Observação: Poderá ocorrer erro de permissão de acesso ao repositório no ato da criação do projeto. Neste caso, deve-se gerar um token de acesso no VSTS e criar o projeto no Workbench via linha de comando

    • No VSTS, abrir a opção Security associada a sua conta
    • Criar novo “Personal access token”:
    • De volta no Workbench, abrir a linha de comando através de File > Open Command Prompt e executar a seguinte linha de comando (requer Azure CLI):
      # Create a new project that has a Git repo by using a personal access token.
      $ az ml project create -a <Experimentation account name> -n <project name> -g <resource group name> -w <workspace name> --template-url https://github.com/Azure/MachineLearningSamples-tdsp.git -r <Git repo URL> --vststoken <Team Services personal access token>
      
    • Depois de criado o projeto, voltar para o Workbench, selecionar o Workspace onde foi criado o projeto e então abrir o projeto recém criado.

Ao término da criação do projeto, será criada uma estrutura conforme descrito anteriormente:

Agora é só incluir os scripts e arquivos do projeto seguindo as recomendações dentro da estrutura padrão do projeto.

Exemplo de uso do TDSP no Workbench

Vamos agora explorar um dos templates disponíveis no Workbench que usam o TDSP.

  1. Clique em File > New Project
  2. Selecione o template “Classify US Incomes – TSDP Project”
    • Para associar a um repositório deve-se seguir os mesmos passos descritos anteriormente.

Vamos explorar um pouco os arquivos contidos no projeto. Note que temos as mesmas pastas do template original, mas agora com scripts que irão ser executados para se obter, neste caso, classificação de rendimentos de cidadãos americanos:

  1. Em “01_data_acquisition_and_understanding” são definidos scripts para fazer download dos dados e definir os dados de treino e teste, além do Notebook Python IDEAR (Interactive Data Exploration, Analysis, and Reporting)
  2. Em “02_modeling”, temos os scripts para criação do modelo. São definidos também arquivos Python Notebook que ajudam a visualizar melhor os dados usando o Jupyter Notebook
  3. Em “03_deploy”, temos Notebook Pyhton e scripts para deploy e do modelo e posterior utilização
  4. Finalmente em “unit_test” temos alguns scripts para fazer teste unitário dos scripts que compõe nosso projeto.
  5. Vamos começar executando o script “01_data_acquisition_and_understanding/main.py”. Podemos executá-lo tanto localmente ou definir um outro target, conforme já descrevi em artigos anteriores:
  6. Em seguida, vamos executar o script de Feature Engineering, o “02_modeling/Main_FeatureEngineering.py” para fazer os ajustes necessários nos dados.
  7. O próximo passo é a criação do modelo através do script “02_modeling/Main_ModelCreation.py” Aqui estamos usando um modelo de classificação binária utilizando Random Forest e ElasticNet.
  8. Depois é o momento de avaliar o resultado obtido considerando os dados de teste obtidos pelo script “01_data_acquisition_and_understanding/main.py”. Para isso, devemos executar o script “02_modeling/Main_ScoringAndEvaluation.py”.
  9. Ao término, temos todo o histórico de execução de tarefas:
  10. Ao clicar último Job que corresponde ao scoring e avaliação, será exibida a acurária dos modelos testados:
  11. Por fim, em deployment, inicialmente seguir o procedimento descrito em “03_deployment/ReadMe.md” para efetuar a implantação do serviço usando Azure Model Management. Para detalhes da execução desse procedimento, ver meu último artigo sobre Azure Model Management.
  12. Em seguida executar o script “03_deployment/Score.py” usando o serviço já disponível localmente ou na nuvem.

Considerações Finais

Neste artigo exploramos um pouco o processo Team Data Science, e demonstramos como utilizá-lo dentro do Azure Machine Learning Workbench.

Para maiores detalhes sobre o TDSP e outras informações citadas neste artigo, siga os links ou também escreva um comentário aqui.

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