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

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Gorjeta

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

Importante

O suporte para o Azure Machine Learning Studio (clássico) terminará em 31 de agosto de 2024. Recomendamos que 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 (clássicos) do Machine Learning Studio (espaço de trabalho 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 Machine Learning Studio (clássicos). Para obter mais informações, consulte:

A documentação do Machine Learning Studio (clássica) está sendo desativada e pode não ser atualizada no futuro.

Nota

Como os recursos do Machine Learning Studio (clássico) não podem mais ser criados após 1º de dezembro de 2021, os usuários são incentivados a usar o Azure Machine Learning com a atividade Machine Learning Execute Pipeline em vez de usar a atividade Update Resource para atualizar modelos do Machine Learning Studio (clássico).

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

Descrição geral

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

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

A reciclagem pode ocorrer com frequência. Com a atividade de Execução em Lote e a atividade de Atualização de Recursos, você pode operacionalizar o retreinamento do modelo do Estúdio de Aprendizado de Máquina (clássico) e atualizar o Serviço Web preditivo.

A imagem a seguir mostra a relação entre treinamento e serviços Web preditivos.

Web services

Atividade de atualização de recursos do Machine Learning Studio (clássico)

O trecho JSON a seguir define uma atividade de Execução em Lote (clássica) do Machine Learning Studio.

{
    "name": "amlUpdateResource",
    "type": "AzureMLUpdateResource",
    "description": "description",
    "linkedServiceName": {
        "type": "LinkedServiceReference",
        "referenceName": "updatableScoringEndpoint2"
    },
    "typeProperties": {
        "trainedModelName": "ModelName",
        "trainedModelLinkedServiceName": {
                    "type": "LinkedServiceReference",
                    "referenceName": "StorageLinkedService"
                },
        "trainedModelFilePath": "ilearner file path"
    }
}
Property Descrição Obrigatório
nome Nome da atividade no pipeline Sim
descrição Texto descrevendo o que a atividade faz. Não
tipo Para a atividade de Atualização de Recursos do Machine Learning Studio (clássica), o tipo de atividade é AzureMLUpdateResource. Sim
linkedServiceName Serviço vinculado do Machine Learning Studio (clássico) que contém a propriedade updateResourceEndpoint. Sim
trainedModelName Nome do módulo Modelo Treinado no experimento de Serviço Web a ser atualizado Sim
trainedModelLinkedServiceName Nome do serviço vinculado do Armazenamento do Azure que contém o arquivo ilearner carregado pela operação de atualização Sim
trainedModelFilePath O caminho do arquivo relativo em trainedModelLinkedService para representar o arquivo ilearner que é carregado pela operação de atualização Sim

Fluxo de trabalho ponto a ponto

Todo o processo de operacionalização do retreinamento de um modelo e atualização dos Web Services preditivos envolve as seguintes etapas:

  • Invoque o serviço Web de treinamento usando a atividade Execução em lote. Invocar um Serviço Web de treinamento é o mesmo que invocar um Serviço Web preditivo descrito em Criar pipelines preditivos usando o Machine Learning Studio (clássico) e a atividade Execução em lote. A saída do Serviço Web de treinamento é um arquivo iLearner que você pode usar para atualizar o Serviço Web preditivo.
  • Invoque o ponto de extremidade do recurso de atualização do Serviço Web preditivo usando a atividade Atualizar 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 (clássico):

  1. Um serviço vinculado do Estúdio de Aprendizado de Máquina (clássico) ao serviço Web de treinamento, esse serviço vinculado é usado pela atividade de Execução em Lote da mesma forma que o mencionado em Criar pipelines preditivos usando o Estúdio de Aprendizado de Máquina (clássico) e a atividade de Execução em Lote. 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 preditivo.
  2. Um serviço vinculado do Estúdio de Aprendizado de Máquina (clássico) ao ponto de extremidade do recurso de atualização do serviço Web preditivo. Este serviço vinculado é usado pela atividade Update Resource para atualizar o serviço Web preditivo usando o arquivo iLearner retornado da etapa acima.

Para o segundo serviço vinculado do Estúdio de Aprendizado de Máquina (clássico), a configuração é diferente quando o Serviço Web do Estúdio de Aprendizado de Máquina (clássico) é um Serviço Web clássico ou um novo Serviço Web. As diferenças são discutidas separadamente nas seções a seguir.

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

Se o serviço Web for o novo tipo de serviço Web que expõe um ponto de extremidade do Azure Resource Manager, não será necessário adicionar o segundo ponto de extremidade não padrão . O updateResourceEndpoint no serviço vinculado é do 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 no Portal de Serviços Web do Machine Learning Studio (clássico).

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

  • ID da aplicação
  • Chave de aplicação
  • ID de Inquilino do

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

{
    "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. Ele tem um exemplo para retreinar e atualizar modelos do Machine Learning Studio (clássicos) a partir de um pipeline.

Exemplo: Retreinamento e atualização de um modelo de Estúdio de Aprendizado de Máquina (clássico)

Esta seção fornece um pipeline de exemplo que usa a atividade de Execução em Lote do Azure Machine Learning Studio (clássica) para treinar novamente um modelo. O pipeline também usa a atividade de 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 trechos JSON para todos os serviços vinculados, conjuntos de dados e pipeline no exemplo.

Serviço vinculado de armazenamento de Blob do Azure:

O Armazenamento do Azure contém os seguintes dados:

  • dados de formação. 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). Esse arquivo também é a entrada para a atividade Update Resource.

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

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

Serviço vinculado para o 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 Azure Machine Learning Studio (clássico), faça o seguinte para obter valores para mlEndpoint e apiKey:

  1. Clique em WEB SERVICES 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 da API. Cole a chave na área de transferência no editor JSON do Data Factory.
  4. No Estúdio de Aprendizado de Máquina do Azure (clássico), clique no link EXECUÇÃO EM LOTE.
  5. Copie o URI de solicitação da seção Solicitação e cole-o no editor JSON.

Serviço vinculado para o ponto de extremidade de pontuação atualizável do Azure Machine Learning Studio (clássico):

O trecho JSON a seguir define um serviço vinculado do Azure Machine Learning Studio (clássico) 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 Execução em lote usa os dados de treinamento como entrada e produz um arquivo iLearner como saída. Em seguida, a atividade Atualizar Recurso utiliza este ficheiro iLearner e utiliza-o para atualizar o serviço Web preditivo.

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