を使用して、モデルをサービスとして公開する Sensei Machine Learning API
このチュートリアルでは、 Sensei Machine Learning API.
はじめに
このチュートリアルでは、Adobe Experience Platform Data Science Workspace に関する十分な知識が必要です。 このチュートリアルを開始する前に、 Data Science Workspace の概要 を参照してください。
このチュートリアルに従うには、既存の ML エンジン、ML インスタンス、Experiment が必要です。 API でこれらを作成する手順については、 パッケージ化されたレシピのインポート.
最後に、このチュートリアルを開始する前に、 はじめに を正しく呼び出すために知っておく必要がある重要な情報については、開発者ガイドの「 」の節を参照してください。 Sensei Machine Learning API(このチュートリアル全体で使用される必要なヘッダーを含む):
{ACCESS_TOKEN}
{ORG_ID}
{API_KEY}
すべての POST、PUT、および PATCH リクエストには、次の追加ヘッダーが必要です。
- Content-Type: application/json
キーワード
次の表に、このチュートリアルで使用される一般的な用語の概要を示します。
既存のトレーニング Experiment Run とスケジュールに沿ったスコアリングを使用して ML サービスを作成する
トレーニング Experiment Run を ML サービスとして公開する場合、スコアリング Experiment Run の詳細を指定して、POSTリクエストのペイロードをスコアリングのスケジュールを設定できます。 こうすると、スケジュールに沿ったスコアリング Experiment エンティティが作成されます。
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
を指定すると、過去 10,080 分(168 時間)のデータが、スケジュールに沿ったスコアリング Experiment Run に使用されます。値 0
を指定すると、データはフィルタリングされず、データセット内のすべてのデータがスコアリングに使用されます。scoringSchedule
scoringSchedule.startTime
scoringSchedule.endTime
scoringSchedule.cron
応答
正常な応答は、新しく作成された ML サービスの詳細(一意の 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 サービスを作成する
具体的な使用例や要件に応じて、トレーニング Experiment Run とスコアリング Experiment Run のスケジュールを設定し、ML サービスを ML インスタンスで柔軟に作成できます。 このチュートリアルでは、次のような特定のケースについて説明します。
ML サービスは、トレーニング Experiment やスコアリング Experiment のスケジュールを設定しなくても、ML インスタンスを使用して作成できます。 このような ML サービスでは、通常の Experiment エンティティと、トレーニングとスコアリングに対して 1 つの Experiment Run が作成されます。
スケジュールに沿ったスコアリング Experiment を含む ML サービス ml-service-with-scheduled-experiment-for-scoring
ML サービスを作成するには、スケジュールに沿ったスコアリング Experiment Run を含む ML インスタンスを公開します。この ML インスタンスは、トレーニング用の通常の Experiment エンティティを作成します。 トレーニング Experiment Run が生成され、スケジュールに沿ったすべてのスコアリング Experiment Run に使用されます。 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 * * * *"
}
}'
mlInstanceId
trainingDataSetId
trainingTimeframe
"10080"
を指定すると、過去 10,080 分(168 時間)のデータがトレーニング Experiment Run に使用されます。値 "0"
を指定すると、データはフィルタリングされず、データセット内のすべてのデータがトレーニングに使用されます。scoringDataSetId
scoringTimeframe
"10080"
を指定すると、過去 10,080 分(168 時間)のデータが、スケジュールに沿ったスコアリング Experiment Run に使用されます。値 "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"
}
スケジュールに沿ったトレーニングおよびスコアリング Experiment を含む ML サービス ml-service-with-scheduled-experiments-for-training-and-scoring
スケジュールに沿ったトレーニング Experiment Run とスコアリング Experiment Run を含む ML サービスとして既存の ML インスタンスを公開するには、トレーニングとスコアリングの両方のスケジュールを指定する必要があります。 この設定の ML サービスを作成すると、トレーニングとスコアの両方にスケジュールに沿った Experiment エンティティが作成されます。 トレーニングとスコアリングのスケジュールが同じである必要はありません。スコアリングジョブの実行中に、スケジュールに沿ったトレーニング Experiment Run によって生成された最新のトレーニング済みモデルが取得され、スケジュールに沿ったスコアリングの実行に使用されます。
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"
を指定すると、過去 10,080 分(168 時間)のデータがトレーニング Experiment Run に使用されます。値 "0"
を指定すると、データはフィルタリングされず、データセット内のすべてのデータがトレーニングに使用されます。scoringDataSetId
scoringTimeframe
"10080"
を指定すると、過去 10,080 分(168 時間)のデータが、スケジュールに沿ったスコアリング Experiment Run に使用されます。値 "0"
を指定すると、データはフィルタリングされず、データセット内のすべてのデータがスコアリングに使用されます。trainingSchedule
scoringSchedule
scoringSchedule.startTime
scoringSchedule.endTime
scoringSchedule.cron
応答
正常な応答は、新しく作成された ML サービスの詳細を返します。 これには、サービスの一意の id
、および trainingExperimentId
および scoringExperimentId
に含まれる値を格納します。 以下のレスポンスの例では、 trainingSchedule
および scoringSchedule
は、トレーニングとスコアリングの Experiment エンティティがスケジュールに沿った Experiment であることを示しています。
{
"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
既存の ML サービスを検索するには、 GET
~を要求する /mlServices
そして、一意の id
を設定します。
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 サービスでスコアリングとトレーニングのスケジュールを設定するには、 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"
}