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

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

最終更新日:Nov 07, 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コンソール にログインします。

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

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

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

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

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

  2. 左側のナビゲーションウィンドウで、[リソースグループ] をクリックします。 [リソースグループ] ページの [排他的リソースグループ] タブで、[スケジューリング用リソースグループの作成] をクリックして、[DataWorks排他的リソース] ページに移動します。 このページで、次のパラメーターを設定します。

    パラメーター

    説明

    リージョン

    スケジューリングに排他的リソースグループを使用するリージョン。

    説明

    スケジューリング用の排他的リソースグループは、リージョン間で共有できません。 たとえば、中国 (上海) リージョンのスケジューリング用の排他的リソースグループは、中国 (上海) リージョンのワークスペースでのみ使用できます。

    データ型

    排他的リソースグループのタイプです。 このパラメーターには、[スケジューリング専用リソース] を選択します。

    スケジューリング専用リソース

    スケジューリング用排他リソースグループの仕様。 排他リソースグループをスケジューリングに使用する料金, および排他リソースグループで実行できる最大並列タスク数は, リソースグループの仕様によって異なります。 スケジューリングのための排他的リソースグループの課金については、「スケジューリングのための排他的リソースグループの課金 (サブスクリプション) 」をご参照ください。

    単位

    スケジューリング用の排他的リソースグループ内のマシンの数。 運用環境でのスケジューリング専用リソースグループの高可用性を確保するために、このパラメーターを2または2より大きい値に設定することを推奨します。

    有効期間

    スケジューリング用の排他的リソースグループは、サブスクリプションの課金方法に基づいて課金されます。 サービスの継続性を確保するために、[自動更新] を選択することを推奨します。 リソースグループの作成後、[更新管理] ページに移動して自動更新を有効または無効にすることもできます。 詳細については、「一般リファレンス: DataWorksの機能またはリソースの使用を停止する」をご参照ください。

    リソースグループ名

    スケジューリング用の排他的リソースグループの名前。 名前はテナント内で一意である必要があります。 それ以外の場合、購入操作を確認するとエラーが報告されます。

    説明

    テナントはAlibaba Cloudアカウントを指します。 各テナントは複数のRAMユーザーを持つことができます。

  3. クリック今すぐ購入指示に基づいて支払いを完了します。

    次に、DataWorksはスケジューリング用の排他的リソースグループの初期化を開始します。 リソースグループが [実行中] 状態になると、DataWorksコンソールでリソースグループが作成されます。

    説明

    DataWorksは、スケジューリングのために排他的リソースグループを初期化するのに約20分かかります。 リソースグループのステータスが [実行中] に変わるまで待ちます。

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

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

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

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

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

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

  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コンソール にログインします。

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

    3. 次の図の手順を実行して、デプロイされたモデルサービスを表示します。 image

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

手順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コンソール にログインします。

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

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