Share via


Machine Learning Studio-modellen (klassiek) bijwerken met behulp van Resource-activiteit bijwerken

VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics

Tip

Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .

Belangrijk

Ondersteuning voor Azure Machine Learning Studio (klassiek) eindigt op 31 augustus 2024. U wordt aangeraden op die datum over te stappen naar Azure Machine Learning .

Vanaf 1 december 2021 kunt u geen nieuwe Machine Learning Studio-resources (klassiek) maken (werkruimte- en webserviceplan). Tot en met 31 augustus 2024 kunt u de bestaande Experimenten en webservices van Machine Learning Studio (klassiek) blijven gebruiken. Zie voor meer informatie:

Machine Learning Studio -documentatie (klassiek) wordt buiten gebruik gesteld en wordt in de toekomst mogelijk niet bijgewerkt.

Notitie

Omdat Machine Learning Studio-resources (klassiek) niet meer kunnen worden gemaakt na 1 december 2021, wordt u aangeraden om Azure Machine Learning te gebruiken met de Machine Learning Execute Pipeline-activiteit in plaats van de updateresourceactiviteit te gebruiken om Machine Learning Studio-modellen (klassiek) bij te werken.

Dit artikel vormt een aanvulling op het hoofdartikel over de integratie van Machine Learning Studio (klassiek): Voorspellende pijplijnen maken met Behulp van Machine Learning Studio (klassiek). Als u dit nog niet hebt gedaan, raadpleegt u het hoofdartikel voordat u dit artikel leest.

Overzicht

Als onderdeel van het proces van het operationeel maken van Machine Learning Studio-modellen (klassiek), wordt uw model getraind en opgeslagen. Vervolgens gebruikt u deze om een voorspellende webservice te maken. De webservice kan vervolgens worden gebruikt in websites, dashboards en mobiele apps.

Modellen die u maakt met Behulp van Machine Learning Studio (klassiek) zijn doorgaans niet statisch. Wanneer er nieuwe gegevens beschikbaar komen of wanneer de consument van de API zijn eigen gegevens heeft, moet het model opnieuw worden getraind.

Het opnieuw trainen kan vaak voorkomen. Met batchuitvoeringsactiviteit en resourceactiviteit bijwerken kunt u het Machine Learning Studio-model (klassiek) opnieuw trainen en de voorspellende webservice bijwerken.

In de volgende afbeelding ziet u de relatie tussen training en voorspellende webservices.

Webservices

Resourceactiviteit voor Machine Learning Studio (klassiek) bijwerken

Het volgende JSON-fragment definieert een Machine Learning Studio (klassiek) Batch Execution-activiteit.

{
    "name": "amlUpdateResource",
    "type": "AzureMLUpdateResource",
    "description": "description",
    "linkedServiceName": {
        "type": "LinkedServiceReference",
        "referenceName": "updatableScoringEndpoint2"
    },
    "typeProperties": {
        "trainedModelName": "ModelName",
        "trainedModelLinkedServiceName": {
                    "type": "LinkedServiceReference",
                    "referenceName": "StorageLinkedService"
                },
        "trainedModelFilePath": "ilearner file path"
    }
}
Eigenschappen Beschrijving Vereist
naam Naam van de activiteit in de pijplijn Ja
beschrijving Tekst die beschrijft wat de activiteit doet. Nee
type Voor Machine Learning Studio (klassiek) Resource-activiteit bijwerken is het activiteitstype AzureMLUpdateResource. Ja
linkedServiceName Aan Machine Learning Studio (klassiek) gekoppelde service die de eigenschap updateResourceEndpoint bevat. Ja
trainedModelName Naam van de module Getraind model in het webserviceexperiment dat moet worden bijgewerkt Ja
trainedModelLinkedServiceName Naam van de gekoppelde Azure Storage-service met het ilearner-bestand dat is geüpload door de updatebewerking Ja
trainedModelFilePath Het relatieve bestandspad in trainedModelLinkedService dat het ilearner-bestand vertegenwoordigt dat is geüpload door de updatebewerking Ja

End-to-end werkstroom

Het hele proces van het operationeel maken van het opnieuw trainen van een model en het bijwerken van de voorspellende webservices omvat de volgende stappen:

  • Roep de trainingswebservice aan met behulp van de batchuitvoeringsactiviteit. Het aanroepen van een trainingswebservice is hetzelfde als het aanroepen van een voorspellende webservice die wordt beschreven in Voorspellende pijplijnen maken met behulp van Machine Learning Studio (klassiek) en de activiteit Batch-uitvoering. De uitvoer van de trainingswebservice is een iLearner-bestand dat u kunt gebruiken om de voorspellende webservice bij te werken.
  • Roep het eindpunt van de updateresource van de voorspellende webservice aan met behulp van de activiteit Resource bijwerken om de webservice bij te werken met het zojuist getrainde model.

Gekoppelde Machine Learning Studio-service (klassiek)

Voordat de hierboven genoemde end-to-end-werkstroom werkt, moet u twee aan Machine Learning Studio (klassieke) gekoppelde services maken:

  1. Een machine Learning Studio -service (klassiek) die is gekoppeld aan de trainingswebservice. Deze gekoppelde service wordt op dezelfde manier gebruikt door batchuitvoeringsactiviteit als in Voorspellende pijplijnen maken met behulp van Machine Learning Studio (klassiek) en de batchuitvoeringsactiviteit. Het verschil is de uitvoer van de trainingswebservice is een iLearner-bestand, dat vervolgens wordt gebruikt door updateresourceactiviteit om de voorspellende webservice bij te werken.
  2. Een Machine Learning Studio -service (klassiek) die is gekoppeld aan het eindpunt van de updateresource van de voorspellende webservice. Deze gekoppelde service wordt gebruikt door resourceactiviteit bijwerken om de voorspellende webservice bij te werken met behulp van het iLearner-bestand dat uit de bovenstaande stap is geretourneerd.

Voor de tweede gekoppelde Machine Learning Studio-service (klassiek) is de configuratie anders wanneer uw Machine Learning Studio-webservice (klassiek) een klassieke webservice of een nieuwe webservice is. De verschillen worden afzonderlijk besproken in de volgende secties.

Webservice is een nieuwe Azure Resource Manager-webservice

Als de webservice het nieuwe type webservice is dat een Azure Resource Manager-eindpunt beschikbaar maakt, hoeft u het tweede niet-standaardeindpunt niet toe te voegen. Het updateResourceEndpoint in de gekoppelde service heeft de volgende indeling:

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

U kunt waarden ophalen voor tijdelijke aanduidingen in de URL bij het uitvoeren van query's op de webservice in Azure Machine Learning Studio.

Voor het nieuwe type updateresource-eindpunt is verificatie van de service-principal vereist. Als u service-principalverificatie wilt gebruiken, registreert u een toepassingsentiteit in Microsoft Entra-id en verleent u deze de rol Inzender of Eigenaar van het abonnement of de resourcegroep waartoe de webservice behoort. Zie hoe u een service-principal maakt en machtigingen toewijst voor het beheren van Azure-resources. Noteer de volgende waarden die u gebruikt om de gekoppelde service te definiëren:

  • Toepassings-id
  • Toepassingssleutel
  • Tenant-id

Hier volgt een voorbeeld van een definitie van een gekoppelde service:

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

In het volgende scenario vindt u meer informatie. Het bevat een voorbeeld voor het opnieuw trainen en bijwerken van Machine Learning Studio-modellen (klassiek) vanuit een pijplijn.

Voorbeeld: Een Machine Learning Studio-model (klassiek) opnieuw trainen en bijwerken

Deze sectie bevat een voorbeeldpijplijn die gebruikmaakt van de Batch-uitvoeringsactiviteit van Azure Machine Learning Studio (klassiek) om een model opnieuw te trainen. De pijplijn maakt ook gebruik van de activiteit Resource bijwerken van Azure Machine Learning Studio (klassiek) om het model in de scorewebservice bij te werken. De sectie bevat ook JSON-fragmenten voor alle gekoppelde services, gegevenssets en pijplijn in het voorbeeld.

Gekoppelde Azure Blob Storage-service:

Azure Storage bevat de volgende gegevens:

  • trainingsgegevens. De invoergegevens voor de trainingswebservice machine learning studio (klassiek).
  • iLearner-bestand. De uitvoer van de trainingswebservice van Machine Learning Studio (klassiek). Dit bestand is ook de invoer voor de activiteit Resource bijwerken.

Hier volgt de JSON-voorbeelddefinitie van de gekoppelde service:

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

Gekoppelde service voor het trainingseindpunt van Machine Learning Studio (klassiek)

Het volgende JSON-fragment definieert een gekoppelde Machine Learning Studio-service (klassiek) die verwijst naar het standaardeindpunt van de trainingswebservice.

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

Ga in Azure Machine Learning Studio (klassiek) als volgt te werk om waarden op te halen voor mlEndpoint en apiKey:

  1. Klik in het linkermenu op WEB SERVICES .
  2. Klik op de trainingswebservice in de lijst met webservices.
  3. Klik op Kopiëren naast het tekstvak api-sleutel . Plak de sleutel op het klembord in de JSON-editor van Data Factory.
  4. Klik in Azure Machine Learning Studio (klassiek) op de koppeling BATCH EXECUTION .
  5. Kopieer de aanvraag-URI uit de sectie Aanvraag en plak deze in de JSON-editor.

Gekoppelde service voor een updatable score-eindpunt van Azure Machine Learning Studio (klassiek):

Het volgende JSON-codefragment definieert een gekoppelde Azure Machine Learning Studio-service (klassiek) die verwijst naar het updatable eindpunt van de scorewebservice.

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

Pijplijn

De pijplijn heeft twee activiteiten: AzureMLBatchExecution en AzureMLUpdateResource. De batchuitvoeringsactiviteit gebruikt de trainingsgegevens als invoer en produceert een iLearner-bestand als uitvoer. De activiteit Resource bijwerken neemt vervolgens dit iLearner-bestand en gebruikt dit om de voorspellende webservice bij te werken.

{
    "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" ]
                    }
                ]
            }
        ]
    }
}

Zie de volgende artikelen waarin wordt uitgelegd hoe u gegevens op andere manieren kunt transformeren: