Atualizar modelos do Machine Learning Studio (clássico) usando a atividade Atualizar Recurso

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 do Azure Machine Learning Studio (clássico) terminará em 31 de agosto de 2024. Recomenda-se fazer a transição para o Azure Machine Learning até essa data.

Desde 1º de dezembro de 2021, não é possível criar recursos (plano de serviço Web e de workspace) do Machine Learning Studio (clássico). Até 31 de agosto de 2024, você poderá usar os serviços Web e experimentos atuais do Machine Learning Studio (clássico). Para saber mais, veja:

A documentação do Machine Learning Studio (clássico) será desativada e não há previsão de atualização 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 Execute Pipeline de Machine Learning, em vez de usar a atividade Atualizar Recurso para atualizar os modelos do Machine Learning Studio (clássico).

Este artigo complementa o principal artigo de integração do Machine Learning Studio (clássico): Criar pipelines de previsão usando o Machine Learning Studio (clássico). Se você ainda não fez isso, leia o artigo principal antes de ler este.

Visão geral

Como parte do processo de operacionalização de modelos do Machine Learning Studio (clássico), o modelo é treinado e salvo. Em seguida, será possível utilizá-lo para criar um serviço Web preditivo. O serviço Web pode ser consumido nos sites, painéis e aplicativos móveis.

Os modelos criados usando o Machine Learning Studio (clássico) normalmente não são estáticos. Conforme novos dados ficam disponíveis ou quando o consumidor da API tem seus próprios dados, o modelo precisa ser readaptado.

A readaptação pode ocorrer com frequência. Com as atividades Batch Execution e Atualizar Recurso, você pode operacionalizar o modelo do Machine Learning Studio (clássico), treinando novamente e atualizando o serviço Web de previsão.

A figura a seguir descreve a relação entre os serviços Web de treinamento e previsão.

Web services

Atividade Update Resource do Machine Learning Studio (clássico)

O trecho JSON a seguir define uma atividade Batch Execution do Machine Learning Studio (clássico).

{
    "name": "amlUpdateResource",
    "type": "AzureMLUpdateResource",
    "description": "description",
    "linkedServiceName": {
        "type": "LinkedServiceReference",
        "referenceName": "updatableScoringEndpoint2"
    },
    "typeProperties": {
        "trainedModelName": "ModelName",
        "trainedModelLinkedServiceName": {
                    "type": "LinkedServiceReference",
                    "referenceName": "StorageLinkedService"
                },
        "trainedModelFilePath": "ilearner file path"
    }
}
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 Atualizar Recurso do Machine Learning Studio (clássico), o tipo de atividade é AzureMLUpdateResource. Sim
linkedServiceName O serviço vinculado do Machine Learning Studio (clássico) que contém a propriedade updateResourceEndpoint. Sim
trainedModelName O nome do módulo de modelo treinado no teste do serviço Web a ser atualizado Sim
trainedModelLinkedServiceName Nome do serviço vinculado do Armazenamento do Azure mantendo o arquivo ilearner que é carregado pela operação de atualização Sim
trainedModelFilePath O caminho do arquivo relativo no trainedModelLinkedService para representar o arquivo ilearner que é carregado pela operação de atualização Sim

Fluxos de trabalho completos

Todo o processo de operacionalização de novo treinamento de um modelo e de atualização dos serviços Web de previsão envolve as seguintes etapas:

  • Invocar o treinamento do serviço Web usando a atividade de execução em lotes. Invocar um serviço Web de treinamento é o mesmo que invocar um serviço Web de previsão, descrito em Criar pipelines de previsão usando o Machine Learning Studio (clássico) e a atividade Batch Execution. A saída do treinamento do serviço Web é um arquivo iLearner que você pode usar para atualizar o serviço Web de previsão.
  • Invoque a atualização do ponto de extremidade do recurso do Serviço Web de previsão usando a atividade de atualização de recurso para atualizar o serviço Web com o modelo recém-treinado.

Serviço vinculado do Machine Learning Studio (clássico)

Para que o fluxo de trabalho de ponta a ponta mencionado acima funcione, você precisa criar dois serviços vinculados do Machine Learning Studio:

  1. Um serviço vinculado do Machine Learning Studio para o serviço Web de treinamento. O serviço vinculado é usado pela atividade Batch Execution da mesma maneira que é mencionada em Criar pipelines de previsão usando o Machine Learning Studio e a atividade Batch Execution. A diferença é que a saída do serviço Web de treinamento é um arquivo iLearner que é usado pela atividade Update Resource para atualizar o serviço Web de previsão.
  2. Um serviço vinculado do Machine Learning Studio (clássico) para o ponto de extremidade do recurso de atualização do serviço Web de previsão. Esse serviço vinculado é usado pela atividade de atualização de recursos para atualizar o serviço Web de previsão usando o arquivo iLearner retornado da etapa acima.

Para o segundo serviço vinculado do Machine Learning Studio, a configuração é diferente para serviços Web clássicos e para serviços Web novos. As diferenças são discutidas separadamente nas seções a seguir.

O serviço Web é um novo serviço Web do Azure Resource Manager

Se o serviço web é o novo tipo de serviço da web que expõe um ponto de extremidade do Azure Resource Manager, você não precisa adicionar o segundo não-padrão ponto de extremidade. O updateResourceEndpoint no serviço vinculado está no formato:

https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resource-group-name}/providers/Microsoft.MachineLearning/webServices/{web-service-name}?api-version=2016-05-01-preview

Você pode obter valores para espaços reservados na URL ao consultar o serviço Web sobre o Portal de serviços Web do Machine Learning Studio (clássico).

O novo tipo de ponto de extremidade do recurso de atualização requer a autenticação da entidade de serviço. Para usar a autenticação da entidade de serviço, registre uma entidade de aplicativo no Microsoft Entra ID e atribua a ela a função Colaborador ou Proprietário da assinatura ou do grupo de recursos ao qual o serviço Web pertence. Consulte como criar entidade de serviço e atribuir permissões para gerenciar recursos do Azure. Anote os seguintes valores, que são usados para definir o serviço vinculado:

  • ID do aplicativo
  • Chave do aplicativo
  • ID do locatário

Aqui está uma definição do serviço vinculado de exemplo:

{
    "name": "AzureMLLinkedService",
    "properties": {
        "type": "AzureML",
        "description": "The linked service for AML web service.",
        "typeProperties": {
            "mlEndpoint": "https://ussouthcentral.services.azureml.net/workspaces/0000000000000000	000000000000000000000/services/0000000000000000000000000000000000000/jobs?api-version=2.0",
            "apiKey": {
                "type": "SecureString",
                "value": "APIKeyOfEndpoint1"
            },
            "updateResourceEndpoint": "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resource-group-name}/providers/Microsoft.MachineLearning/webServices/{web-service-name}?api-version=2016-05-01-preview",
            "servicePrincipalId": "000000000-0000-0000-0000-0000000000000",
            "servicePrincipalKey": {
                "type": "SecureString",
                "value": "servicePrincipalKey"
            },
            "tenant": "mycompany.com"
        }
    }
}

O cenário a seguir fornece mais detalhes. Há um exemplo de readaptação e atualização de modelos do Machine Learning Studio (clássico) usando um pipeline.

Amostra: treinar novamente e atualizar um modelo do Machine Learning Studio (clássico)

Esta seção contém uma amostra de pipeline que usa a atividade Batch Execution do Estúdio do Azure Machine Learning para treinar novamente um modelo. O pipeline também usa a atividade do recurso de atualização do Azure Machine Learning Studio (clássico) para atualizar o modelo no serviço web de pontuação. A seção também fornece snippets de JSON para todos os serviços vinculados, conjuntos de dados e pipeline no exemplo.

Serviço vinculado do armazenamento de Blob do Azure:

O Armazenamento do Azure contém os seguintes dados:

  • dados de treinamento. Os dados de entrada para o serviço Web de treinamento do Machine Learning Studio (clássico).
  • Arquivo iLearner. A saída do serviço Web de treinamento do Machine Learning Studio (clássico). Este arquivo também é a entrada para a atividade do Recurso de atualização.

Veja a definição JSON de exemplo do serviço vinculado:

{
    "name": "StorageLinkedService",
    "properties": {
        "type": "AzureStorage",
        "typeProperties": {
            "connectionString": "DefaultEndpointsProtocol=https;AccountName=name;AccountKey=key"
        }
    }
}

Serviço vinculado ao ponto de extremidade de treinamento do Machine Learning Studio (clássico)

O trecho JSON a seguir define um serviço vinculado do Machine Learning Studio (clássico) que aponta para o ponto de extremidade padrão do serviço Web de treinamento.

{
    "name": "trainingEndpoint",
    "properties": {
        "type": "AzureML",
        "typeProperties": {
            "mlEndpoint": "https://ussouthcentral.services.azureml.net/workspaces/xxx/services/--training experiment--/jobs",
            "apiKey": "myKey"
        }
    }
}

No Estúdio do Azure Machine Learning, faça o seguinte para obter os valores de mlEndpoint e apiKey:

  1. Clique em SERVIÇOS WEB no menu à esquerda.
  2. Clique no serviço Web de treinamento na lista de serviços Web.
  3. Clique em Copiar ao lado da caixa de texto Chave de API . Cole a chave na área de transferência e no editor JSON do Data Factory.
  4. No Azure Machine Learning Studio (clássico) , clique no link EXECUÇÃO EM LOTES.
  5. Copie o URI da Solicitação da seção Solicitação e cole-o no editor de JSON.

Serviço vinculado ao ponto de extremidade de pontuação atualizável do Estúdio do Azure Machine Learning:

O snippet JSON a seguir define um serviço vinculado do Estúdio do Azure Machine Learning que aponta para o ponto de extremidade atualizável do serviço Web de pontuação.

{
    "name": "updatableScoringEndpoint2",
    "properties": {
        "type": "AzureML",
        "typeProperties": {
            "mlEndpoint": "https://ussouthcentral.services.azureml.net/workspaces/00000000eb0abe4d6bbb1d7886062747d7/services/00000000026734a5889e02fbb1f65cefd/jobs?api-version=2.0",
            "apiKey": "sooooooooooh3WvG1hBfKS2BNNcfwSO7hhY6dY98noLfOdqQydYDIXyf2KoIaN3JpALu/AKtflHWMOCuicm/Q==",
            "updateResourceEndpoint": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Default-MachineLearning-SouthCentralUS/providers/Microsoft.MachineLearning/webServices/myWebService?api-version=2016-05-01-preview",
            "servicePrincipalId": "fe200044-c008-4008-a005-94000000731",
            "servicePrincipalKey": "zWa0000000000Tp6FjtZOspK/WMA2tQ08c8U+gZRBlw=",
            "tenant": "mycompany.com"
        }
    }
}

Pipeline

O pipeline tem duas atividades: AzureMLBatchExecution e AzureMLUpdateResource. A atividade de execução em lotes usa os dados de treinamento como entrada e produz um arquivo iLearner como saída. Em seguida, a atividade de atualização de recursos usa esse arquivo iLearner para atualizar o serviço Web de previsão.

{
    "name": "LookupPipelineDemo",
    "properties": {
        "activities": [
            {
                "name": "amlBEGetilearner",
                "description": "Use AML BES to get the ileaner file from training web service",
                "type": "AzureMLBatchExecution",
                "linkedServiceName": {
                    "referenceName": "trainingEndpoint",
                    "type": "LinkedServiceReference"
                },
                "typeProperties": {
                    "webServiceInputs": {
                        "input1": {
                            "LinkedServiceName":{
                                "referenceName": "StorageLinkedService",
                                "type": "LinkedServiceReference"
                            },
                            "FilePath":"azuremltesting/input"
                        },
                        "input2": {
                            "LinkedServiceName":{
                                "referenceName": "StorageLinkedService",
                                "type": "LinkedServiceReference"
                            },
                            "FilePath":"azuremltesting/input"
                        }
                    },
                    "webServiceOutputs": {
                        "output1": {
                            "LinkedServiceName":{
                                "referenceName": "StorageLinkedService",
                                "type": "LinkedServiceReference"
                            },
                            "FilePath":"azuremltesting/output"
                        }
                    }
                }
            },
            {
                "name": "amlUpdateResource",
                "type": "AzureMLUpdateResource",
                "description": "Use AML Update Resource to update the predict web service",
                "linkedServiceName": {
                    "type": "LinkedServiceReference",
                    "referenceName": "updatableScoringEndpoint2"
                },
                "typeProperties": {
                    "trainedModelName": "ADFV2Sample Model [trained model]",
                    "trainedModelLinkedServiceName": {
                        "type": "LinkedServiceReference",
                        "referenceName": "StorageLinkedService"
                    },
                    "trainedModelFilePath": "azuremltesting/output/newModelForArm.ilearner"
                },
                "dependsOn": [
                    {
                        "activity": "amlbeGetilearner",
                        "dependencyConditions": [ "Succeeded" ]
                    }
                ]
            }
        ]
    }
}

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