이 자습서에서는 다음을 사용하여 모델을 서비스로 게시하는 프로세스에 대해 설명합니다. Sensei Machine Learning API.
이 자습서에서는 Adobe Experience Platform 데이터 과학 작업 영역에 대한 작업 이해가 필요합니다. 이 자습서를 시작하기 전에 다음을 검토하십시오. 데이터 과학 작업 영역 개요 를 참조하십시오.
이 자습서와 함께 따르려면 기존 ML 엔진, ML 인스턴스 및 실험이 있어야 합니다. API에서 이러한 구성 요소를 만드는 방법에 대한 단계는에서 자습서를 참조하십시오. 패키지된 배합식 가져오기.
마지막으로, 이 자습서를 시작하기 전에 시작하기 에 성공적으로 호출하기 위해 알아야 하는 중요한 정보는 개발자 안내서의 섹션 을 참조하십시오 Sensei Machine Learning 이 자습서 전체에서 사용되는 필수 헤더를 포함한 API:
{ACCESS_TOKEN}
{ORG_ID}
{API_KEY}
모든 POST, PUT 및 PATCH 요청에는 추가 헤더가 필요합니다.
다음 표에서는 이 자습서에서 사용되는 몇 가지 일반적인 용어를 간략하게 설명합니다.
용어 | 정의 |
---|---|
머신 러닝 인스턴스(ML 인스턴스) | 의 인스턴스 Sensei 특정 데이터, 매개 변수 및 Sensei 코드. |
실험 | 교육 실험 실행, 채점 실험 실행 또는 둘 다를 실행하기 위한 umbrella 엔티티입니다. |
예약된 실험 | 사용자 정의 일정에 의해 관리되는 교육 또는 채점 실험 실행의 자동화를 설명하는 용어입니다. |
실험 실행 | 교육 또는 채점 실험의 특정 인스턴스. 특정 실험의 여러 실험 실행은 교육 또는 채점에 사용되는 데이터 세트 값이 다를 수 있습니다. |
교육된 모델 | 검증, 평가 및 최종 모델에 도달하기 전에 기능 엔지니어링을 실험하고 프로세스를 통해 생성된 머신 러닝 모델입니다. |
게시된 모델 | 교육, 유효성 검사 및 평가 후에 최종 버전 모델이 도착했습니다. |
머신 러닝 서비스(ML 서비스) | API 끝점을 사용하여 교육 및 채점에 대한 온디맨드 요청을 지원하기 위해 서비스로 배포된 ML 인스턴스. 훈련된 기존 실험 실행을 사용하여 ML 서비스를 만들 수도 있습니다. |
교육 실험 실행을 ML 서비스로 게시할 때 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 |
기존 ML 인스턴스 식별, ML 서비스를 만드는 데 사용되는 교육 실험 실행은 이 특정 ML 인스턴스에 해당해야 합니다. |
trainingExperimentId |
ML 인스턴스 식별에 해당하는 실험 식별. |
trainingExperimentRunId |
ML 서비스 게시에 사용되는 특정 교육 실험 실행. |
scoringDataSetId |
예약된 채점 실험 실행에 사용될 특정 데이터 세트를 참조하는 식별. |
scoringTimeframe |
실험 실행 채점에 사용될 데이터 필터링의 시간(분)을 나타내는 정수 값입니다. (예: 값) 10080 은(는) 각 예약된 채점 실험 실행에 대해 지난 10080분 또는 168시간의 데이터가 사용됨을 의미합니다. 값: 0 는 데이터를 필터링하지 않으며, 데이터 세트 내의 모든 데이터는 점수에 사용됩니다. |
scoringSchedule |
예약된 채점 실험 실행에 대한 세부 정보를 포함합니다. |
scoringSchedule.startTime |
채점을 시작할 시기를 나타내는 날짜/시간입니다. |
scoringSchedule.endTime |
채점을 시작할 시기를 나타내는 날짜/시간입니다. |
scoringSchedule.cron |
실험 실행을 평가할 간격을 나타내는 크론 값. |
응답
성공적인 응답은 고유한 사항을 포함하여 새로 생성된 ML 서비스의 세부 사항을 반환합니다 id
및 scoringExperimentId
해당 채점 실험의 경우.
{
"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 서비스를 만들 수 있으며, 이는 교육을 위한 일반 실험 엔티티를 만듭니다. 교육 실험 실행이 생성되며 모든 예약된 채점 실험 실행에 사용됩니다. 다음을 확인합니다. mlInstanceId
, trainingDataSetId
, 및 scoringDataSetId
ml 서비스를 만들고, 존재하고 유효한 값인지 확인하는 데 필요합니다.
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 * * * *"
}
}'
JSON 키 | 설명 |
---|---|
mlInstanceId |
ML 서비스를 만드는 데 사용되는 ML 인스턴스를 나타내는 기존 ML 인스턴스 식별. |
trainingDataSetId |
교육 실험에 사용할 특정 데이터 세트를 참조하는 식별 |
trainingTimeframe |
교육 실험에 사용될 데이터 필터링에 걸리는 시간을 나타내는 정수 값입니다. (예: 값) "10080" 은(는) 지난 10080분 또는 168시간의 데이터가 교육 실험 실행에 사용됨을 의미합니다. 값: "0" 는 데이터를 필터링하지 않으며, 데이터 세트 내의 모든 데이터가 교육에 사용됩니다. |
scoringDataSetId |
예약된 채점 실험 실행에 사용될 특정 데이터 세트를 참조하는 식별. |
scoringTimeframe |
실험 실행 채점에 사용될 데이터 필터링의 시간(분)을 나타내는 정수 값입니다. (예: 값) "10080" 은(는) 각 예약된 채점 실험 실행에 대해 지난 10080분 또는 168시간의 데이터가 사용됨을 의미합니다. 값: "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 서비스로 게시하려면 교육 및 채점 일정을 모두 제공해야 합니다. 이 구성의 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 * * * *"
}
}'
JSON 키 | 설명 |
---|---|
mlInstanceId |
ML 서비스를 만드는 데 사용되는 ML 인스턴스를 나타내는 기존 ML 인스턴스 식별. |
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 서비스를 조회할 수 있습니다. GET
요청 대상 /mlServices
및 고유한 id
경로에 있는 ML 서비스의 입니다.
API 형식
GET /mlServices/{SERVICE_ID}
매개변수 | 설명 |
---|---|
{SERVICE_ID} |
고유 id 조회하고 있는 ML 서비스 |
요청
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 서비스를 검색하면 키-값 쌍이 더 많거나 적은 응답이 반환될 수 있습니다. 위의 응답은 를 나타냅니다. 예약된 교육 및 채점 실험 실행이 모두 있는 ML 서비스.
이미 게시된 ML 서비스에 대한 채점 및 교육을 예약하려는 경우 PUT
요청 날짜: /mlServices
.
API 형식
PUT /mlServices/{SERVICE_ID}
매개변수 | 설명 |
---|---|
{SERVICE_ID} |
고유 id 업데이트 중인 ML 서비스의 ID입니다. |
요청
다음 요청은 을 추가하여 기존 ML 서비스에 대한 교육 및 채점을 예약합니다. trainingSchedule
및 scoringSchedule
해당 키가 있는 키 startTime
, endTime
, 및 cron
키.
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"
}