Criar pipelines de previsão usando Azure Machine Learning e o Azure Data FactoryCreate predictive pipelines using Azure Machine Learning and Azure Data Factory

O Azure Machine Learning permite compilar, testar e implantar soluções de análise preditiva.Azure Machine Learning enables you to build, test, and deploy predictive analytics solutions. De um ponto de vista de alto nível, isso é feito em três etapas:From a high-level point of view, it is done in three steps:

  1. Crie um teste de treinamento.Create a training experiment. Conclua essa etapa usando o Azure Machine Learning Studio.You do this step by using the Azure Machine Learning studio. O Azure Machine Learning Studio é um ambiente de desenvolvimento visual colaborativo que serve para treinar e testar um modelo de análise preditiva usando dados de treinamento.Azure Machine Learning studio is a collaborative visual development environment that you use to train and test a predictive analytics model using training data.
  2. Convertê-lo em um teste preditivo.Convert it to a predictive experiment. Quando o modelo foi treinado com dados existentes e você estiver pronto para usá-lo para pontuar novos dados, você preparará e simplificará seu teste para a pontuação.Once your model has been trained with existing data and you are ready to use it to score new data, you prepare and streamline your experiment for scoring.
  3. Implantá-lo como um serviço da Web.Deploy it as a web service. Você pode publicar seu experimento de pontuação como um serviço Web do Azure.You can publish your scoring experiment as an Azure web service. Você pode enviar dados ao seu modelo via esse ponto de extremidade de serviço Web e receber previsões de resultados do modelo.You can send data to your model via this web service end point and receive result predictions from the model.

Data Factory e Machine Learning juntosData Factory and Machine Learning together

Azure Data Factory permite que você crie facilmente pipelines que usam um serviço Web publicado Azure Machine Learning para análise preditiva.Azure Data Factory enables you to easily create pipelines that use a published Azure Machine Learning web service for predictive analytics. Usando a Atividade de Execução em Lotes em um pipeline do Azure Data Factory, você pode chamar um serviço Web do Azure Machine Learning Studio para fazer previsões sobre dados em lote.Using the Batch Execution Activity in an Azure Data Factory pipeline, you can invoke an Azure Machine Learning studio web service to make predictions on the data in batch.

Ao longo do tempo, os modelos de previsão nos testes de pontuação do Azure Machine Learning Studio precisam ser reciclados usando novos conjuntos de dados de entrada.Over time, the predictive models in the Azure Machine Learning studio scoring experiments need to be retrained using new input datasets. Você pode treinar novamente um modelo em um pipeline do Data Factory executando as seguintes etapas:You can retrain a model from a Data Factory pipeline by doing the following steps:

  1. Publique o experimento de treinamento (e não um experimento preditivo) como um serviço Web.Publish the training experiment (not predictive experiment) as a web service. Essa etapa é feita no Azure Machine Learning Studio da mesma forma que você fez para expor o experimento preditivo como um serviço Web no cenário anterior.You do this step in the Azure Machine Learning studio as you did to expose predictive experiment as a web service in the previous scenario.
  2. Use a Atividade de Execução de Lote do Azure Machine Learning Studio para chamar o serviço Web para o experimento de treinamento.Use the Azure Machine Learning studio Batch Execution Activity to invoke the web service for the training experiment. Basicamente, você pode usar a Atividade de execução em lote do Azure Machine Learning Studio para chamar o serviço Web de treinamento e o serviço Web de pontuação.Basically, you can use the Azure Machine Learning studio Batch Execution activity to invoke both training web service and scoring web service.

Depois de concluir a reciclagem de treinamento, atualize o serviço Web de pontuação (experimento preditivo exposto como um serviço Web) com o modelo recém-treinado usando a Atividade de recurso de Atualização do Azure Machine Learning Studio.After you are done with retraining, update the scoring web service (predictive experiment exposed as a web service) with the newly trained model by using the Azure Machine Learning studio Update Resource Activity. Veja o artigo Atualização de modelos usando a Atividade do Recurso de Atualização para obter detalhes.See Updating models using Update Resource Activity article for details.

Serviço vinculado do Azure Machine LearningAzure Machine Learning linked service

Você cria um serviço vinculado do Azure Machine Learning para vincular um serviço Web do Azure Machine Learning a um Azure Data Factory.You create an Azure Machine Learning linked service to link an Azure Machine Learning Web Service to an Azure data factory. O serviço vinculado é usado pela atividade de execução em lotes do Azure Machine Learning e pela atividade de atualização de recursos.The Linked Service is used by Azure Machine Learning Batch Execution Activity and Update Resource Activity.

{
    "type" : "linkedServices",
    "name": "AzureMLLinkedService",
    "properties": {
        "type": "AzureML",
        "typeProperties": {
            "mlEndpoint": "URL to Azure ML Predictive Web Service",
            "apiKey": {
                "type": "SecureString",
                "value": "api key"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Consulte o artigo Compute linked services (Serviços de computação vinculados) para obter descrições sobre as propriedades na definição JSON.See Compute linked services article for descriptions about properties in the JSON definition.

O Azure Machine Learning dá suporte a serviços Web clássicos e a novos serviços Web para sua experiência de previsão.Azure Machine Learning support both Classic Web Services and New Web Services for your predictive experiment. Você pode escolher aquele que é mais adequado no Data Factory.You can choose the right one to use from Data Factory. Para obter as informações necessárias para criar o Serviço Vinculado do Azure Machine Learning, vá para https://services.azureml.net, onde todos os (novos) Serviços Web e Serviços Web Clássicos estão listados.To get the information required to create the Azure Machine Learning Linked Service, go to https://services.azureml.net, where all your (new) Web Services and Classic Web Services are listed. Clique no serviço Web que deseja acessar e clique na página Consumir.Click the Web Service you would like to access, and click Consume page. Copie a Chave Primária da propriedade apiKey e Solicitações de Lote da propriedade mlEndpoint.Copy Primary Key for apiKey property, and Batch Requests for mlEndpoint property.

Serviços Web do Azure Machine Learning

Atividade de execução em lotes do Azure Machine LearningAzure Machine Learning Batch Execution activity

O snippet JSON a seguir define uma atividade de execução em lotes do Azure Machine Learning.The following JSON snippet defines an Azure Machine Learning Batch Execution activity. A definição da atividade tem uma referência ao serviço vinculado do Azure Machine Learning que você criou anteriormente.The activity definition has a reference to the Azure Machine Learning linked service you created earlier.

{
    "name": "AzureMLExecutionActivityTemplate",
    "description": "description",
    "type": "AzureMLBatchExecution",
    "linkedServiceName": {
        "referenceName": "AzureMLLinkedService",
        "type": "LinkedServiceReference"
    },
    "typeProperties": {
        "webServiceInputs": {
            "<web service input name 1>": {
                "LinkedServiceName":{
                    "referenceName": "AzureStorageLinkedService1",
                    "type": "LinkedServiceReference"
                },
                "FilePath":"path1"
            },
            "<web service input name 2>": {
                "LinkedServiceName":{
                    "referenceName": "AzureStorageLinkedService1",
                    "type": "LinkedServiceReference"
                },
                "FilePath":"path2"
            }
        },
        "webServiceOutputs": {
            "<web service output name 1>": {
                "LinkedServiceName":{
                    "referenceName": "AzureStorageLinkedService2",
                    "type": "LinkedServiceReference"
                },
                "FilePath":"path3"
            },
            "<web service output name 2>": {
                "LinkedServiceName":{
                    "referenceName": "AzureStorageLinkedService2",
                    "type": "LinkedServiceReference"
                },
                "FilePath":"path4"
            }
        },
        "globalParameters": {
            "<Parameter 1 Name>": "<parameter value>",
            "<parameter 2 name>": "<parameter 2 value>"
        }
    }
}
PropriedadeProperty DescriçãoDescription obrigatóriosRequired
Nomename Nome da atividade no pipelineName of the activity in the pipeline SIMYes
Descriçãodescription Texto que descreve o que a atividade faz.Text describing what the activity does. NãoNo
typetype Para a atividade do U-SQL do Data Lake Analytics, o tipo de atividade é AzureMLBatchExecution.For Data Lake Analytics U-SQL activity, the activity type is AzureMLBatchExecution. SIMYes
linkedServiceNamelinkedServiceName Serviços vinculados ao serviço vinculado do Azure Machine Learning.Linked Services to the Azure Machine Learning Linked Service. Para saber mais sobre esse serviço vinculado, consulte o artigo Compute linked services (Serviços de computação vinculados).To learn about this linked service, see Compute linked services article. SIMYes
webServiceInputswebServiceInputs Pares chave-valor, mapeando os nomes das entradas do serviço Web do Azure Machine Learning.Key, Value pairs, mapping the names of Azure Machine Learning Web Service Inputs. A chave deve corresponder aos parâmetros de entrada definidos no serviço Web do Azure Machine Learning publicado.Key must match the input parameters defined in the published Azure Machine Learning Web Service. Valor é um par de propriedades FilePath e serviços vinculados do Armazenamento do Azure especificando os locais de Blob de entrada.Value is an Azure Storage Linked Services and FilePath properties pair specifying the input Blob locations. NãoNo
webServiceOutputswebServiceOutputs Pares chave-valor, mapeando os nomes das saídas do serviço Web do Azure Machine Learning.Key, Value pairs, mapping the names of Azure Machine Learning Web Service Outputs. A chave deve corresponder aos parâmetros de saída definidos no serviço Web do Azure Machine Learning publicado.Key must match the output parameters defined in the published Azure Machine Learning Web Service. Valor é um par de propriedades FilePath e serviços vinculados do Armazenamento do Azure especificando os locais de Blob de saída.Value is an Azure Storage Linked Services and FilePath properties pair specifying the output Blob locations. NãoNo
globalParametersglobalParameters Pares de chave/valor a serem passados ao ponto de extremidade do Serviço de Execução em Lotes do Azure Machine Learning Studio.Key, Value pairs to be passed to the Azure Machine Learning studio Batch Execution Service endpoint. As chaves devem corresponder aos nomes dos parâmetros do serviço Web definidos no serviço Web do Azure Machine Learning Studio publicado.Keys must match the names of web service parameters defined in the published Azure Machine Learning studio web service. Os valores são passados na propriedade GlobalParameters da solicitação de execução em lotes do Azure Machine Learning StudioValues are passed in the GlobalParameters property of the Azure Machine Learning studio batch execution request NãoNo

Cenário 1: testes usando entradas/saídas de serviço Web que se referem ao Armazenamento de Blobs do AzureScenario 1: Experiments using Web service inputs/outputs that refer to data in Azure Blob Storage

Nesse cenário, o serviço Web de Azure Machine Learning faz previsões usando dados de um arquivo em um armazenamento de blob do Azure e armazena os resultados de previsão no armazenamento de blob.In this scenario, the Azure Machine Learning Web service makes predictions using data from a file in an Azure blob storage and stores the prediction results in the blob storage. O JSON a seguir define um pipeline do Data Factory com uma atividade AzureMLBatchExecution.The following JSON defines a Data Factory pipeline with an AzureMLBatchExecution activity. Os dados de entrada e saída no Armazenamento de Blobs do Azure são referenciados usando um par de LinkedName e FilePath.The input and output data in Azure Blog Storage is referenced using a LinkedName and FilePath pair. No exemplo, os Serviços Vinculados de entradas e saídas são diferentes. Você pode usar serviços vinculados diferentes para cada uma das entradas/saídas do Data Factory de modo a selecionar os arquivos certos e enviá-los ao serviço Web do Azure Machine Learning Studio.In the sample Linked Service of inputs and outputs are different, you can use different Linked Services for each of your inputs/outputs for Data Factory to be able to pick up the right files and send to Azure Machine Learning studio Web Service.

Importante

Em seu experimento do Azure Machine Learning, as portas de entrada e saída do serviço Web e os parâmetros globais têm nomes padrão ("input1", "input2") que você pode personalizar.In your Azure Machine Learning studio experiment, web service input and output ports, and global parameters have default names ("input1", "input2") that you can customize. Os nomes que você usa para as configurações webServiceInputs, webserviceoutputs e globalParameters devem corresponder exatamente aos nomes nos testes.The names you use for webServiceInputs, webServiceOutputs, and globalParameters settings must exactly match the names in the experiments. Você pode exibir o conteúdo da solicitação de exemplo na página Ajuda da Execução em Lotes do ponto de extremidade do Azure Machine Learning Studio a fim de verificar o mapeamento esperado.You can view the sample request payload on the Batch Execution Help page for your Azure Machine Learning studio endpoint to verify the expected mapping.

{
    "name": "AzureMLExecutionActivityTemplate",
    "description": "description",
    "type": "AzureMLBatchExecution",
    "linkedServiceName": {
        "referenceName": "AzureMLLinkedService",
        "type": "LinkedServiceReference"
    },
    "typeProperties": {
        "webServiceInputs": {
            "input1": {
                "LinkedServiceName":{
                    "referenceName": "AzureStorageLinkedService1",
                    "type": "LinkedServiceReference"
                },
                "FilePath":"amltest/input/in1.csv"
            },
            "input2": {
                "LinkedServiceName":{
                    "referenceName": "AzureStorageLinkedService1",
                    "type": "LinkedServiceReference"
                },
                "FilePath":"amltest/input/in2.csv"
            }
        },
        "webServiceOutputs": {
            "outputName1": {
                "LinkedServiceName":{
                    "referenceName": "AzureStorageLinkedService2",
                    "type": "LinkedServiceReference"
                },
                "FilePath":"amltest2/output/out1.csv"
            },
            "outputName2": {
                "LinkedServiceName":{
                    "referenceName": "AzureStorageLinkedService2",
                    "type": "LinkedServiceReference"
                },
                "FilePath":"amltest2/output/out2.csv"
            }
        }
    }
}

Cenário 2: testes usando módulos de leitura/gravação para referenciar dados em vários armazenamentosScenario 2: Experiments using Reader/Writer Modules to refer to data in various storages

Outro cenário comum ao criar experimentos do Azure Machine Learning Studio é usar os módulos Importação de Dados e Dados de Saída.Another common scenario when creating Azure Machine Learning studio experiments is to use Import Data and Output Data modules. O módulo de Importar Dados é usado para carregar dados em um teste e o módulo Exportar Dados é usado para salvar os dados dos testes.The Import Data module is used to load data into an experiment and the Output Data module is to save data from your experiments. Para obter detalhes sobre os módulos Importar Dados e Exportar Dados, consulte os tópicos Importar Dados e Exportar Dados na biblioteca MSDN.For details about Import Data and Output Data modules, see Import Data and Output Data topics on MSDN Library.

Ao usar os módulos Importar Dados e Exportar Dados, recomenda-se usar um parâmetro de serviço Web para cada propriedade desses módulos.When using the Import Data and Output Data modules, it is good practice to use a Web service parameter for each property of these modules. Esses parâmetros da Web permitem que você configure os valores durante o runtime.These web parameters enable you to configure the values during runtime. Por exemplo, você pode criar um teste com um módulo Importar Dados que use um Banco de Dados SQL do Azure: XXX.database.windows.net.For example, you could create an experiment with an Import Data module that uses an Azure SQL Database: XXX.database.windows.net. Depois que o serviço Web for implantado, você precisará habilitar os consumidores do serviço Web para especificar outro SQL Server do Azure chamado YYY.database.windows.net.After the web service has been deployed, you want to enable the consumers of the web service to specify another Azure SQL Server called YYY.database.windows.net. Você pode usar um parâmetro de serviço Web para permitir que esse valor seja configurado.You can use a Web service parameter to allow this value to be configured.

Observação

A saída e entrada de serviço Web são diferentes dos parâmetros de serviço Web.Web service input and output are different from Web service parameters. No primeiro cenário, você viu como uma entrada e saída podem ser especificadas para um serviço Web do Azure Machine Learning Studio.In the first scenario, you have seen how an input and output can be specified for an Azure Machine Learning studio Web service. Nesse cenário, você pode passar parâmetros para um serviço Web que correspondam às propriedades dos módulos Importar Dados e Exportar Dados.In this scenario, you pass parameters for a Web service that correspond to properties of Import Data/Output Data modules.

Vejamos um cenário para o uso de parâmetros de serviço Web.Let's look at a scenario for using Web service parameters. Você tem um serviço Web implantado de Azure Machine Learning que usa um módulo de leitor para ler dados de uma das fontes de dados compatíveis com o Azure Machine Learning (por exemplo: Banco de Dados SQL do Azure).You have a deployed Azure Machine Learning web service that uses a reader module to read data from one of the data sources supported by Azure Machine Learning (for example: Azure SQL Database). Após a execução do lote, os resultados são gravados usando um módulo Gravador (banco de dados SQL do Azure).After the batch execution is performed, the results are written using a Writer module (Azure SQL Database). Não há entradas e saídas de serviço Web definidas nos experimentos.No web service inputs and outputs are defined in the experiments. Nesse caso, recomendamos que você configure os parâmetros de serviço Web relevantes para os módulos de leitor e gravador.In this case, we recommend that you configure relevant web service parameters for the reader and writer modules. Essa configuração permite que os módulos de leitor/gravador sejam configurados ao usar a atividade AzureMLBatchExecution.This configuration allows the reader/writer modules to be configured when using the AzureMLBatchExecution activity. Você especifica parâmetros de serviço Web na seção globalParameters no JSON da atividade da seguinte maneira:You specify Web service parameters in the globalParameters section in the activity JSON as follows.

"typeProperties": {
    "globalParameters": {
        "Database server name": "<myserver>.database.windows.net",
        "Database name": "<database>",
        "Server user account name": "<user name>",
        "Server user account password": "<password>"
    }
}

Observação

Os parâmetros de serviço Web diferenciam maiúsculas de minúsculas, portanto, garanta que os nomes que você especificar na atividade de JSON correspondam aos expostos pelo serviço Web.The Web service parameters are case-sensitive, so ensure that the names you specify in the activity JSON match the ones exposed by the Web service.

Depois de concluir a reciclagem de treinamento, atualize o serviço Web de pontuação (experimento preditivo exposto como um serviço Web) com o modelo recém-treinado usando a Atividade de recurso de Atualização do Azure Machine Learning Studio.After you are done with retraining, update the scoring web service (predictive experiment exposed as a web service) with the newly trained model by using the Azure Machine Learning studio Update Resource Activity. Veja o artigo Atualização de modelos usando a Atividade do Recurso de Atualização para obter detalhes.See Updating models using Update Resource Activity article for details.

Próximos passosNext steps

Consulte os seguintes artigos que explicam como transformar dados de outras maneiras:See the following articles that explain how to transform data in other ways: