すべてのプロダクト
Search
ドキュメントセンター

Platform For AI:スケジュールされたモデル展開の設定

最終更新日:Dec 11, 2024

このトピックでは、スケジュールされた時間にモデルをモデルサービスとしてデプロイする方法について説明します。

背景情報

次のいずれかの方法を使用して、スケジュールされた時間にElastic Algorithm Service (EAS) モデルをデプロイできます。

前提条件

制限事項

方法 2

スケジュールされたモデルのデプロイに使用できるのは、DataWorksのスケジューリング専用リソースグループのみです。 共有リソースグループはサポートされていません。

方法1: Designerが提供する更新EASサービスコンポーネントの使用

手順1: デザイナーワークフローの作成

  • モデルがDesignerワークフローを使用してトレーニングされている場合は、モデルトレーニングコンポーネントの出力ポートをUpdate EAS Serviceコンポーネントに直接接続できます。 詳細については、「オンラインモデルサービスの定期更新」をご参照ください。 image.png

  • モデルがDesignerを使用してトレーニングされていないが、モデルがOSSバケットに保存されている場合は、モデルの空のワークフローを作成できます。 詳細については、「カスタムワークフローの作成」をご参照ください。 ワークフローを作成したら、次の図を参照して、[OSSデータの読み取り] および [EASサービスの更新] コンポーネントをドラッグ&ドロップし、コンポーネントを接続します。 次に、[OSSデータの読み取り] コンポーネントの [OSSデータパス] パラメーターをモデルのOSSパスに設定します。 image

  • 指定されたOSSパスから指定された時間にモデルが取得された場合、ワークフローにグローバル変数を追加できます。 e0593dcccb40d8cf3ec4d602893e682a.png次に、OSSデータの読み取りコンポーネントのグローバル変数を参照して、モデルパスを指定します。 例: oss:// examplebucket.oss-cn-shanghai-internal.aliyuncs.com/${date}/heart.pmml

    説明

    ページのOSSパスセレクターを使用して、有効なモデルパスを選択し、パス内の時間変数に関連する要素をグローバル変数に置き換えることができます。 これにより、エンドポイント設定などの入力設定が簡素化されます。

手順2: DataWorksでのワークフローのデプロイ

Machine Learning DesignerでDataWorksタスクを使用してパイプラインをスケジュールする」を参照し、ワンクリックデプロイメントを使用して前述のワークフローをDataWorksのスケジュール済みノードとしてデプロイします。

手順1で追加したDesignerグローバル変数を参照する場合は、例2: スケジューリングパラメーターの置き換えを参照し、ノードのスケジューリング設定のグローバル変数を必要なシステム変数に置き換えます。 image

手順3: 定期的に更新されるモデルサービスの履歴バージョンの表示

定期的に更新されるモデルサービスの履歴バージョンを表示するには、次の手順を実行します。

  1. PAI コンソールにログインします。 リージョンとワークスペースを選択します。 次に、[Elastic Algorithm Service (EAS) の入力] をクリックします。

  2. 左側のナビゲーションペインで、[ワークスペース] をクリックします。 [ワークスペース] ページで、表示するモデルサービスが属するワークスペースの名前をクリックします。

  3. 次の図の手順を実行して、定期的に更新されるモデルサービスのすべての履歴バージョンを表示します。 ad4cd8feb8bb34f963f1f7fdc1c18cd8

方法2: DataWorksでモデルを手動でデプロイする

手順1: スケジューリング用の排他的リソースグループの作成

  1. DataWorksコンソールにログインします。

  2. 左側のナビゲーションウィンドウで [リソースグループ] をクリックします。 [排他的リソースグループ] ページで、スケジューリング用の排他的リソースグループを作成します。 パラメーターの詳細については、「スケジューリング用排他的リソースグループの作成と使用」をご参照ください。

手順2: 排他的リソースグループをワークスペースに関連付ける

ワークスペースでリソースグループを選択する前に、スケジューリング用の排他的リソースグループをワークスペースに関連付ける必要があります。

  1. 左側のナビゲーションウィンドウで、[リソースグループ] をクリックします。 [リソースグループ] ページの [排他的リソースグループ] タブで、作成したリソースグループを見つけ、[操作] 列の [ワークスペースの変更] をクリックします。

  2. ホームワークスペースの変更ダイアログボックスで、リソースグループを関連付けるワークスペースを見つけて、[アクション] 列のバインドをクリックします。

ステップ3: ワークフローの作成

  1. DataWorks コンソールにログインします。 上部のナビゲーションバーで、目的のリージョンを選択します。 左側のナビゲーションウィンドウで、[データ開発とガバナンス] > [データ開発] を選択します。 表示されるページで、ドロップダウンリストから目的のワークスペースを選択し、[データ開発に移動] をクリックします。

  2. [DataStudio] ページで、Createアイコンの上にポインターを移動し、[ワークフローの作成] を選択します。

  3. [ワークフローの作成] ダイアログボックスで、[ワークフロー名][説明] を設定します。

  4. [作成] をクリックします。

  5. ワークフローの構成タブで、[作成] > [一般] > [シェル] を選択します。

  6. [ノードの作成] ダイアログボックスで、[名前] フィールドに [デプロイ] と入力します。

  7. [OK] をクリックします。

手順4: 初期モデルサービスとしてモデルをデプロイする

スケジュールされたモデル展開では、オンラインモデルサービスは初期モデルサービスから更新されます。 したがって、スケジュールされたモデルのデプロイを実行する前に、モデルを初期モデルサービスとしてデプロイする必要があります。 初期モデルサービスが既に存在する場合は、ステップ5に進みます。

  1. 配置スクリプトを変更します。

    1. ワークフローのタブで、作成したShellノードをダブルクリックします。 この例では、[デプロイ] ノードをダブルクリックします。

    2. [シェル] ノードのタブで、次のコマンドを入力します。

      # Compile the service deployment description file. 
      cat << EOF > echo.json
      {
        "name": "yourModelName",
        "generate_token": "true",
        "model_path": "yourModelAdress",
        "processor": "yourProcessorType",
        "metadata": {
          "instance": 1, # Change the number of instances as needed. 
          "cpu": 2 # Change the number of vCPUs as needed. 
          "memory": 4000
        }
      }
      EOF
      # Run the deployment command. 
      /home/admin/usertools/tools/eascmd64 -i <yourAccessKeyID> -k <yourAccessKeySecret>  -e pai-eas.cn-shanghai.aliyuncs.com create echo.json
      重要

      排他的リソースグループが2022年8月10日より前に作成された場合は、前のコマンドの16行目の /home/admin/usertools/tools/eascmd64***/home/admin/usertools/tools/eascmd*** に置き換えます。

      echo.jsonは、モデルのパスや必要なリソースなどのサービス情報を記述するJSONファイルです。 ビジネス要件に基づいて、次のパラメーターを設定できます。

      • name: モデルサービスの名前。 名前は、モデルサービスを一意に識別します。 サービス名はリージョン内で一意である必要があります。 モデルサービスが使用される実際の業務に基づいてモデルサービスに名前を付けることを推奨します。

      • model_path: トレーニング済みモデルが保存されているパス。 HTTP URLまたはOSSパスを指定できます。

        このパラメーターをHTTP URLに設定した場合、ファイルはTAR、GZ、BZ2、またはZIP形式である必要があります。 このパラメーターをOSSパスに設定すると、圧縮パッケージまたはディレクトリのパスを指定できます。 OSSパスを使用するには、前述のサービスデプロイメント記述ファイルにコード行 "oss_endpoint":"oss-cn-beijing.aliyuncs.com" を追加して、OSSのエンドポイントを指定する必要があります。 必要に応じてコード内のリージョンを変更できます。

        説明

        OSSを使用してモデルを保存する場合は、OSSにアクセスするための権限をPAIに付与する必要があります。 詳細については、「OSSへのアクセス権限をPAIに付与する」をご参照ください。

      • processor: プロセッサのタイプ。

      • metadata: サービスのメタデータ。必要に応じて変更できます。 フィールドの詳細については、「EASCMDクライアントを使用するコマンドの実行」をご参照ください。

      • yourAccessKeyID: AccessKey ID。 AccessKeyペアを取得する方法については、「AccessKeyペアを取得するにはどうすればよいですか?」をご参照ください。

      • yourAccessKeySecret: AccessKeyシークレット。 AccessKeyペアを取得する方法については、「AccessKeyペアを取得するにはどうすればよいですか?」をご参照ください。

      • Endpoint: 指定したリージョンのPAIのエンドポイント。 前述のデプロイメントコマンドの -eに続くEndpointパラメーターを設定する必要があります。 次の表に、リージョンとそのエンドポイントを示します。

        リージョン

        Endpoint

        中国 (上海)

        pai-eas.cn-shanghai.aliyuncs.com

        中国 (北京)

        pai-eas.cn-beijing.aliyuncs.com

        中国 (杭州)

        pai-eas.cn-hangzhou.aliyuncs.com

        中国 (深セン)

        pai-eas.cn-shenzhen.aliyuncs.com

        中国 (香港)

        pai-eas.cn-hongkong.aliyuncs.com

        シンガポール

        pai-eas.ap-southeast-1.aliyuncs.com

        インドネシア (ジャカルタ)

        pai-eas.ap-southeast-5.aliyuncs.com

        ドイツ (フランクフルト)

        pai-eas.eu-central-1.aliyuncs.com

  2. スクリプトを実行します。

    1. Shellノードのタブで、2アイコンをクリックします。

    2. 警告メッセージで、[続行] をクリックします。

    3. [ランタイムパラメーター] ダイアログボックスで、[リソースグループ] パラメーターを、作成したスケジューリング専用リソースグループに設定します。

    4. [OK] をクリックします。

      コードが実行されると、オンラインモデルサービスが生成されます。 PAIコンソールでモデルサービスを表示するには、次の手順を実行します。

  3. 必要に応じて、 デプロイされたモデルサービスを表示します。

    1. PAI コンソールにログインします。 リージョンとワークスペースを選択します。 次に、[Elastic Algorithm Service (EAS) の入力] をクリックします。

    2. [Elastic Algorithm Service (EAS)] ページで、デプロイされたモデルサービスを表示します。

      以降の手順では、スケジュールされたモデル展開を実装するために、モデルサービスにさらにサービスバージョンが追加されます。

手順5: スケジュールされた配置スクリプトの変更

  1. 次のサンプルコードに示すように、手順4のシェルノードのコードを変更します。 手順4を完了した場合は、最初の14行のコードを保持します。 ステップ4を実行していない場合は、必要に応じてコードの最初の14行のパラメーター値を変更する必要があります。

    # Compile the service deployment description file. 
    cat << EOF > echo.json
    {
      "name": "yourModelName",
      "generate_token": "true",
      "model_path": "yourModelAdress",
      "processor": "yourProcessorType",
      "metadata": {
        "instance": 1,
        "cpu": 2,
        "memory": 4000
      }
    }
    EOF # Code in Line 14. 
    # Update and deploy the model. For each scheduled deployment, a new version of the model service is added as the latest online service version. 
    /home/admin/usertools/tools/eascmd64 -i <yourAccessKeyID> -k <yourAccessKeySecret> -e pai-eas.cn-shanghai.aliyuncs.com modify <yourModelName> -s echo.json
    # Define the logic for testing the service. 
    # If the service encounters an error during the test, run the following command to roll back the model service: 
    #/home/admin/usertools/tools/eascmd64 -i <yourAccessKeyID> -k <yourAccessKeySecret> -e pai-eas.cn-shanghai.aliyuncs.com version -f <The name of the model to be rolled back> 1
    重要

    スケジュール専用リソースグループが2022年8月10日より前に作成された場合は、16行目と19行目で /home/admin/usertools/tools/eascmd64***/home/admin/usertools/tools/eascmd*** に置き換えます。

    パラメーターの詳細については、「手順4: 初期モデルサービスとしてモデルをデプロイする」をご参照ください。

ステップ6: スケジュールされたデプロイの実行

  1. スケジューリングプロパティを設定し、Shellノードをコミットします。

    1. [シェル] ノードタブで、右側のウィンドウの [プロパティ] タブをクリックします。

    2. [プロパティ] パネルで、[スケジュール] セクションの [再発] パラメーターを設定します。

    3. [依存関係] セクションで、[親ノード] フィールドの横にある [ルートノードの追加] をクリックします。

    4. スケジューリング依存関係を設定します。 詳細については、「同じサイクルのスケジューリング依存関係の設定」をご参照ください。

    5. Shellノードのタブの保存アイコンをクリックして、設定を保存します。

    6. Shellノードのタブの提交アイコンをクリックして、Shellノードをコミットします。

  2. Shellノードのインスタンスを表示します。

    1. [シェルノード] タブで、右上隅の [オペレーションセンター] をクリックします。

    2. [オペレーションセンター] ページで、[サイクルタスクメンテナンス] > [サイクルインスタンス] を選択します。

    3. インスタンスリストページで、[スケジュール] 列の自動モデルデプロイの予定時刻を表示します。

    4. [操作] 列の [詳細] をクリックし、[ランタイムログの表示] を選択して、スケジュールされた各デプロイメントの操作ログを表示します。

  3. 特定のスケジュールされた時間にデプロイされたモデルサービスを表示します。

    1. PAI コンソールにログインします。 リージョンとワークスペースを選択します。 次に、[Elastic Algorithm Service (EAS) の入力] をクリックします。

    2. 次の図の手順を実行して、定期的に更新されるモデルサービスのすべての履歴バージョンを表示します。 ad4cd8feb8bb34f963f1f7fdc1c18cd8