Partilhar via


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 Estúdio de Aprendizado de Máquina (clássico) não podem mais ser criados após 1º de dezembro de 2021, os usuários são incentivados a usar o Aprendizado de Máquina do Azure com a atividade Pipeline de Execução do Aprendizado de Máquina em vez de usar a atividade Atualizar Recurso para atualizar modelos do Estúdio de Aprendizado de Máquina (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.

Serviços Web

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 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 anteriormente 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 Machine Learning Studio (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 anterior.

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 estúdio do Azure Machine Learning.

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. Selecione WEB SERVICES no menu à esquerda.
  2. Selecione o serviço Web de treinamento na lista de serviços Web.
  3. Selecione 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 Azure Machine Learning Studio (clássico), selecione o link BATCH EXECUTION.
  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 estúdio do Azure Machine Learning (clássico):

O trecho JSON a seguir define um serviço vinculado do estúdio do Azure Machine Learning (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/ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0/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 ilearner 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: