Como preparar seu modelo para implantação no Azure Machine Learning StudioHow to prepare your model for deployment in Azure Machine Learning Studio

O Azure Machine Learning Studio fornece as ferramentas necessárias para desenvolver um modelo de análise preditiva e operacionalizá-lo implantando-o como um serviço Web do Azure.Azure Machine Learning Studio gives you the tools you need to develop a predictive analytics model and then operationalize it by deploying it as an Azure web service.

Para fazer isso, use o Studio para criar um teste – chamado de teste de treinamento – em que você treina, pontua e edita o modelo.To do this, you use Studio to create an experiment - called a training experiment - where you train, score, and edit your model. Quando estiver satisfeito, você terá o modelo pronto para implantação convertendo o teste de treinamento em um teste preditivo que é configurado para pontuar dados do usuário.Once you're satisfied, you get your model ready to deploy by converting your training experiment to a predictive experiment that's configured to score user data.

Você pode ver um exemplo desse processo no Tutorial 1: Prever risco de crédito.You can see an example of this process in Tutorial 1: Predict credit risk.

Este artigo aprofunda-se nos detalhes de como um teste de treinamento é convertido em um teste preditivo e como ele é implantado.This article takes a deep dive into the details of how a training experiment gets converted into a predictive experiment, and how that predictive experiment is deployed. Ao compreender esses detalhes, você pode aprender a configurar o modelo implantado a fim de torná-lo mais eficaz.By understanding these details, you can learn how to configure your deployed model to make it more effective.

Visão geralOverview

O processo de conversão de um teste de treinamento em um teste preditivo envolve três etapas:The process of converting a training experiment to a predictive experiment involves three steps:

  1. Substitua os módulos de algoritmo do Machine Learning pelo modelo treinado.Replace the machine learning algorithm modules with your trained model.
  2. Restrinja o experimento a somente os módulos necessários para pontuação.Trim the experiment to only those modules that are needed for scoring. Um teste de treinamento inclui vários módulos que são necessárias para treinamento, mas não são necessários depois que o modelo está treinado.A training experiment includes a number of modules that are necessary for training but are not needed once the model is trained.
  3. Defina como seu modelo aceitará dados do usuário do serviço Web e quais dados será retornados.Define how your model will accept data from the web service user, and what data will be returned.

Dica

No teste de treinamento, você estará concentrado em treinar e pontuar o modelo usando seus próprios dados.In your training experiment, you've been concerned with training and scoring your model using your own data. Porém, depois de implantado, os usuários enviarão novos dados ao modelo e este retornará resultados de previsão.But once deployed, users will send new data to your model and it will return prediction results. Desse modo, à medida que você converte o teste de treinamento em um teste preditivo para prepará-lo para implantação, lembre-se de como o modelo será usado por outras pessoas.So, as you convert your training experiment to a predictive experiment to get it ready for deployment, keep in mind how the model will be used by others.

Botão Configurar Serviço WebSet Up Web Service button

Depois de executar o teste (clique em EXECUTAR na parte inferior da tela do teste), clique no botão Configurar Serviço Web (selecione a opção Serviço Web Preditivo).After you run your experiment (click RUN at the bottom of the experiment canvas), click the Set Up Web Service button (select the Predictive Web Service option). Configurar Serviço Web executa para você as três etapas de conversão do teste de treinamento em um teste preditivo:Set Up Web Service performs for you the three steps of converting your training experiment to a predictive experiment:

  1. Ele salva o modelo treinado na seção Modelos Treinados da paleta de módulos (à esquerda da tela do teste).It saves your trained model in the Trained Models section of the module palette (to the left of the experiment canvas). Ele substitui o algoritmo do Machine Learning e os módulos Treinar Modelo pelo modelo treinado salvo.It then replaces the machine learning algorithm and Train Model modules with the saved trained model.
  2. Ele analisa o seu teste e remove os módulos que foram claramente usados apenas para treinamento e não são mais necessários.It analyzes your experiment and removes modules that were clearly used only for training and are no longer needed.
  3. Ele insere módulos de entrada e saída de serviço Web em locais padrão no seu teste (esses módulos aceitam e retornam dados do usuário).It inserts Web service input and output modules into default locations in your experiment (these modules accept and return user data).

Por exemplo, o seguinte experimento treina um modelo de árvore de decisão de duas classes aumentada usando dados de censo de exemplo:For example, the following experiment trains a two-class boosted decision tree model using sample census data:

experimento de treinamento

Os módulos nesse experimento executam basicamente quatro funções diferentes:The modules in this experiment perform basically four different functions:

Funções de módulo

Ao converter esse teste de treinamento em um teste preditivo, alguns desses módulos não serão mais necessários ou agora terão outra finalidade:When you convert this training experiment to a predictive experiment, some of these modules are no longer needed, or they now serve a different purpose:

  • Dados – os dados neste conjunto de dados de exemplo não são usados durante a pontuação. O usuário do serviço Web fornecerá os dados a serem pontuados.Data - The data in this sample dataset is not used during scoring - the user of the web service will supply the data to be scored. No entanto, os metadados desse conjunto de dados, tais como tipos de dados, são usados pelo modelo treinado.However, the metadata from this dataset, such as data types, is used by the trained model. Portanto, é necessário manter o conjunto de dados no teste preditivo para que ele possa fornecer esses metadados.So you need to keep the dataset in the predictive experiment so that it can provide this metadata.

  • Preparação – dependendo dos dados de usuário que serão enviados para pontuação, esses módulos podem ou não ser necessários para processar os dados de entrada.Prep - Depending on the user data that will be submitted for scoring, these modules may or may not be necessary to process the incoming data. O botão Configurar Serviço Web não interfere neles – você precisa decidir como deseja tratá-los.The Set Up Web Service button doesn't touch these - you need to decide how you want to handle them.

    Por exemplo, nesse exemplo, o conjunto de dados de exemplo pode ter valores ausentes, portanto, um módulo Limpar Dados Ausentes foi incluído para lidar com eles.For instance, in this example the sample dataset may have missing values, so a Clean Missing Data module was included to deal with them. Além disso, o conjunto de dados de exemplo inclui colunas que não são necessárias para treinar o modelo.Also, the sample dataset includes columns that are not needed to train the model. Desse modo, o módulo Selecionar Colunas no Conjunto de Dados foi incluído para excluir essas colunas extras do fluxo de dados.So a Select Columns in Dataset module was included to exclude those extra columns from the data flow. Se souber que os dados que serão enviados para pontuação por meio do serviço Web não terão valores ausentes, você poderá remover o módulo Limpar Dados Ausentes.If you know that the data that will be submitted for scoring through the web service will not have missing values, then you can remove the Clean Missing Data module. No entanto, uma vez que o módulo Selecionar Colunas no Conjunto de Dados ajuda a definir as colunas de dados esperadas pelo modelo treinado, esse módulo precisa permanecer.However, since the Select Columns in Dataset module helps define the columns of data that the trained model expects, that module needs to remain.

  • Treinar – esses módulos são usados para treinar o modelo.Train - These modules are used to train the model. Quando você clica em Configurar Serviço Web, esses módulos são substituídos por um único módulo que contém o modelo treinado.When you click Set Up Web Service, these modules are replaced with a single module that contains the model you trained. Esse novo módulo é salvo na seção Modelos Treinados da paleta do módulo.This new module is saved in the Trained Models section of the module palette.

  • Pontuação – nesse exemplo, o módulo Dividir Dados é usado para dividir o fluxo de dados em dados de teste e de treinamento.Score - In this example, the Split Data module is used to divide the data stream into test data and training data. No teste preditivo, não estamos mais treinando, de modo que Dividir Dados pode ser removido.In the predictive experiment, we're not training anymore, so Split Data can be removed. Da mesma forma, o segundo módulo Pontuar Modelo e o módulo Avaliar Modelo são usados para comparar os resultados dos dados de teste; portanto, esses módulos não são necessários no teste preditivo.Similarly, the second Score Model module and the Evaluate Model module are used to compare results from the test data, so these modules are not needed in the predictive experiment. O módulo Modelo de Pontuação restante, contudo, é necessário para retornar um resultado de pontuação por meio do serviço Web.The remaining Score Model module, however, is needed to return a score result through the web service.

Veja como fica nosso exemplo depois do clique em Configurar Serviço Web:Here is how our example looks after clicking Set Up Web Service:

Teste preditivo convertido

O trabalho feito pelo botão Configurar Serviço Web pode ser suficiente para preparar o teste para implantação como um serviço Web.The work done by Set Up Web Service may be sufficient to prepare your experiment to be deployed as a web service. No entanto, convém trabalhar nos detalhes específicos do seu experimento.However, you may want to do some additional work specific to your experiment.

Ajustar os módulos de entrada e saídaAdjust input and output modules

No seu experimento de treinamento, você usou um conjunto de dados de treinamento, que foram processados para deixar os dados em um formato que o algoritmo de aprendizado de máquina necessitava.In your training experiment, you used a set of training data and then did some processing to get the data in a form that the machine learning algorithm needed. Se os dados que você espera receber por meio do serviço Web não precisarem desse processamento, será possível ignorá-lo: conecte a saída do módulo de entrada do serviço Web a um módulo diferente no teste.If the data you expect to receive through the web service will not need this processing, you can bypass it: connect the output of the Web service input module to a different module in your experiment. Os dados do usuário agora chegarão no modelo nesse local.The user's data will now arrive in the model at this location.

Por exemplo, por padrão, Configurar Serviço Web coloca o módulo de entrada do serviço Web na parte superior do fluxo de dados, como mostrado na figura acima.For example, by default Set Up Web Service puts the Web service input module at the top of your data flow, as shown in the figure above. Porém, podemos posicionar manualmente a Entrada do serviço Web depois dos módulos de processamento de dados:But we can manually position the Web service input past the data processing modules:

Movendo a entrada do serviço Web

Os dados de entrada fornecidos pelo serviço Web agora passarão diretamente para o módulo do Modelo de Pontuação sem qualquer pré-processamento.The input data provided through the web service will now pass directly into the Score Model module without any preprocessing.

Da mesma forma, por padrão, Configurar Serviço Web coloca o módulo de saída do serviço Web na parte inferior do fluxo de dados.Similarly, by default Set Up Web Service puts the Web service output module at the bottom of your data flow. Nesse exemplo, o serviço Web retornará ao usuário a saída do módulo do Pontuar Modelo, que inclui o vetor de dados de entrada completo, além dos resultados de pontuação.In this example, the web service will return to the user the output of the Score Model module, which includes the complete input data vector plus the scoring results. No entanto, se preferir retornar algo diferente, você poderá adicionar outros módulos antes do módulo Saída do serviço Web.However, if you would prefer to return something different, then you can add additional modules before the Web service output module.

Por exemplo, para retornar apenas os resultados da pontuação, e não todo o vetor de dados de entrada, adicione um módulo Selecionar Colunas do Conjunto de Dados para excluir todas as colunas, exceto os resultados da pontuação.For example, to return only the scoring results and not the entire vector of input data, add a Select Columns in Dataset module to exclude all columns except the scoring results. Em seguida, mova o módulo Saída do serviço Web para a saída do módulo Selecionar Colunas do Conjunto de Dados.Then move the Web service output module to the output of the Select Columns in Dataset module. O teste tem esta aparência:The experiment looks like this:

Movendo a saída do serviço Web

Adicionar ou remover módulos de processamento de dados adicionaisAdd or remove additional data processing modules

Se houver mais módulos no seu experimento que você sabe que não será necessário durante a pontuação, eles podem ser removidos.If there are more modules in your experiment that you know will not be needed during scoring, these can be removed. Por exemplo, como movemos o módulo Entrada do serviço Web para um ponto após os módulos de processamento de dados, podemos remover o módulo Limpar Dados Ausentes do teste preditivo.For example, because we moved the Web service input module to a point after the data processing modules, we can remove the Clean Missing Data module from the predictive experiment.

Nosso teste preditivo ficou assim:Our predictive experiment now looks like this:

Removendo o módulo adicional

Adicionar parâmetros de serviço Web opcionaisAdd optional Web Service Parameters

Em alguns casos, talvez você queira permitir que o usuário do serviço Web altere o comportamento dos módulos quando o serviço é acessado.In some cases, you may want to allow the user of your web service to change the behavior of modules when the service is accessed. Parâmetros de serviço Web permitem que você faça isso.Web Service Parameters allow you to do this.

Um exemplo comum é a configuração de um módulo Importar Dados para que o usuário do serviço Web implantado possa especificar outra fonte de dados quando o serviço Web for acessado.A common example is setting up an Import Data module so the user of the deployed web service can specify a different data source when the web service is accessed. Ou então, configurar o módulo Exportar Dados para que um destino diferente possa ser especificado.Or configuring an Export Data module so that a different destination can be specified.

Você pode definir os Parâmetros de Serviço Web e associá-los a um ou mais parâmetros de módulo, podendo também especificar se eles são obrigatórios ou opcionais.You can define Web Service Parameters and associate them with one or more module parameters, and you can specify whether they are required or optional. O usuário do serviço Web fornece valores para esses parâmetros quando o serviço é acessado e as ações de módulo são modificadas de acordo.The user of the web service provides values for these parameters when the service is accessed, and the module actions are modified accordingly.

Para saber mais sobre Parâmetros de Serviço Web e como usá-los, confira Usar os parâmetros do Serviço Web do Azure Machine Learning .For more information about what Web Service Parameters are and how to use them, see Using Azure Machine Learning Web Service Parameters.

Implantar o teste preditivo como um serviço WebDeploy the predictive experiment as a web service

Agora que o teste preditivo foi devidamente preparado, você pode implantá-lo como um serviço Web do Azure.Now that the predictive experiment has been sufficiently prepared, you can deploy it as an Azure web service. Usando o serviço Web, os usuários podem enviar dados para seu modelo e o modelo retornará suas previsões.Using the web service, users can send data to your model and the model will return its predictions.

Para saber mais sobre o processo completo de implantação, consulte Implantar um Serviço Web do Azure Machine LearningFor more information on the complete deployment process, see Deploy an Azure Machine Learning web service