Creare pipeline predittive tramite Azure Machine Learning e Azure Data FactoryCreate predictive pipelines using Azure Machine Learning and Azure Data Factory

Azure Machine Learning consente di compilare, testare e distribuire soluzioni di analisi predittiva.Azure Machine Learning enables you to build, test, and deploy predictive analytics solutions. Da un punto di vista generale, questo avviene in tre passaggi:From a high-level point of view, it is done in three steps:

  1. Creare un esperimento di training.Create a training experiment. Questo passaggio deve essere eseguito con Azure Machine Learning Studio.You do this step by using the Azure Machine Learning studio. Azure Machine Learning Studio è un ambiente di sviluppo visivo di collaborazione usato per eseguire il training e il test di un modello di analisi predittiva usando dati di training.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. Convertirlo in un esperimento predittivo.Convert it to a predictive experiment. Dopo aver eseguito il training del modello con i dati esistenti, preparare e semplificare l'esperimento di assegnazione dei punteggi quando si è pronti a usarlo per valutare nuovi dati.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. Distribuirlo come servizio Web.Deploy it as a web service. È possibile pubblicare l'esperimento di assegnazione dei punteggi come servizio Web di Azure.You can publish your scoring experiment as an Azure web service. È possibile inviare dati al modello tramite l'endpoint di questo servizio Web e ricevere le stime dei risultati dal modello.You can send data to your model via this web service end point and receive result predictions from the model.

Data Factory e Machine LearningData Factory and Machine Learning together

Azure Data Factory consente di creare facilmente pipeline che usano un servizio Web pubblicato Azure Machine Learning per l'analisi predittiva.Azure Data Factory enables you to easily create pipelines that use a published Azure Machine Learning web service for predictive analytics. Con Attività di esecuzione batch in una pipeline di Azure Data Factory è possibile eseguire stime dei dati in batch richiamando un servizio Web di Azure Machine Learning Studio.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.

Nel corso del tempo è necessario ripetere il training dei modelli predittivi negli esperimenti di assegnazione dei punteggi di Azure Machine Learning Studio usando nuovi set di dati di input.Over time, the predictive models in the Azure Machine Learning studio scoring experiments need to be retrained using new input datasets. È possibile ripetere il training di un modello da una pipeline di Data Factory seguendo questa procedura:You can retrain a model from a Data Factory pipeline by doing the following steps:

  1. Pubblicare l'esperimento di training, non l'esperimento predittivo, come servizio Web.Publish the training experiment (not predictive experiment) as a web service. Eseguire questo passaggio in Azure Machine Learning Studio come è stato fatto per esporre l'esperimento predittivo come servizio Web nello scenario precedente.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. Usare Attività di esecuzione batch di Azure Machine Learning Studio per richiamare il servizio Web per l'esperimento di training.Use the Azure Machine Learning studio Batch Execution Activity to invoke the web service for the training experiment. In sostanza, è possibile usare Attività di esecuzione batch di Azure Machine Learning Studio per richiamare sia il servizio Web di training che il servizio Web di assegnazione dei punteggi.Basically, you can use the Azure Machine Learning studio Batch Execution activity to invoke both training web service and scoring web service.

Al termine della ripetizione del training, aggiornare il servizio Web di assegnazione dei punteggi, ovvero l'esperimento predittivo esposto come servizio Web, con il modello appena sottoposto a training usando l'Attività della risorsa di aggiornamento di 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. Per informazioni dettagliate, vedere l'articolo Updating models using Update Resource Activity (Aggiornamento dei modelli con Attività della risorsa di aggiornamento).See Updating models using Update Resource Activity article for details.

Servizio collegato di Azure Machine LearningAzure Machine Learning linked service

Si crea un servizio collegato di Azure Machine Learning per collegare un servizio web di Azure Machine Learning a una data factory di Azure.You create an Azure Machine Learning linked service to link an Azure Machine Learning Web Service to an Azure data factory. Il servizio collegato viene usato da Attività di esecuzione batch di Azure Machine Learning e da Attività della risorsa di aggiornamento.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"
        }
    }
}

Vedere l'articolo Servizi collegati di calcolo per le descrizioni sulle proprietà nella definizione JSON.See Compute linked services article for descriptions about properties in the JSON definition.

Azure Machine Learning supporta sia i servizi Web classici che i nuovi servizi Web per l'esperimento predittivo.Azure Machine Learning support both Classic Web Services and New Web Services for your predictive experiment. È possibile scegliere quello corretto da usare da Data Factory.You can choose the right one to use from Data Factory. Per ottenere le informazioni necessarie per creare il servizio collegato di Azure Machine Learning, andare a https://services.azureml.net, dove sono elencati tutti i servizi Web nuovi e i servizi Web classici.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. Fare clic sul servizio Web cui si desidera accedere e fare clic sulla pagina Consume (Uso) .Click the Web Service you would like to access, and click Consume page. Copiare la chiave primaria per la proprietà apiKey e le richieste batch per la proprietà mlEndpoint.Copy Primary Key for apiKey property, and Batch Requests for mlEndpoint property.

Servizi Web di Azure Machine Learning

Attività di esecuzione batch di Azure Machine LearningAzure Machine Learning Batch Execution activity

Il frammento JSON seguente definisce un'attività Esecuzione batch di Azure Machine Learning.The following JSON snippet defines an Azure Machine Learning Batch Execution activity. La definizione dell'attività contiene un riferimento al servizio collegato di Azure Machine Learning creato in precedenza.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>"
        }
    }
}
ProprietàProperty DescriptionDescription ObbligatoriaRequired
namename Nome dell'attività nella pipelineName of the activity in the pipeline Yes
descriptiondescription Testo che descrive l'attività.Text describing what the activity does. NoNo
typetype Per l'attività U-SQL di Data Lake Analytics, il tipo di attività è AzureMLBatchExecution.For Data Lake Analytics U-SQL activity, the activity type is AzureMLBatchExecution. Yes
linkedServiceNamelinkedServiceName Servizi collegati al servizio collegato di Azure Machine Learning.Linked Services to the Azure Machine Learning Linked Service. Per informazioni su questo servizio collegato, vedere l'articolo Servizi collegati di calcolo.To learn about this linked service, see Compute linked services article. Yes
webServiceInputswebServiceInputs Coppie valore, chiave, che eseguono il mapping dei nomi di input dei servizi Web di Azure Machine Learning.Key, Value pairs, mapping the names of Azure Machine Learning Web Service Inputs. La chiave deve corrispondere ai parametri di input definiti nel servizio Web pubblicato di Azure Machine Learning.Key must match the input parameters defined in the published Azure Machine Learning Web Service. Il valore è una coppia di proprietà FilePath e dei servizi collegati di archiviazione di Azure che specifica i percorsi BLOB di input.Value is an Azure Storage Linked Services and FilePath properties pair specifying the input Blob locations. NoNo
webServiceOutputswebServiceOutputs Coppie valore, chiave, che eseguono il mapping dei nomi di output dei servizi Web di Azure Machine Learning.Key, Value pairs, mapping the names of Azure Machine Learning Web Service Outputs. La chiave deve corrispondere ai parametri di output definiti nel servizio Web pubblicato di Azure Machine Learning.Key must match the output parameters defined in the published Azure Machine Learning Web Service. Il valore è una coppia di proprietà FilePath e dei servizi collegati di archiviazione di Azure che specifica i percorsi BLOB di output.Value is an Azure Storage Linked Services and FilePath properties pair specifying the output Blob locations. NoNo
globalParametersglobalParameters Coppie di valore, chiave da passare all'endpoint del servizio Esecuzione batch di Azure Machine Learning Studio.Key, Value pairs to be passed to the Azure Machine Learning studio Batch Execution Service endpoint. Le chiavi devono corrispondere ai nomi dei parametri dei servizi Web definiti nel servizio Web pubblicato di Azure Machine Learning Studio.Keys must match the names of web service parameters defined in the published Azure Machine Learning studio web service. I valori vengono passati nella proprietà GlobalParameters della richiesta di esecuzione batch di Azure Machine Learning StudioValues are passed in the GlobalParameters property of the Azure Machine Learning studio batch execution request NoNo

Scenario 1: Esperimenti di uso degli input/output del servizio Web che fanno riferimento ai dati presenti nell'archiviazione BLOB di AzureScenario 1: Experiments using Web service inputs/outputs that refer to data in Azure Blob Storage

Il questo scenario il servizio Web Azure Machine Learning esegue stime usando dati provenienti da un file dell'archiviazione BLOB di Azure e archivia i risultati nell'archiviazione 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. Il frammento di codice JSON seguente definisce una pipeline di Data factory con un'attività AzureMLBatchExecution.The following JSON defines a Data Factory pipeline with an AzureMLBatchExecution activity. Viene fatto riferimento ai dati di input e output nell'archiviazione BLOB di Azure tramite una coppia di LinkedName e FilePath.The input and output data in Azure Blog Storage is referenced using a LinkedName and FilePath pair. Nell'esempio i servizi collegati di input e output sono diversi; è possibile usare servizi collegati diversi per ognuno degli input/output per Data Factory per poter selezionare i file corretti e inviarli al servizio Web di 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

Nell'esperimento di Azure Machine Learning Studio, le porte e i parametri globali di input e output del servizio Web hanno nomi predefiniti ("input1", "input2") che è possibile personalizzare.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. I nomi scelti per le impostazioni webServiceInputs, webServiceOutputs e globalParameters devono corrispondere esattamente ai nomi negli esperimenti.The names you use for webServiceInputs, webServiceOutputs, and globalParameters settings must exactly match the names in the experiments. Per verificare il mapping previsto, è possibile visualizzare il payload della richiesta di esempio nella pagina della Guida relativa all'esecuzione in batch per l'endpoint di Azure Machine Learning Studio.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"
            }
        }
    }
}

Scenario 2: Esperimenti di uso dei moduli Reader e Writer per fare riferimento ai dati in diversi archiviScenario 2: Experiments using Reader/Writer Modules to refer to data in various storages

Un altro scenario comune durante la creazione di esperimenti di Azure Machine Learning Studio è quello relativo all'uso dei moduli Import Data e Output Data.Another common scenario when creating Azure Machine Learning studio experiments is to use Import Data and Output Data modules. Il modulo Import Data consente di caricare i dati in un esperimento, mentre il modulo Output Data consente di salvare i dati derivanti dagli esperimenti.The Import Data module is used to load data into an experiment and the Output Data module is to save data from your experiments. Per informazioni dettagliate sui moduli Import Data e Output Data, vedere gli argomenti Import Data e Output Data in MSDN Library.For details about Import Data and Output Data modules, see Import Data and Output Data topics on MSDN Library.

Quando si usano i moduli Import Data e Output Data, è consigliabile usare un parametro del servizio Web per ogni proprietà di tali moduli.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. Questi parametri Web consentono di configurare i valori durante il runtime.These web parameters enable you to configure the values during runtime. Ad esempio, è possibile creare un esperimento con un modulo Import Data che usa un database SQL di 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. Dopo aver distribuito il servizio Web, si intende consentire ai consumer del servizio Web di specificare un altro server SQL di Azure denominato 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. È possibile usare un parametro del servizio Web per consentire la configurazione di questo valore.You can use a Web service parameter to allow this value to be configured.

Nota

L'input e l'output del servizio Web sono diversi dai parametri del servizio Web.Web service input and output are different from Web service parameters. Nel primo scenario è stato illustrato come è possibile specificare un input e un output per un servizio Web di 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. In questo scenario si passano i parametri per un servizio Web corrispondenti alle proprietà dei moduli Import Data e Output Data.In this scenario, you pass parameters for a Web service that correspond to properties of Import Data/Output Data modules.

Viene preso in esame uno scenario relativo all'uso dei parametri del servizio Web.Let's look at a scenario for using Web service parameters. È stato distribuito un servizio Web di Azure Machine Learning che usa un modulo Reader per leggere i dati da una delle origini dati di Azure Machine Learning supportate, ad esempio un database SQL di 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). Dopo l'esecuzione batch, i risultati vengono scritti usando un modulo Writer (database SQL di Azure).After the batch execution is performed, the results are written using a Writer module (Azure SQL Database). Negli esperimenti non sono definiti input e output del servizio Web.No web service inputs and outputs are defined in the experiments. In questo caso, è consigliabile configurare i parametri del servizio Web rilevanti per i moduli Reader e Writer.In this case, we recommend that you configure relevant web service parameters for the reader and writer modules. Ciò consente la configurazione dei moduli Reader e Writer quando si usa l'attività AzureMLBatchExecution.This configuration allows the reader/writer modules to be configured when using the AzureMLBatchExecution activity. Specificare i parametri del servizio Web nella sezione globalParameters del codice JSON dell'attività come indicato di seguito.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>"
    }
}

Nota

I parametri del servizio Web applicano la distinzione tra maiuscole e minuscole. È quindi necessario assicurarsi che i nomi specificati nel file JSON dell'attività corrispondano ai nomi esposti dal servizio 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.

Al termine della ripetizione del training, aggiornare il servizio Web di assegnazione dei punteggi, ovvero l'esperimento predittivo esposto come servizio Web, con il modello appena sottoposto a training usando l'Attività della risorsa di aggiornamento di 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. Per informazioni dettagliate, vedere l'articolo Updating models using Update Resource Activity (Aggiornamento dei modelli con Attività della risorsa di aggiornamento).See Updating models using Update Resource Activity article for details.

Passaggi successiviNext steps

Vedere gli articoli seguenti che illustrano come trasformare i dati in altri modi:See the following articles that explain how to transform data in other ways: