Publish a model as a service using Sensei Machine Learning API
이 튜토리얼 에서는 를 사용하여 Sensei Machine Learning API모델을 서비스로 게시하는 프로세스에 대해 설명합니다.
시작하기
이 튜토리얼을 사용하려면 Adobe Experience Platform 데이터 과학 작업 영역에 대한 작업 이해가 필요합니다. 이 튜토리얼 시작하기 전에 Data Science 작업 영역 개요🔗에서 서비스에 대한 개략적인 소개를 검토하세요.
이 튜토리얼 함께 팔로우하려면 기존 ML 엔진, ML 인스턴스 및 실험가 있어야 합니다. API에서 이를 만드는 방법에 대한 단계는 패키지된 레서피🔗 가져오기에 대한 튜토리얼을 참조하십시오.
마지막으로, 이 튜토리얼을 시작하기 전에 개발자 안내서의 시작하기🔗 섹션에서 이 튜토리얼 전체에서 사용되는 필수 헤더를 포함하여 API를 Sensei Machine Learning 성공적으로 호출하기 위해 알아야 하는 중요한 정보를 검토하세요.
{ACCESS_TOKEN}
{ORG_ID}
{API_KEY}
모든 POST, PUT 및 PATCH 요청에는 추가 헤더가 필요합니다.
- 콘텐츠 유형: 애플리케이션/json
핵심 용어
다음 표에서는 이 튜토리얼 작업에 사용된 몇 가지 일반적인 용어를 요약한 것입니다.
기존 교육 실험 실행 및 예약된 점수 매기기를 사용하여 ML 서비스 만들기
교육 실험 Run as an ML Service를 게시 때 점수 매기기 실험 POST 요청의 페이로드 실행에 대한 세부 정보를 제공하여 점수 매기기를 예약할 수 있습니다. 이로 인해 점수 매기기를 위해 예약된 실험 엔터티가 만들어집니다.
API 포맷
POST /mlServices
요청
curl -X POST
https://platform.adobe.io/data/sensei/mlServices
-H 'Authorization: {ACCESS_TOKEN}'
-H 'x-api-key: {API_KEY}'
-H 'x-gw-ims-org-id: {ORG_ID}'
-H 'Content-Type: application/json'
-d '{
"name": "Service name",
"description": "Service description",
"trainingExperimentId": "c4155146-b38f-4a8b-86d8-1de3838c8d87",
"trainingExperimentRunId": "5c5af39c73fcec153117eed1",
"scoringDataSetId": "5c5af39c73fcec153117eed1",
"scoringTimeframe": "20000",
"scoringSchedule": {
"startTime": "2019-04-09T00:00",
"endTime": "2019-04-10T00:00",
"cron": "10 * * * *"
}
}'
mlInstanceId
trainingExperimentId
trainingExperimentRunId
scoringDataSetId
scoringTimeframe
10080
각 예약된 점수 매기기 실험 실행에 사용됩니다. 값은 0
데이터를 필터링하지 않으며 데이터 세트 내의 모든 데이터가 점수 매기기에 사용됩니다.scoringSchedule
scoringSchedule.startTime
scoringSchedule.endTime
scoringSchedule.cron
응답
응답이 성공하면 해당 채점 실험에 대한 고유한 id
및 scoringExperimentId
을(를) 포함하여 새로 만든 ML 서비스의 세부 정보가 반환됩니다.
{
"id": "string",
"name": "string",
"description": "string",
"mlInstanceId": "string",
"trainingExperimentId": "string",
"trainingExperimentRunId": "string",
"scoringExperimentId": "string",
"scoringDataSetId": "string",
"scoringTimeframe": "integer",
"scoringSchedule": {
"startTime": "2019-03-13T00:00",
"endTime": "2019-03-14T00:00",
"cron": "30 * * * *"
},
"created": "2019-04-08T14:45:25.981Z",
"updated": "2019-04-08T14:45:25.981Z"
}
기존 ML 인스턴스에서 ML 서비스 생성
특정 사용 사례 및 요구 사항에 따라 ML 인스턴스를 사용하여 ML 서비스를 생성하는 것은 교육 예약 및 실험 실행 점수 매기기 측면에서 유연합니다. 이 튜토리얼에서는 다음과 같은 특정 사례를 살펴봅니다.
ML 서비스는 교육 또는 채점 실험 예약 없이 ML 인스턴스를 사용하여 만들 수 있습니다. 이러한 ML 서비스는 일반적인 실험 개체 및 교육 및 채점을 위한 단일 실험 실행을 만듭니다.
채점을 위한 실험이 예약된 ML 서비스 ml-service-with-scheduled-experiment-for-scoring
채점을 위해 예약된 실험 실행이 포함된 ML 인스턴스를 게시하여 ML 서비스를 생성할 수 있으며, 이 경우 교육을 위한 일반 실험 엔터티가 생성됩니다. 교육 실험 실행이 생성되고 모든 예약된 점수 실험 실행에 사용됩니다. mlInstanceId
ML 서비스를 만드는 데 필요한 , trainingDataSetId
, 및 scoringDataSetId
해당 항목이 존재하고 유효한 값인지 확인합니다.
API 포맷
POST /mlServices
요청
curl -X POST
https://platform.adobe.io/data/sensei/mlServices
-H 'Authorization: {ACCESS_TOKEN}'
-H 'x-api-key: {API_KEY}'
-H 'x-gw-ims-org-id: {ORG_ID}'
-H 'x-sandbox-name: {SANDBOX_NAME}'
-d '{
"name": "Service name",
"description": "Service description",
"mlInstanceId": "c4155146-b38f-4a8b-86d8-1de3838c8d87",
"trainingDataSetId": "5c5af39c73fcec153117eed1",
"trainingTimeframe": "10000",
"scoringDataSetId": "5c5af39c73fcec153117eed1",
"scoringTimeframe": "20000",
"scoringSchedule": {
"startTime": "2019-04-09T00:00",
"endTime": "2019-04-10T00:00",
"cron": "10 * * * *"
}
}'
mlInstanceId
trainingDataSetId
trainingTimeframe
"10080"
교육 실험 실행에 사용됩니다. 의 "0"
값은 데이터를 필터링하지 않으며 데이터 세트 내의 모든 데이터가 교육 목적으로 사용됩니다.scoringDataSetId
scoringTimeframe
"10080"
각 예약된 점수 매기기 실험 실행에 사용됩니다. 값은 "0"
데이터를 필터링하지 않으며 데이터 세트 내의 모든 데이터가 점수 매기기에 사용됩니다.scoringSchedule
scoringSchedule.startTime
scoringSchedule.endTime
scoringSchedule.cron
응답
성공적인 응답은 새로 만든 ML 서비스의 세부 정보를 반환합니다. 여기에는 서비스의 고유한 id
와 trainingExperimentId
해당 교육 및 점수 매기기 실험에 대한 및 scoringExperimentId
가 각각 포함됩니다.
{
"id": "string",
"name": "string",
"description": "string",
"mlInstanceId": "string",
"trainingExperimentId": "string",
"trainingDataSetId": "string",
"trainingTimeframe": "integer",
"scoringExperimentId": "string",
"scoringDataSetId": "string",
"scoringTimeframe": "integer",
"scoringSchedule": {
"startTime": "2019-04-09T00:00",
"endTime": "2019-04-10T00:00",
"cron": "10 * * * *"
},
"created": "2019-04-09T08:58:10.956Z",
"updated": "2019-04-09T08:58:10.956Z"
}
교육 및 채점을 위한 예약된 실험이 있는 ML 서비스 ml-service-with-scheduled-experiments-for-training-and-scoring
예약된 교육 및 점수 매기기 실험 실행을 사용하여 기존 ML 인스턴스를 ML 서비스로 게시하려면 교육 및 점수 매기기 일정을 모두 제공해야 합니다. 이 구성의 ML 서비스가 생성되면 교육 및 채점 모두에 대해 예약된 실험 엔터티도 생성됩니다. 교육 및 채점 일정이 같을 필요는 없습니다. 채점 작업 실행 중에 예약된 교육 실험 실행에서 생성된 최신 교육 모델을 가져와 예약된 채점 실행에 사용합니다.
API 형식
POST /mlServices
요청
curl -X POST 'https://platform.adobe.io/data/sensei/mlServices'
-H 'Authorization: Bearer {ACCESS_TOKEN}'
-H 'x-api-key: {API_KEY}'
-H 'x-gw-ims-org-id: {ORG_ID}'
-H 'x-sandbox-name: {SANDBOX_NAME}'
-d '{
"name": "string",
"description": "string",
"mlInstanceId": "string",
"trainingDataSetId": "string",
"trainingTimeframe": "string",
"scoringDataSetId": "string",
"scoringTimeframe": "string",
"trainingSchedule": {
"startTime": "2019-04-09T00:00",
"endTime": "2019-04-10T00:00",
"cron": "10 * * * *"
},
"scoringSchedule": {
"startTime": "2019-04-09T00:00",
"endTime": "2019-04-10T00:00",
"cron": "10 * * * *"
}
}'
mlInstanceId
trainingDataSetId
trainingTimeframe
"10080"
은(는) 지난 10080분 또는 168시간의 데이터가 교육 실험 실행에 사용됨을 의미합니다. "0"
값은 데이터를 필터링하지 않으며 데이터 집합 내의 모든 데이터가 교육에 사용됩니다.scoringDataSetId
scoringTimeframe
"10080"
은(는) 각 예약된 채점 실험 실행에 대해 지난 10080분 또는 168시간의 데이터가 사용됨을 의미합니다. "0"
값은 데이터를 필터링하지 않으며 데이터 집합 내의 모든 데이터는 채점에 사용됩니다.trainingSchedule
scoringSchedule
scoringSchedule.startTime
scoringSchedule.endTime
scoringSchedule.cron
응답
성공적인 응답은 새로 생성된 ML 서비스의 세부 정보를 반환합니다. 여기에는 서비스의 고유한 id
과(와) 해당 교육 및 채점 실험의 trainingExperimentId
및 scoringExperimentId
이(가) 각각 포함됩니다. 아래 예제 응답에서 trainingSchedule
및 scoringSchedule
이(가) 있으면 교육 및 채점을 위한 실험 엔터티가 예약된 실험임을 나타냅니다.
{
"id": "string",
"name": "string",
"description": "string",
"mlInstanceId": "string",
"trainingExperimentId": "string",
"trainingDataSetId": "string",
"trainingTimeframe": "integer",
"scoringExperimentId": "string",
"scoringDataSetId": "string",,
"scoringTimeframe": "integer",
"trainingSchedule": {
"startTime": "2019-04-09T00:00",
"endTime": "2019-04-10T00:00",
"cron": "10 * * * *"
},
"scoringSchedule": {
"startTime": "2019-04-09T00:00",
"endTime": "2019-04-10T00:00",
"cron": "10 * * * *"
},
"created": "2019-04-09T08:58:10.956Z",
"updated": "2019-04-09T08:58:10.956Z"
}
ML 서비스 조회 retrieving-ml-services
/mlServices
에 GET
요청을 하고 경로에 ML 서비스의 고유한 id
을(를) 제공하여 기존 ML 서비스를 조회할 수 있습니다.
API 형식
GET /mlServices/{SERVICE_ID}
{SERVICE_ID}
id
입니다.요청
curl -X GET 'https://platform.adobe.io/data/sensei/mlServices/{SERVICE_ID}'
-H 'Authorization: Bearer {ACCESS_TOKEN}'
-H 'x-api-key: {API_KEY}'
-H 'x-gw-ims-org-id: {ORG_ID}'
-H 'x-sandbox-name: {SANDBOX_NAME}'
응답
성공적인 응답은 ML 서비스의 세부 정보를 반환합니다.
{
"id": "string",
"name": "string",
"description": "string",
"mlInstanceId": "string",
"trainingExperimentId": "string",
"trainingDataSetId": "string",
"trainingTimeframe": "integer",
"scoringExperimentId": "string",
"scoringDataSetId": "string",
"scoringTimeframe": "integer",
"trainingSchedule": {
"startTime": "2019-04-09T00:00",
"endTime": "2019-04-10T00:00",
"cron": "10 * * * *"
},
"scoringSchedule": {
"startTime": "2019-04-09T00:00",
"endTime": "2019-04-10T00:00",
"cron": "10 * * * *"
},
"created": "2019-05-13T23:46:03.478Z",
"updated": "2019-05-13T23:46:03.478Z"
}
교육 또는 채점 예약
이미 게시된 ML 서비스에 대한 점수 매기기 및 교육을 예약하려면 에 /mlServices
대한 요청으로 기존 ML 서비스를 PUT
업데이트하면 됩니다.
API 포맷
PUT /mlServices/{SERVICE_ID}
{SERVICE_ID}
id
입니다.요청
다음 요청은 각각의 startTime
, endTime
및 cron
키와 함께 trainingSchedule
및 scoringSchedule
키를 추가하여 기존 ML 서비스에 대한 교육 및 채점을 예약합니다.
curl -X PUT 'https://platform.adobe.io/data/sensei/mlServices/{SERVICE_ID}'
-H 'Authorization: {ACCESS_TOKEN}'
-H 'x-api-key: {API_KEY}'
-H 'x-gw-ims-org-id: {ORG_ID}'
-H 'x-sandbox-name: {SANDBOX_NAME}'
-d '{
"name": "string",
"description": "string",
"mlInstanceId": "string",
"trainingExperimentId": "string",
"trainingDataSetId": "string",
"trainingTimeframe": "integer",
"scoringExperimentId": "string",
"scoringDataSetId": "string",
"scoringTimeframe": "integer",
"trainingSchedule": {
"startTime": "2019-04-09T00:00",
"endTime": "2019-04-11T00:00",
"cron": "20 * * * *"
},
"scoringSchedule": {
"startTime": "2019-04-09T00:00",
"endTime": "2019-04-11T00:00",
"cron": "20 * * * *"
}
}'
startTime
하지 마십시오. 수정 startTime
해야 하는 경우 동일한 모델을 게시하고 교육 및 점수 매기기 작업을 다시 예약하는 것이 좋습니다.응답
성공적인 응답은 업데이트된 ML 서비스의 세부 정보를 반환합니다.
{
"id": "string",
"name": "string",
"description": "string",
"mlInstanceId": "string",
"trainingExperimentId": "string",
"trainingDataSetId": "string",
"trainingTimeframe": "integer",
"scoringExperimentId": "string",
"scoringDataSetId": "string",
"scoringTimeframe": "integer",
"trainingSchedule": {
"startTime": "2019-04-09T00:00",
"endTime": "2019-04-11T00:00",
"cron": "20 * * * *"
},
"scoringSchedule": {
"startTime": "2019-04-09T00:00",
"endTime": "2019-04-11T00:00",
"cron": "20 * * * *"
},
"created": "2019-04-09T08:58:10.956Z",
"updated": "2019-04-09T09:43:55.563Z"
}