使用Sensei Machine Learning API將模型發佈為服務

本教學課程涵蓋使用Sensei Machine Learning API將模型發佈為服務的程式。

快速入門

本教學課程需要對Adobe Experience Platform資料科學工作區有良好的認識。 在開始本教學課程之前,請先閱讀資料科學工作區概觀,以取得服務的高階簡介。

要遵循本教學課程,您必須有現有的ML引擎、ML實例和實驗。 如需如何在API中建立這些功能的步驟,請參閱匯入封裝方式的教學課程。

最後,在開始本教學課程之前,請先閱讀開發人員指南的快速入門一節,以取得成功呼叫Sensei Machine Learning API所需的重要資訊,包括本教學課程中使用的必要標題:

  • {ACCESS_TOKEN}
  • {IMS_ORG}
  • {API_KEY}

所有POST、PUT和PATCH請求都需要附加標題:

  • 內容類型:application/json

主要條款

下表概述本教學課程中使用的一些常見術語:

| 詞語 | 定義 |

機器學習實例(ML實例)
實驗
排程實驗
實驗執行
訓練的模型
發佈模型
機器學習服務(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: {IMS_ORG}'
  -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
scoringSchedule
scoringSchedule.startTime
scoringSchedule.endTime
scoringSchedule.cron

回應

成功的回應會傳回新建立之ML服務的詳細資訊,包括其唯一idscoringExperimentId的對應計分實驗。

{
  "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例項並排程實驗執行以進行計分,以建立ML服務,此實驗執行將建立一般的實驗實體以進行訓練。 會產生訓練實驗執行,並將用於所有排程的計分實驗執行。 請確定您具有建立ML服務所需的mlInstanceIdtrainingDataSetIdscoringDataSetId,並且它們是有效值。

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: {IMS_ORG}' 
  -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 Cron值,指示對「實驗執行」進行分數的間隔。

回應

成功的響應返回新建立的ML服務的詳細資訊。 這包括服務的唯一id,以及trainingExperimentIdscoringExperimentId,分別用於其相應的訓練和計分實驗。

{
  "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服務,您必須同時提供培訓與計分排程。 建立此配置的ML服務時,也會建立培訓和評分的計畫實驗實體。 請注意,培訓和計分排程不一定相同。 在計分作業執行期間,將擷取由排程培訓「實驗執行」產生的最新受訓模型,並用於排程的計分執行。

API格式

POST /mlServices

請求

curl -X POST 'https://platform-int.adobe.io/data/sensei/mlServices' 
  -H 'Authorization: Bearer {ACCESS_TOKEN}' 
  -H 'x-api-key: {API_KEY}' 
  -H 'x-gw-ims-org-id: {IMS_ORG}' 
  -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 Cron值,指示對「實驗執行」進行分數的間隔。

回應

成功的響應返回新建立的ML服務的詳細資訊。 這包括服務的唯一id,以及其對應訓練和計分實驗的trainingExperimentIdscoringExperimentId。 在以下範例回應中,trainingSchedulescoringSchedule的出現表明,用於訓練和評分的實驗實體是計畫的實驗。

{
  "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服務

通過向/mlServices發出GET請求並在路徑中提供ML服務的唯一id,您可以查找現有的ML服務。

API格式

GET /mlServices/{SERVICE_ID}
參數 說明
{SERVICE_ID} 您正在查找的ML服務的唯一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: {IMS_ORG}' 
  -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服務排程計分和培訓,可以使用/mlServices上的PUT請求更新現有ML服務。

API格式

PUT /mlServices/{SERVICE_ID}
參數 說明
{SERVICE_ID} 您正在更新的ML服務的唯一id

請求

下列請求會新增trainingSchedulescoringSchedule鍵及其各自的startTimeendTimecron鍵,以排程現有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: {IMS_ORG}' 
  -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"
}

本頁內容

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now