Share via


리소스 업데이트 작업을 사용하여 Machine Learning 스튜디오(클래식) 모델 업데이트

적용 대상: Azure Data Factory Azure Synapse Analytics

기업용 올인원 분석 솔루션인 Microsoft Fabric의 Data Factory를 사용해 보세요. Microsoft Fabric은 데이터 이동부터 데이터 과학, 실시간 분석, 비즈니스 인텔리전스 및 보고에 이르기까지 모든 것을 다룹니다. 무료로 새 평가판을 시작하는 방법을 알아봅니다!

Important

Azure Machine Learning Studio(클래식)에 대한 지원은 2024년 8월 31일에 종료됩니다. 해당 날짜까지 Azure Machine Learning으로 전환하는 것이 좋습니다.

2021년 12월 1일부터 새 Machine Learning Studio(클래식) 리소스(작업 영역 및 웹 서비스 계획)를 만들 수 없습니다. 2024년 8월 31일까지 기존 Machine Learning Studio(클래식) 실험 및 웹 서비스를 계속 사용할 수 있습니다. 자세한 내용은 다음을 참조하세요.

Machine Learning Studio(클래식) 설명서는 사용 중지 중이며 나중에 업데이트되지 않을 수 있습니다.

참고 항목

2021년 12월 1일 이후에는 Machine Learning Studio(클래식) 리소스를 더 이상 만들 수 없으므로 사용자는 리소스 업데이트 작업을 사용하여 Machine Learning Studio(클래식) 모델을 업데이트하는 대신 Machine Learning 파이프라인 실행 작업에서 Azure Machine Learning을 사용하는 것이 좋습니다.

이 문서에서는 기본 Machine Learning Studio(클래식) 통합 문서인 Machine Learning Studio(클래식)를 사용하여 예측 파이프라인 만들기를 보완합니다. 아직 검토하지 않은 경우 이 문서를 읽기 전에 기본 문서를 검토하세요.

개요

Machine Learning 스튜디오(클래식) 모델을 조작하는 프로세스의 일부로, 모델을 학습하고 저장합니다. 그런 다음 이를 사용하여 예측 웹 서비스를 만듭니다. 웹 서비스는 웹 사이트, 대시보드 및 모바일 앱에서 사용할 수 있습니다.

Machine Learning 스튜디오(클래식)를 사용하여 만드는 모델은 일반적으로 정적이 아닙니다. 새 데이터를 사용할 수 있게 되거나 API 소비자가 자체 데이터를 보유할 때 모델을 다시 학습해야 합니다.

재학습은 자주 발생할 수 있습니다. Batch Execution 작업 및 리소스 업데이트 작업을 사용하면 Machine Learning 스튜디오(클래식) 모델을 조작하여 예측 웹 서비스를 다시 학습하고 업데이트할 수 있습니다.

다음 그림에서는 학습과 예측 웹 서비스 간의 관계를 보여 줍니다.

Web services

Machine Learning Studio(클래식) 업데이트 리소스 작업

다음 JSON 코드 조각에서는 Machine Learning Studio(클래식) Batch Execution 작업을 정의합니다.

{
    "name": "amlUpdateResource",
    "type": "AzureMLUpdateResource",
    "description": "description",
    "linkedServiceName": {
        "type": "LinkedServiceReference",
        "referenceName": "updatableScoringEndpoint2"
    },
    "typeProperties": {
        "trainedModelName": "ModelName",
        "trainedModelLinkedServiceName": {
                    "type": "LinkedServiceReference",
                    "referenceName": "StorageLinkedService"
                },
        "trainedModelFilePath": "ilearner file path"
    }
}
속성 설명 필수
name 파이프라인의 작업 이름입니다.
description 작업이 어떤 일을 수행하는지 설명하는 텍스트입니다. 아니요
type Machine Learning 스튜디오(클래식) 리소스 업데이트 작업의 경우 작업 유형은 AzureMLUpdateResource입니다.
linkedServiceName updateResourceEndpoint 속성을 포함하는 Machine Learning 스튜디오(클래식)에 연결된 서비스입니다.
trainedModelName 업데이트할 웹 서비스 실험의 학습된 모델 모듈 이름
trainedModelLinkedServiceName 업데이트 작업으로 업로드되는 ilearner 파일을 보유한 Azure Storage 연결된 서비스의 이름입니다.
trainedModelFilePath 업데이트 작업에서 업로드한 ilearner 파일을 나타내는 trainedModelLinkedService의 상대 파일 경로입니다.

엔드투엔드 워크플로

모델을 재학습하고 예측 웹 서비스를 업데이트하는 전체 프로세스에는 다음 단계가 포함됩니다.

  • 일괄 처리 실행 작업을 사용하여 학습 웹 서비스를 호출합니다. 학습 웹 서비스를 호출하는 것은 Machine Learning 스튜디오(클래식) 및 Batch Execution 작업을 사용하여 예측 파이프라인 만들기에 설명된 예측 웹 서비스를 호출하는 것과 동일합니다. 학습 웹 서비스의 출력은 예측 웹 서비스를 업데이트하는 데 사용할 수 있는 iLearner 파일입니다.
  • 업데이트 리소스 작업을 사용하여 새로 학습된 모델로 웹 서비스를 업데이트하여 예측 웹 서비스의 업데이트 리소스 엔드포인트를 호출합니다.

Machine Learning Studio(클래식) 연결된 서비스

위에서 언급한 엔드투엔드 워크플로가 작동하려면 두 개의 Machine Learning 스튜디오(클래식)에 연결된 서비스를 만들어야 합니다.

  1. 학습 웹 서비스에 대한 Machine Learning 스튜디오(클래식)에 연결된 서비스입니다. 이 연결된 서비스는 Machine Learning 스튜디오(클래식) 및 Batch Execution 작업을 사용하여 예측 파이프라인 만들기에 언급된 것과 동일한 방식으로 Batch Execution 작업에서 사용됩니다. 차이점은 학습 웹 서비스의 출력이 iLearner 파일이라는 점입니다. 이 파일은 업데이트 리소스 작업에서 예측 웹 서비스를 업데이트하는 데 사용됩니다.
  2. 예측 웹 서비스의 리소스 업데이트 엔드포인트에 대한 Machine Learning Studio(클래식) 연결 서비스. 리소스 업데이트 작업에서 위의 단계에서 반환된 iLearner 파일을 사용하여 예측 웹 서비스를 업데이트하는 데 사용됩니다.

두 번째 Machine Learning 스튜디오(클래식) 연결된 서비스의 경우 Machine Learning 스튜디오(클래식) 웹 서비스가 기본 웹 서비스 또는 새 웹 서비스일 때 구성이 다릅니다. 차이점은 다음 섹션에서 별도로 설명합니다.

웹 서비스는 새로운 Azure Resource Manager 웹 서비스입니다.

웹 서비스가 Azure Resource Manager 엔드포인트를 노출하는 새로운 유형의 웹 서비스인 경우 기본이 아닌 두 번째 엔드포인트를 추가할 필요가 없습니다. 연결된 서비스의 updateResourceEndpoint 형식은 다음과 같습니다.

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

Machine Learning Studio(클래식) 웹 서비스 포털에서 웹 서비스를 쿼리할 때 URL의 자리 표시자 값을 가져올 수 있습니다.

새 유형의 업데이트 리소스 엔드포인트에는 서비스 주체 인증이 필요합니다. 서비스 주체 인증을 사용하려면 Microsoft Entra ID에 애플리케이션 엔터티를 등록하고 웹 서비스가 속한 구독 또는 리소스 그룹의 기여자 또는 소유자 역할을 부여합니다. 서비스 주체를 만들고 Azure 리소스를 관리하는 권한을 할당하는 방법을 참조 하세요. 연결된 서비스를 정의하는 데 사용되므로 다음 값을 적어둡니다.

  • 애플리케이션 ID
  • 애플리케이션 키
  • 테넌트 ID

다음은 샘플 연결된 서비스 정의입니다.

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

다음 시나리오에서는 자세한 내용을 제공합니다. 파이프라인에서 Machine Learning Studio(클래식) 모델을 재학습 및 업데이트하는 예제가 포함되어 있습니다.

샘플: Machine Learning 스튜디오(클래식) 모델 재학습 및 업데이트

이 섹션에서는 Azure Machine Learning 스튜디오(클래식) 일괄 처리 실행 작업을 사용하여 모델을 재학습하는 파이프라인 샘플을 제공합니다. 또한 파이프라인은 Azure Machine Learning Studio(클래식) 업데이트 리소스 작업을 사용하여 점수 매기기 웹 서비스에서 모델을 업데이트합니다. 섹션에서는 또한 모든 연결된 서비스, 데이터 세트 및 파이프라인에 대한 JSON 코드 조각 예제도 제공합니다.

Azure Blob Storage 연결된 서비스:

Azure Storage는 다음 데이터를 보유합니다.

  • 학습 데이터. Machine Learning 스튜디오(클래식) 학습 웹 서비스에 대한 입력 데이터입니다.
  • iLearner 파일. Machine Learning 스튜디오(클래식) 학습 웹 서비스의 출력입니다. 이 파일은 리소스 업데이트 활동에 대한 입력이기도 합니다.

연결된 서비스의 샘플 JSON 정의는 다음과 같습니다.

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

Machine Learning 스튜디오(클래식) 학습 엔드포인트에 대한 연결된 서비스

다음 JSON 코드 조각은 학습 웹 서비스의 기본 엔드포인트를 가리키는 Machine Learning 스튜디오(클래식)에 연결된 서비스를 정의합니다.

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

Azure Machine Learning Studio(클래식)에서 다음을 수행하여 mlEndpointapiKey에 대한 값을 가져옵니다.

  1. 왼쪽 메뉴에서 웹 서비스 를 클릭합니다.
  2. 웹 서비스 목록에서 학습 웹 서비스를 클릭합니다.
  3. API 키 텍스트 상자 옆에 있는 복사를 클릭합니다. 클립보드의 키를 Data Factory JSON 편집기에 붙여넣습니다.
  4. Azure Machine Learning Studio(클래식)에서 BATCH EXECUTION 링크를 클릭합니다.
  5. 요청 섹션에서 요청 URI를 복사하여 JSON 편집기에 붙여넣습니다.

Azure Machine Learning Studio(클래식) 업데이트 가능한 점수 매기기 엔드포인트에 대한 연결된 서비스:

다음 JSON 코드 조각에서는 점수 매기기 웹 서비스의 업데이트 가능한 엔드포인트를 가리키는 Azure Machine Learning 스튜디오(클래식) 연결된 서비스를 정의합니다.

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

파이프라인

파이프라인에는 AzureMLBatchExecutionAzureMLUpdateResource라는 두 활동이 있습니다. Batch 실행 작업은 학습 데이터를 입력으로 사용하고 iLearner 파일을 출력으로 생성합니다. 그런 다음 리소스 업데이트 작업은 이 iLearner 파일을 가져와서 예측 웹 서비스를 업데이트하는 데 사용합니다.

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

다른 방법으로 데이터를 변환하는 방법을 설명하는 다음 문서를 참조하세요.