Como um modelo de estúdio de Machine Learning evolui de um experimento para um serviço WebHow a Machine Learning Studio model progresses from an experiment to a Web service

O Azure Machine Learning Studio fornece uma tela interativa que permite a você desenvolver, executar, testar e iterar um teste representando um modelo de análise preditiva.Azure Machine Learning Studio provides an interactive canvas that allows you to develop, run, test, and iterate an experiment representing a predictive analysis model. Há uma grande variedade de módulos disponíveis que podem:There are a wide variety of modules available that can:

  • Inserir dados em seu testeInput data into your experiment
  • Manipular os dadosManipulate the data
  • Treinar um modelo usando algoritmos de aprendizado de máquinaTrain a model using machine learning algorithms
  • Pontuar o modeloScore the model
  • Avaliar os resultadosEvaluate the results
  • Exibir os valores finaisOutput final values

Quando estiver satisfeito com seu teste, você poderá implantá-lo como um serviço Web clássico do Azure Machine Learning ou Novo serviço Web do Azure Machine Learning para que os usuários possam enviar novos dados e receber resultados.Once you’re satisfied with your experiment, you can deploy it as a Classic Azure Machine Learning Web service or a New Azure Machine Learning Web service so that users can send it new data and receive back results.

Neste artigo, ofereceremos uma visão geral sobre a mecânica de como seu modelo de Machine Learning evolui de um experimento de desenvolvimento para um serviço Web operacional.In this article, we give an overview of the mechanics of how your Machine Learning model progresses from a development experiment to an operationalized Web service.

Observação

Há outras maneiras de desenvolver e implantar modelos de aprendizado de máquina, mas este artigo se concentra em como usar o Machine Learning Studio.There are other ways to develop and deploy machine learning models, but this article is focused on how you use Machine Learning Studio. Por exemplo, para ler uma descrição de como criar um serviço Web preditivo clássico com R, confira a postagem no blog Build & Deploy Predictive Web Apps Using RStudio and Azure Machine Learning studio (Compilar e implantar aplicativos Web preditivos usando o RStudio e o Azure Machine Learning Studio).For example, to read a description of how to create a classic predictive Web service with R, see the blog post Build & Deploy Predictive Web Apps Using RStudio and Azure Machine Learning studio.

Embora o Azure Machine Learning Studio seja projetado para ajudar você a desenvolver e implantar um modelo de análise preditiva, é possível usar o Studio para desenvolver um experimento que não inclua um modelo de análise preditiva.While Azure Machine Learning Studio is designed to help you develop and deploy a predictive analysis model, it’s possible to use Studio to develop an experiment that doesn’t include a predictive analysis model. Por exemplo, um experimento pode simplesmente inserir dados, manipulá-los e gerar os resultados.For example, an experiment might just input data, manipulate it, and then output the results. Assim como um experimento de análise preditiva, você pode implantar esse teste não preditivo como um serviço Web, mas esse é um processo mais simples porque o teste não está treinando ou pontuando um modelo de aprendizado de máquina.Just like a predictive analysis experiment, you can deploy this non-predictive experiment as a Web service, but it’s a simpler process because the experiment isn’t training or scoring a machine learning model. Embora esse não seja o uso normal do Estúdio, o incluiremos na discussão para que possamos dar uma explicação completa de como funciona o Estúdio.While it’s not the typical to use Studio in this way, we’ll include it in the discussion so that we can give a complete explanation of how Studio works.

Desenvolvendo e implantando um serviço Web preditivoDeveloping and deploying a predictive Web service

Estes são os estágios pelos quais passa uma solução típica quando você a desenvolve e implanta usando o Machine Learning Studio:Here are the stages that a typical solution follows as you develop and deploy it using Machine Learning Studio:

Fluxo de implantação

Figura 1 - Estágios de um modelo típico de análise preditivaFigure 1 - Stages of a typical predictive analysis model

O teste de treinamentoThe training experiment

O teste de treinamento é a fase inicial do desenvolvimento de seu serviço Web no Machine Learning Studio.The training experiment is the initial phase of developing your Web service in Machine Learning Studio. A finalidade do teste de treinamento é fornecer a você um lugar para desenvolver, testar, iterar e, eventualmente, treinar um modelo de aprendizado de máquina.The purpose of the training experiment is to give you a place to develop, test, iterate, and eventually train a machine learning model. Você pode até mesmo treinar vários modelos simultaneamente já que procura pela melhor solução, mas assim que terminar de testar, você selecionará um único modelo treinado e eliminará o restante do experimento.You can even train multiple models simultaneously as you look for the best solution, but once you’re done experimenting you’ll select a single trained model and eliminate the rest from the experiment. Para obter um exemplo de como desenvolver um teste de análise preditiva, veja Desenvolver uma solução de análise preditiva para avaliação de risco de crédito no Azure Machine Learning Studio.For an example of developing a predictive analysis experiment, see Develop a predictive analytics solution for credit risk assessment in Azure Machine Learning Studio.

O teste preditivoThe predictive experiment

Quando você já tiver um modelo treinado em seu teste de treinamento, clique em Configurar Serviço Web e selecione Serviço Web Preditivono Machine Learning Studio para iniciar o processo de conversão de seu teste de treinamento em um teste preditivo.Once you have a trained model in your training experiment, click Set Up Web Service and select Predictive Web Service in Machine Learning Studio to initiate the process of converting your training experiment to a predictive experiment. A finalidade do experimento preditivo é usar o modelo treinado para pontuar novos dados, com o objetivo de se tornar posteriormente operacionalizado como um serviço Web do Azure.The purpose of the predictive experiment is to use your trained model to score new data, with the goal of eventually becoming operationalized as an Azure Web service.

Essa conversão é feita para você pelas seguintes etapas:This conversion is done for you through the following steps:

  • Converter o conjunto de módulos usados para treinamento em um único módulo e salvá-lo como um modelo treinadoConvert the set of modules used for training into a single module and save it as a trained model
  • Eliminar quaisquer módulos externos não relacionados à pontuaçãoEliminate any extraneous modules not related to scoring
  • Adicionar portas de entrada e saída que serão usadas pelo possível serviço WebAdd input and output ports that the eventual Web service will use

Pode haver mais alterações que você queira fazer para ter seu experimento preditivo pronto para ser implantado como um serviço Web.There may be more changes you want to make to get your predictive experiment ready to deploy as a Web service. Por exemplo, se você quiser que o serviço Web gere apenas um subconjunto dos resultados, você pode adicionar um módulo de filtragem antes da porta de saída.For example, if you want the Web service to output only a subset of results, you can add a filtering module before the output port.

O teste de treinamento não é descartado neste processo de conversão.In this conversion process, the training experiment is not discarded. Quando o processo for concluído, você terá duas guias no Estúdio: uma para o teste de treinamento e outra para o teste preditivo.When the process is complete, you have two tabs in Studio: one for the training experiment and one for the predictive experiment. Dessa forma, você poderá alterar o teste de treinamento antes de implantar o serviço Web e recompilar o teste preditivo.This way you can make changes to the training experiment before you deploy your Web service and rebuild the predictive experiment. Ou você pode salvar uma cópia do teste de treinamento para iniciar outra linha de teste.Or you can save a copy of the training experiment to start another line of experimentation.

Observação

Quando você clica em Serviço Web Preditivo, um processo automático é iniciado para converter seu teste de treinamento em um teste preditivo, e isso funciona bem na maioria dos casos.When you click Predictive Web Service you start an automatic process to convert your training experiment to a predictive experiment, and this works well in most cases. Se o seu teste de treinamento for complexo (por exemplo, se você tiver vários caminhos para treinamento reunidos), convém fazer essa conversão manualmente.If your training experiment is complex (for example, you have multiple paths for training that you join together), you might prefer to do this conversion manually. Para obter mais informações, consulte Como preparar seu modelo para implantação no Azure Machine Learning Studio.For more information, see How to prepare your model for deployment in Azure Machine Learning Studio.

O serviço WebThe Web service

Quando estiver satisfeito que seu teste preditivo está pronto, você pode implantar o serviço como um serviço Web clássico ou um novo serviço Web com base no Azure Resource Manager.Once you’re satisfied that your predictive experiment is ready, you can deploy your service as either a Classic Web service or a New Web service based on Azure Resource Manager. Para colocar em operação seu modelo implantando-o como um Serviço Web clássico do Machine Learning, clique em Implantar Serviço Web e selecione Implantar Serviço Web [clássico] .To operationalize your model by deploying it as a Classic Machine Learning Web service, click Deploy Web Service and select Deploy Web Service [Classic]. Para implantar como Novo serviço Web de Machine Learning, clique em Implantar Serviço Web e selecione Implantar Serviço Web [Novo] .To deploy as New Machine Learning Web service, click Deploy Web Service and select Deploy Web Service [New]. Os usuários podem agora enviar dados para seu modelo usando a API REST do serviço Web e receber os resultados de volta.Users can now send data to your model using the Web service REST API and receive back the results. Para saber mais, veja Como consumir um serviço Web do Azure Machine Learning.For more information, see How to consume an Azure Machine Learning Web service.

O caso não típico: criando um serviço Web não preditivoThe non-typical case: creating a non-predictive Web service

Se o seu teste não treinar um modelo de análise preditiva, você não precisará criar um teste de treinamento e um teste de pontuação. Há apenas um teste, e você pode implantá-lo como um serviço Web.If your experiment does not train a predictive analysis model, then you don’t need to create both a training experiment and a scoring experiment - there’s just one experiment, and you can deploy it as a Web service. O Machine Learning Studio detecta se o teste contém um modelo preditivo analisando os módulos usados.Machine Learning Studio detects whether your experiment contains a predictive model by analyzing the modules you’ve used.

Depois que você tiver iterado no experimento e estiver satisfeito com ele:After you’ve iterated on your experiment and are satisfied with it:

  1. Clique em Configurar Serviço Web e selecione Novo Treinamento de Serviço Web – nós de entrada e saída são adicionados automaticamenteClick Set Up Web Service and select Retraining Web Service - input and output nodes are added automatically
  2. Clique em ExecutarClick Run
  3. Clique em Implantar Serviço Web e selecione Implantar Serviço Web [clássico] ou Implantar Serviço Web [Novo] dependendo do ambiente no qual você deseja implantar.Click Deploy Web Service and select Deploy Web Service [Classic] or Deploy Web Service [New] depending on the environment to which you want to deploy.

Seu serviço Web está implantado, e você pode acessá-lo e gerenciá-lo como um serviço Web preditivo.Your Web service is now deployed, and you can access and manage it just like a predictive Web service.

Atualização de seu serviço WebUpdating your Web service

Agora que você implantou seu experimento como um serviço Web, o que acontecerá se precisar atualizá-lo?Now that you’ve deployed your experiment as a Web service, what if you need to update it?

Depende do que você precisa atualizar:That depends on what you need to update:

Para alterar a entrada ou saída, ou para modificar como o serviço Web manipula dadosYou want to change the input or output, or you want to modify how the Web service manipulates data

Se você não estiver alterando o modelo, mas estiver apenas alterando como o serviço Web manipula os dados, poderá editar o teste preditivo e clicar em Implantar Serviço Web e selecionar Implantar serviço Web [Clássico] ou Implantar serviço Web [Novo] novamente.If you’re not changing the model, but are just changing how the Web service handles data, you can edit the predictive experiment and then click Deploy Web Service and select Deploy Web Service [Classic] or Deploy Web Service [New] again. O serviço Web é parado, o teste preditivo atualizado é implantado e o serviço Web é reiniciado.The Web service is stopped, the updated predictive experiment is deployed, and the Web service is restarted.

Aqui está um exemplo: suponha que seu experimento preditivo retorne toda a linha de dados de entrada com o resultado previsto.Here’s an example: Suppose your predictive experiment returns the entire row of input data with the predicted result. Talvez você queira que o serviço Web retorne apenas o resultado.You may decide that you want the Web service to just return the result. Então adicione um módulo de Colunas de Projeto no experimento preditivo, logo antes da porta de saída, para excluir colunas que não sejam o resultado.So you can add a Project Columns module in the predictive experiment, right before the output port, to exclude columns other than the result. Quando você clica em Implantar Serviço Web e seleciona Implantar Serviço Web [Clássico] ou Implantar Serviço Web [Novo] novamente, o serviço Web é atualizado.When you click Deploy Web Service and select Deploy Web Service [Classic] or Deploy Web Service [New] again, the Web service is updated.

Você quer treinar novamente o modelo com novos dadosYou want to retrain the model with new data

Se você desejar manter a modelo de aprendizado de máquina, mas se quiser treiná-lo novamente com novos dados, terá duas opções:If you want to keep your machine learning model, but you would like to retrain it with new data, you have two choices:

  1. Treinar novamente o modelo enquanto o serviço Web está em execução – se você quiser treinar novamente seu modelo enquanto o serviço Web preditivo estiver em execução, faça isso por meio de algumas modificações no teste de treinamento para transformá-lo em um teste de novo treinamento, para poder implantá-lo como um serviço Web de novo treinamento.Retrain the model while the Web service is running - If you want to retrain your model while the predictive Web service is running, you can do this by making a couple modifications to the training experiment to make it a retraining experiment, then you can deploy it as a retraining web service. Para obter instruções sobre como fazer isso, veja Treinar novamente os modelos do Machine Learning de forma programática.For instructions on how to do this, see Retrain Machine Learning models programmatically.

  2. Volte para o teste de treinamento original e use dados de treinamento diferentes para desenvolver seu modelo – seu teste preditivo está vinculado ao serviço Web, mas o teste de treinamento não é diretamente vinculado dessa maneira.Go back to the original training experiment and use different training data to develop your model - Your predictive experiment is linked to the Web service, but the training experiment is not directly linked in this way. Se você modificar o teste de treinamento original e clicar em Configurar Serviço Web, será criado um novo teste preditivo que, quando implantado, criará um novo serviço Web.If you modify the original training experiment and click Set Up Web Service, it will create a new predictive experiment which, when deployed, will create a new Web service. Isso não atualiza simplesmente o serviço Web original.It doesn’t just update the original Web service.

    Se você precisar modificar o teste de treinamento, abra-o e clique em Salvar como para fazer uma cópia.If you need to modify the training experiment, open it and click Save As to make a copy. Isso deixará intacto o teste de treinamento original, o teste preditivo e o serviço Web.This will leave intact the original training experiment, predictive experiment, and Web service. Agora você pode criar um novo serviço Web com suas alterações.You can now create a new Web service with your changes. Depois de implantar o novo serviço Web, você poderá decidir se deseja interromper o serviço Web anterior ou mantê-lo em execução juntamente com o novo.Once you’ve deployed the new Web service you can then decide whether to stop the previous Web service or keep it running alongside the new one.

Você deseja treinar um modelo diferenteYou want to train a different model

Se você deseja fazer alterações em seu teste preditivo original, como selecionar um algoritmo de aprendizado de máquina diferente, tentar um método diferente de treinamento etc., siga o segundo procedimento descrito acima para treinar novamente seu modelo: abra o teste de treinamento, clique em Salvar como para fazer uma cópia e inicie o novo caminho de desenvolvimento de modelo, criando o teste preditivo e implantando o serviço Web.If you want to make changes to your original predictive experiment, such as selecting a different machine learning algorithm, trying a different training method, etc., then you need to follow the second procedure described above for retraining your model: open the training experiment, click Save As to make a copy, and then start down the new path of developing your model, creating the predictive experiment, and deploying the web service. Isso criará um novo serviço Web não relacionado ao original – você pode decidir qual deles, ou ambos, continuará em execução.This will create a new Web service unrelated to the original one - you can decide which one, or both, to keep running.

Próximas etapasNext steps

Para obter mais detalhes sobre o processo de desenvolvimento e teste, veja os seguintes artigos:For more details on the process of developing and experiment, see the following articles:

Para obter exemplos do processo inteiro, consulte:For examples of the whole process, see: