本教程介紹使用 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 代碼。 |
實驗 | 用於進行訓練實驗運行、打分實驗運行或兩者的傘形實體。 |
計畫實驗 | 一個術語,用於描述培訓或計分實驗運行的自動化,由用戶定義的計畫管理。 |
實驗運行 | 培訓或評分實驗的特定實例。 從特定實驗運行的多個實驗在用於訓練或評分的資料集值上可能不同。 |
訓練的模型 | 通過實驗和特徵工程過程建立的機器學習模型,然後得出經過驗證、評估和最終確定的模型。 |
已發佈模型 | 經過培訓、驗證和評估後,最終確定和版本化模型。 |
機器學習服務(ML服務) | 部署為服務的ML實例,用於支援使用API終結點的按需培訓和評分請求。 還可以使用現有的已訓練實驗運行建立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 |
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 |
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 |
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"
}
通過建立 GET
請求 /mlServices
提供 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服務可返回具有或多或少鍵值對的響應。 以上響應表示 ML服務,包括計畫培訓和評分實驗運行。
如果要計畫已發佈的ML服務的評分和培訓,可以通過使用 PUT
請求 /mlServices
。
API格式
PUT /mlServices/{SERVICE_ID}
參數 | 說明 |
---|---|
{SERVICE_ID} |
獨特 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"
}