Sensei Machine Learning API을(를) 사용하여 모델을 서비스로 Publish
이 자습서에서는 Sensei Machine Learning API을(를) 사용하여 모델을 서비스로 게시하는 프로세스에 대해 설명합니다.
시작하기
이 자습서에서는 Adobe Experience Platform 데이터 과학 Workspace에 대한 작업 이해가 필요합니다. 이 자습서를 시작하기 전에 Data Science Workspace 개요에서 서비스에 대한 높은 수준의 소개를 검토하십시오.
이 자습서와 함께 따르려면 기존 ML 엔진, ML 인스턴스 및 실험이 있어야 합니다. API에서 만드는 방법에 대한 단계는 패키지된 레시피 가져오기에 대한 자습서를 참조하십시오.
마지막으로, 이 자습서를 시작하기 전에 개발자 안내서의 시작하기 섹션에서 이 자습서 전체에서 사용되는 필수 헤더를 포함하여 Sensei Machine Learning API를 성공적으로 호출하기 위해 알아야 할 중요한 정보를 검토하십시오.
- {ACCESS_TOKEN}
- {ORG_ID}
- {API_KEY}
모든 POST, PUT 및 PATCH 요청에는 추가 헤더가 필요합니다.
- Content-Type: application/json
주요 용어
다음 표에서는 이 자습서에서 사용되는 몇 가지 일반적인 용어를 간략하게 설명합니다.
기존 교육 실험 실행 및 예약된 채점으로 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 * * * *"
        }
      }'
mlInstanceIdtrainingExperimentIdtrainingExperimentRunIdscoringDataSetIdscoringTimeframe10080은(는) 각 예약된 채점 실험 실행에 대해 지난 10080분 또는 168시간의 데이터가 사용됨을 의미합니다. 0 값은 데이터를 필터링하지 않으며 데이터 집합 내의 모든 데이터는 채점에 사용됩니다.scoringSchedulescoringSchedule.startTimescoringSchedule.endTimescoringSchedule.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 서비스를 만들 수 있으며, 이는 교육을 위한 일반 실험 엔티티를 만듭니다. 교육 실험 실행이 생성되며 모든 예약된 채점 실험 실행에 사용됩니다. ML 서비스를 만드는 데 필요한 mlInstanceId, 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 * * * *"
        }
      }'
mlInstanceIdtrainingDataSetIdtrainingTimeframe"10080"은(는) 지난 10080분 또는 168시간의 데이터가 교육 실험 실행에 사용됨을 의미합니다. "0" 값은 데이터를 필터링하지 않으며 데이터 집합 내의 모든 데이터가 교육에 사용됩니다.scoringDataSetIdscoringTimeframe"10080"은(는) 각 예약된 채점 실험 실행에 대해 지난 10080분 또는 168시간의 데이터가 사용됨을 의미합니다. "0" 값은 데이터를 필터링하지 않으며 데이터 집합 내의 모든 데이터는 채점에 사용됩니다.scoringSchedulescoringSchedule.startTimescoringSchedule.endTimescoringSchedule.cron응답
성공적인 응답은 새로 생성된 ML 서비스의 세부 정보를 반환합니다. 여기에는 각각 해당 교육 및 채점 실험에 대한 trainingExperimentId 및 scoringExperimentId과(와) 서비스의 고유한 id이(가) 포함됩니다.
{
  "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 * * * *"
        }
      }'
mlInstanceIdtrainingDataSetIdtrainingTimeframe"10080"은(는) 지난 10080분 또는 168시간의 데이터가 교육 실험 실행에 사용됨을 의미합니다. "0" 값은 데이터를 필터링하지 않으며 데이터 집합 내의 모든 데이터가 교육에 사용됩니다.scoringDataSetIdscoringTimeframe"10080"은(는) 각 예약된 채점 실험 실행에 대해 지난 10080분 또는 168시간의 데이터가 사용됨을 의미합니다. "0" 값은 데이터를 필터링하지 않으며 데이터 집합 내의 모든 데이터는 채점에 사용됩니다.trainingSchedulescoringSchedulescoringSchedule.startTimescoringSchedule.endTimescoringSchedule.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에 PUT 요청으로 기존 ML 서비스를 업데이트하여 예약할 수 있습니다.
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"
}