Criar um pipeline de previsão usando o Machine Learning Studio (clássico) com o Azure Data Factory e o Synapse Analytics

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Dica

Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange desde movimentação de dados até ciência de dados, análise em tempo real, business intelligence e relatórios. Saiba como iniciar uma avaliação gratuita!

Importante

O suporte para o Estúdio do Azure Machine Learning (clássico) terminará em 31 de agosto de 2024. Recomendamos que você faça a transição para o Azure Machine Learning até essa data.

A partir de 1º de dezembro de 2021, não é possível criar novos recursos do Estúdio do Machine Learning (clássico) (workspace e plano de serviço Web). Até 31 de agosto de 2024, você pode continuar a usar os experimentos e serviços Web existentes do Estúdio do Machine Learning (clássico). Para saber mais, veja:

A documentação do Estúdio do Machine Learning (clássico) está sendo desativada e poderá não ser atualizada no futuro.

Observação

como os recursos do Machine Learning Studio (clássico) não podem mais ser criados após 1 Dec, 2021, os usuários são incentivados a usar Azure Machine Learning com a atividade Machine Learning executar Pipeline em vez de usar a atividade de execução em lote para executar Machine Learning Lotes de estúdio (clássico).

O Estúdio do ML (clássico) permite que você crie, teste e implante soluções de análise preditiva. De um ponto de vista de alto nível, isso é feito em três etapas:

  1. Crie um teste de treinamento. Você executa essa etapa usando o Estúdio do ML (clássico). O Estúdio do ML (clássico) é um ambiente de desenvolvimento visual colaborativo utilizado para treinar e testar um modelo de análise preditiva com os dados de treinamento.
  2. Convertê-lo em um teste preditivo. 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.
  3. Implantá-lo como um serviço da Web. Você pode publicar seu experimento de pontuação como um serviço Web do Azure. Você pode enviar dados ao seu modelo via esse ponto de extremidade de serviço Web e receber previsões de resultados do modelo.

Usar o Machine Learning Studio (clássico) com o Azure Data Factory e o Synapse Analytics

O Azure Data Factory e o Synapse Analytics permitem que você crie facilmente pipelines que usam um serviço Web do Machine Learning Studio (clássico) publicado para a análise preditiva. Usando a Atividade Batch Execution em um pipeline, você pode chamar um serviço Web do Machine Learning Studio (clássico) para fazer previsões sobre dados em lote.

Ao longo do tempo, os modelos de previsão nos experimentos de pontuação do Machine Learning Studio (clássico) precisam ser reciclados usando novos conjuntos de dados de entrada. Você pode treinar novamente um modelo em um pipeline executando as seguintes etapas:

  1. Publique o experimento de treinamento (e não um experimento preditivo) como um serviço Web. Essa etapa é feita no Estúdio do ML (clássico) da mesma forma como você fez para expor o experimento preditivo como um serviço Web no cenário anterior.
  2. Use a Atividade Batch Execution do Estúdio do ML (clássico) para chamar o serviço Web para o experimento de treinamento. Basicamente, você pode usar a Atividade Batch Execution do Estúdio do ML (clássico) para invocar o serviço Web de treinamento e o serviço Web de pontuação.

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 Estúdio do ML (clássico) . Veja o artigo Atualização de modelos usando a Atividade do Recurso de Atualização para obter detalhes.

Serviço vinculado do Estúdio do ML (clássico)

Você cria um serviço vinculado do Machine Learning Studio (clássico) para vincular um serviço Web do Machine Learning Studio (clássico). O serviço vinculado é usado pela atividade Batch Execution do Machine Learning Studio (clássico) e pela Atividade do Recurso de Atualização.

{
    "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.

O Machine Learning Studio (clássico) dá suporte a serviços Web clássicos e novos serviços Web para seu teste de previsão. Você pode escolher aquele que é mais adequado no Data Factory ou espaço de trabalho do Synapse. Para obter as informações necessárias para criar o serviço vinculado do Machine Learning Studio (clássico), vá para https://services.azureml.net, onde todos os (novos) serviços Web e serviços Web clássicos estão listados. Clique no serviço Web que deseja acessar e clique na página Consumir. Copie a Chave Primária da propriedade apiKey e Solicitações de Lote da propriedade mlEndpoint.

ML Studio (classic) Web Services

Atividade Batch Execution do Estúdio do ML (clássico)

O snippet JSON a seguir define uma atividade Batch Execution do Estúdio do ML (clássico). A definição da atividade tem uma referência ao serviço vinculado do Estúdio do ML (clássico) que você criou anteriormente.

{
    "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>"
        }
    }
}
Propriedade Descrição Obrigatório
name Nome da atividade no pipeline Sim
descrição Texto que descreve o que a atividade faz. Não
type Para a atividade do U-SQL do Data Lake Analytics, o tipo de atividade é AzureMLBatchExecution. Sim
linkedServiceName Serviços Vinculados ao serviço do Estúdio do ML (clássico). Para saber mais sobre esse serviço vinculado, consulte o artigo Compute linked services (Serviços de computação vinculados). Sim
webServiceInputs Chave, pares chave-valor, mapeamento dos nomes das entradas de Serviço Web do Estúdio do ML (clássico). A chave deve corresponder aos parâmetros de entrada definidos no Serviço Web do Estúdio do ML (clássico) publicado. Valor é um par de propriedades FilePath e serviços vinculados do Armazenamento do Azure especificando os locais de Blob de entrada. Não
webServiceOutputs Chave, pares chave-valor, mapeamento dos nomes das saídas de Serviço Web do Estúdio do ML (clássico). A chave deve corresponder aos parâmetros de saída definidos no Serviço Web do Estúdio do ML (clássico) publicado. Valor é um par de propriedades FilePath e serviços vinculados do Armazenamento do Azure especificando os locais de Blob de saída. Não
globalParameters Chave, pares chave-valor a serem passados para o ponto de extremidade do serviço de execução em lote do Estúdio do ML (clássico). As chaves devem corresponder aos nomes dos parâmetros de Serviço Web definidos no Serviço Web do Estúdio do ML (clássico) publicado. Os valores são transmitidos na propriedade GlobalParameters da solicitação de execução em lote do Estúdio do ML (clássico) Não

Cenário 1: testes usando entradas/saídas de serviço Web que se referem ao Armazenamento de Blobs do Azure

Nesse cenário, o serviço Web do Machine Learning Studio (clássico) 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 blobs. O JSON a seguir define um pipeline com uma atividade AzureMLBatchExecution. Os dados de entrada e saída no Armazenamento de Blobs do Azure são referenciados usando um par de LinkedName e FilePath. 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 serviço de modo a selecionar os arquivos certos e enviá-los ao serviço Web do Machine Learning Studio (clássico).

Importante

No experimento do Estúdio do ML (clássico), 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. Os nomes que você usa para as configurações webServiceInputs, webserviceoutputs e globalParameters devem corresponder exatamente aos nomes nos testes. Você pode exibir a carga de solicitação de exemplo na página de ajuda de Execução em Lote no ponto de extremidade do Estúdio do ML (clássico) para verificar o mapeamento esperado.

{
    "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 armazenamentos

Outro cenário comum ao criar experimentos do Estúdio do ML (clássico) é usar os módulos Importar Dados e Exportar Dados. 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. Para obter detalhes sobre os módulos Importar Dados e Exportar Dados, consulte os tópicos Importar Dados e Exportar Dados na biblioteca MSDN.

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. Esses parâmetros da Web permitem que você configure os valores durante o 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. Depois que o serviço Web for implantado, você precisará habilitar os consumidores do serviço Web para especificar outro SQL Server lógico chamado YYY.database.windows.net. Você pode usar um parâmetro de serviço Web para permitir que esse valor seja configurado.

Observação

A saída e entrada de serviço Web são diferentes dos parâmetros de serviço Web. No primeiro cenário, você viu como a entrada e a saída podem ser especificadas para um serviço Web do Estúdio do ML (clássico). 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.

Vejamos um cenário para o uso de parâmetros de serviço Web. Você tem um serviço Web implantado do Estúdio do ML (clássico) que usa um módulo de leitor para ler dados de uma das fontes de dados compatíveis com o Estúdio do ML (clássico) (por exemplo: Banco de Dados SQL do Azure). Após a execução do lote, os resultados são gravados usando um módulo Gravador (banco de dados SQL do Azure). Não há entradas e saídas de serviço Web definidas nos experimentos. Nesse caso, recomendamos que você configure os parâmetros de serviço Web relevantes para os módulos de leitor e gravador. Essa configuração permite que os módulos de leitor/gravador sejam configurados ao usar a atividade AzureMLBatchExecution. Você especifica parâmetros de serviço Web na seção globalParameters no JSON da atividade da seguinte maneira:

"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.

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 Estúdio do ML (clássico) . Veja o artigo Atualização de modelos usando a Atividade do Recurso de Atualização para obter detalhes.

Consulte os seguintes artigos que explicam como transformar dados de outras maneiras: