Adobe AI Machine Learning APIを使用したサービスとしてのモデルの公開

NOTE
Data Science Workspaceは購入できなくなりました。
このドキュメントは、Data Science Workspaceの使用権限を以前に持つ既存のお客様向けです。

このチュートリアルでは、Adobe AI Machine Learning APIを使用してモデルをサービスとして公開するプロセスについて説明します。

はじめに

このチュートリアルでは、Adobe Experience Platform Data Science Workspaceについて理解する必要があります。 このチュートリアルを開始する前に、Data Science Workspaceの概要で、サービスの概要を確認してください。

このチュートリアルに従うには、既存のML エンジン、ML インスタンス、および実験が必要です。 APIでこれらを作成する手順については、​ パッケージ化されたレシピの読み込みに関するチュートリアルを参照してください。

最後に、このチュートリアルを開始する前に、このチュートリアル全体で使用される必須ヘッダーを含む、Adobe AI Machine Learning APIの呼び出しを正常に行うために知っておく必要がある重要な情報については、開発者ガイドの入門 セクションを確認してください。

  • {ACCESS_TOKEN}
  • {ORG_ID}
  • {API_KEY}

すべての POST、PUT、および PATCH リクエストには、次の追加ヘッダーが必要です。

  • Content-Type: application/json

キーワード

次の表に、このチュートリアルで使用される一般的な用語の概要を示します。

用語
定義
機械学習インスタンス(ML インスタンス)
特定のデータ、パラメーター、Adobe AI コードを含む、特定のテナントのAdobe AI Engineのインスタンス。
Experiment
トレーニング Experiment Run、スコアリングExperiment Run、またはその両方を保持するための包括的なエンティティ。
スケジュールに沿った Experiment
トレーニング Experiment Run またはスコアリング Experiment Run の自動化を表す用語。これらの実験は、ユーザー定義のスケジュールに従って実行されます。
Experiment Run
トレーニング Experiment やスコアリング Experiment の特定のインスタンス。 特定の Experiment から複数の Experiment Run をおこなう場合、トレーニングやスコアリングに使用されるデータセット値が異なる場合があります。
トレーニング済みモデル
モデルを検証、評価、および確定する前に、実験と機能の設計プロセスから作成された機械学習モデル。
公開済みモデル
トレーニング、検証、および評価を経て確定された、バージョン管理されたモデル。
機械学習サービス(ML サービス)
API エンドポイントを使用したトレーニングとスコアリングのオンデマンドリクエストをサポートするために、サービスとしてデプロイされたマシンラーニングインスタンス。 マシンラーニングサービスは、既存のトレーニング済み実験実行を使用して作成することもできます。

既存のトレーニング実験の実行とスケジュールされたスコアリングを使用してML サービスを作成する

トレーニング Experiment Run as a ML Serviceを公開する場合、POST リクエストのペイロードを実行するスコアリング Experiment Runの詳細を指定することで、スコアリングをスケジュールできます。 これにより、スコアリング用にスケジュールされた実験エンティティが作成されます。

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
スケジュールに沿ったスコアリング Experiment Run に使用する特定のデータセットを表す ID。
scoringTimeframe
分数を表す整数値。スコアリング Experiment Run に使用するデータをフィルタリングします。 例えば、値 10080 を指定すると、過去 10,080 分(168 時間)のデータが、スケジュールに沿ったスコアリング Experiment Run に使用されます。 値 0 を指定すると、データはフィルタリングされず、データセット内のすべてのデータがスコアリングに使用されます。
scoringSchedule
スケジュールに沿ったスコアリング Experiment Run に関する詳細が含まれます。
scoringSchedule.startTime
スコアリングを開始する日時を示します。
scoringSchedule.endTime
スコアリングを開始する日時を示します。
scoringSchedule.cron
実験の実行をスコアリングする間隔を示す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 サービスの作成

特定のユースケースや要件に応じて、マシンラーニングインスタンスを使用してマシンラーニングサービスを作成すると、トレーニングのスケジュール設定や実験の実行のスコアリングに柔軟に対応できます。 このチュートリアルでは、次のような特定のケースについて説明します。

マシンラーニングサービスは、トレーニングやスコアリング実験をスケジュールしなくても、マシンラーニングインスタンスを使用して作成できます。 このようなマシンラーニングサービスは、通常の実験エンティティと、トレーニングとスコアリング用の単一の実験ランを作成します。

スケジュールに沿ったスコアリング Experiment を含む ML サービス ml-service-with-scheduled-experiment-for-scoring

マシンラーニングサービスを作成するには、スコアリング用にスケジュールされた実験実行を使用してマシンラーニングインスタンスを公開します。これにより、トレーニング用に通常の実験エンティティが作成されます。 トレーニング実験の実行が生成され、スケジュールされたすべてのスコアリング実験の実行に使用されます。 MLサービスの作成に必要な mlInstanceIdtrainingDataSetId および 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 * * * *"
        }
      }'
JSON キー
説明
mlInstanceId
既存の ML インスタンスの ID。ML サービスの作成に使用する ML インスタンスを表します。
trainingDataSetId
トレーニング Experiment に使用する特定のデータセットを表す ID。
trainingTimeframe
分数を表す整数値。トレーニング Experiment に使用するデータをフィルタリングします。 例えば、値 "10080" を指定すると、過去 10,080 分(168 時間)のデータがトレーニング Experiment Run に使用されます。 値 "0" を指定すると、データはフィルタリングされず、データセット内のすべてのデータがトレーニングに使用されます。
scoringDataSetId
スケジュールに沿ったスコアリング Experiment Run に使用する特定のデータセットを表す ID。
scoringTimeframe
分数を表す整数値。スコアリング Experiment Run に使用するデータをフィルタリングします。 例えば、値 "10080" を指定すると、過去 10,080 分(168 時間)のデータが、スケジュールに沿ったスコアリング Experiment Run に使用されます。 値 "0" を指定すると、データはフィルタリングされず、データセット内のすべてのデータがスコアリングに使用されます。
scoringSchedule
スケジュールに沿ったスコアリング Experiment Run に関する詳細が含まれます。
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"
}

スケジュールに沿ったトレーニングおよびスコアリング Experiment を含む ML サービス ml-service-with-scheduled-experiments-for-training-and-scoring

スケジュールされたトレーニングとスコアリング実験の実行を使用して、既存のML インスタンスをML サービスとして公開するには、トレーニングスケジュールとスコアリングスケジュールの両方を提供する必要があります。 この設定のマシンラーニングサービスを作成すると、トレーニングとスコアリングの両方のスケジュール済み実験エンティティも作成されます。 トレーニングとスコアリングのスケジュールが同じである必要はありません。 スコアリングジョブの実行中に、スケジュールに沿ったトレーニング 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 * * * *"
        }
      }'
JSON キー
説明
mlInstanceId
既存の ML インスタンスの ID。ML サービスの作成に使用する ML インスタンスを表します。
trainingDataSetId
トレーニング Experiment に使用する特定のデータセットを表す ID。
trainingTimeframe
分数を表す整数値。トレーニング Experiment に使用するデータをフィルタリングします。 例えば、値 "10080" を指定すると、過去 10,080 分(168 時間)のデータがトレーニング Experiment Run に使用されます。 値 "0" を指定すると、データはフィルタリングされず、データセット内のすべてのデータがトレーニングに使用されます。
scoringDataSetId
スケジュールに沿ったスコアリング Experiment Run に使用する特定のデータセットを表す ID。
scoringTimeframe
分数を表す整数値。スコアリング Experiment Run に使用するデータをフィルタリングします。 例えば、値 "10080" を指定すると、過去 10,080 分(168 時間)のデータが、スケジュールに沿ったスコアリング Experiment Run に使用されます。 値 "0" を指定すると、データはフィルタリングされず、データセット内のすべてのデータがスコアリングに使用されます。
trainingSchedule
スケジュールに沿ったトレーニング Experiment Run に関する詳細が含まれます。
scoringSchedule
スケジュールに沿ったスコアリング Experiment Run に関する詳細が含まれます。
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 サービスの検索 retrieving-ml-services

既存のML サービスを検索するには、/mlServicesGET リクエストを行い、パスにML サービスの一意のidを指定します。

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: {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"
}
NOTE
異なるマシンラーニングサービスを取得すると、キーと値のペアの多かれ少なかれ応答が返される場合があります。 上記のレスポンスは、スケジュールに沿ったトレーニング Experiment Run とスコアリング Experiment Run の両方を含む ML サービスを表したものです。

トレーニングまたはスコアリングのスケジュール

既に公開されているML サービスでスコアリングとトレーニングをスケジュールする場合は、/mlServicesPUT リクエストを使用して既存のML サービスを更新することで実行できます。

API 形式

PUT /mlServices/{SERVICE_ID}
パラメーター
説明
{SERVICE_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 * * * *"
        }
      }'
WARNING
既存のスケジュール済みトレーニングおよびスコアリング ジョブで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"
}
recommendation-more-help
experience-platform-help-data-science-workspace