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 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:
- Migrar para o Azure Machine Learning do Estúdio do Machine Learning (clássico)
- O que é Azure Machine Learning?
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 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.
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:
- 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.
- 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 da web sobre o Estúdio do Azure Machine Learning.
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:
- Clique em SERVIÇOS WEB no menu à esquerda.
- Clique no serviço Web de treinamento na lista de serviços Web.
- 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.
- No Azure Machine Learning Studio (clássico) , clique no link EXECUÇÃO EM LOTES.
- 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/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 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" ]
}
]
}
]
}
}
Conteúdo relacionado
Consulte os seguintes artigos que explicam como transformar dados de outras maneiras:
- U-SQL activity (Atividade do U-SQL)
- Hive activity (Atividade do Hive)
- Pig activity (Atividade do Pig)
- MapReduce activity (Atividade do MapReduce)
- Hadoop Streaming activity (Atividade de streaming do Hadoop)
- Spark activity (Atividade do Spark)
- Atividade personalizada do .NET
- Stored procedure activity (Atividade de procedimento armazenado)