自動スケーリングを構成するためのカスタム・スケーリング・メトリック・タイプ

カスタム・メトリック・タイプ・オプションを使用して、自動スケーリングを構成します。

カスタム・スケーリング・メトリック・オプションを使用して、モデル・デプロイメント・リソースによって生成された任意のモデル・デプロイメント・メトリックを使用してMQL問合せを作成し、これを使用して自動スケーリングを構成できます。このアプローチでは、ANDを使用した複数の問合せの結合や、異なる集計関数を使用したOR、選択した評価ウィンドウを組み込むなど、より高度な問合せを作成できます。このオプションを使用すると、スケーリング条件をより詳細に制御できるため、よりカスタマイズされた正確な設定が可能になります。

MQL問合せを作成する場合は、提供されている例に示すように、問合せに{resourceId = "MODEL_DEPLOYMENT_OCID"}を含めます。リクエストの処理中に、プレースホルダのMODEL_DEPLOYMENT_OCIDキーワードが実際のリソースOCIDに置き換えられます。これにより、サービスはリソースに関連付けられたメトリックの正確なセットを取得できます。

カスタム・メトリックMQL問合せのテスト

問合せをテストして完了するには、次のステップに従います。

  1. 「モデル・デプロイメント・メトリックの表示」のステップに従って、メトリックを表示します。
  2. 使用するメトリックのメトリック・チャートを選択します。
  3. 「オプション」を選択します。
  4. 「MQLエクスプローラでの問合せの表示」にナビゲートします。
  5. 「問合せの編集」を選択します。
  6. 「拡張モード」に選択します。
  7. 問合せコード・エディタで、スケールアウトおよびスケールイン操作の問合せを更新およびテストします。
    これらのテスト済問合せを使用して、自動スケーリング機能を使用してモデル・デプロイメントを作成します。

問合せの例

次に、自動スケーリングを有効にするために使用できるメトリックの問合せの例を示します。
ノート

これらの問合せは参照用に提供されており、特定のユース・ケースに基づいてカスタマイズできます。ただし、これらの問合せは変更なしでも使用できます。
モデル・デプロイメント・メトリックのサンプル問合せ
メトリック 問合せ 説明
PredictRequestCount
スケール・アウト
PredictRequestCount[1m]{resourceId
 = "MODEL_DEPLOYMENT_OCID"}.grouping().sum() > 100
スケール・イン
PredictRequestCount[1m]{resourceId
 = "MODEL_DEPLOYMENT_OCID"}.grouping().sum() < 5
予測コールが実行されない場合、メトリックは発行されません。このような場合、absent()関数をアラーム問合せに組み込む必要があります。次に、予測コールが最小限またはまったく行われないシナリオの問合せの例を示します。
PredictRequestCount[1m]{resourceId
 = "MODEL_DEPLOYMENT_OCID"}.grouping().absent() == 1 
|| 
PredictRequestCount[1m]{resourceId
 = "MODEL_DEPLOYMENT_OCID"}.grouping().sum() < 2

リクエスト・ボリュームの予測に応じてスケーリングするには、提供されているメトリックおよび問合せを使用します。

特定のモデル・デプロイメントに対する予測リクエストの合計数が1分間の時間枠内で100を超えており、この条件が指定された保留期間にわたって維持されると、スケールアウト操作がトリガーされます。

同様に、累積カウントが5未満の場合、またはまったくリクエストがなく、この状況が保留中の期間継続する場合、条件はスケールイン操作を開始します。

PredictLatency
スケール・アウト
PredictLatency[1m]{resourceId
 = "MODEL_DEPLOYMENT_OCID"}.groupBy(result).percentile(.99) > 120
スケール・イン
PredictLatency[1m]{resourceId
 = "MODEL_DEPLOYMENT_OCID"}.groupBy(result).percentile(.99) < 20

このメトリックと問合せを適用して、予測リクエストのレイテンシに基づくスケーリングを支援します。

問合せでは、特定のモデル・デプロイメントのPredictLatencyの99パーセンタイルが1分間にわたって評価されます。この99パーセンタイルのレイテンシ値が120ミリ秒を超え、保留中の期間持続する場合、条件が満たされ、スケールアウト操作がトリガーされます。

逆に、保留中の期間に99パーセンタイルが20ミリ秒未満の場合、スケールイン操作が開始されます。

PredictResponse - 成功率
スケール・アウト
(PredictResponse[1m]{resourceId = "MODEL_DEPLOYMENT_OCID",
 result = "Success"}.grouping().mean() * 100) 
/ PredictResponse[1m]{resourceId
 = "MODEL_DEPLOYMENT_OCID"}.grouping().mean() < 95
スケール・イン
(PredictResponse[1m]{resourceId = "MODEL_DEPLOYMENT_OCID",
 result = "Success"}.grouping().mean() * 100) 
/ PredictResponse[1m]{resourceId
 = "MODEL_DEPLOYMENT_OCID"}.grouping().mean() > 95

このメトリックおよび問合せを使用して、予測レスポンス成功率に基づくスケーリングを実装します。

MQL問合せは、特定のモデル・デプロイメントの1分間隔ですべてのPredictResponsesと比較して、成功したPredictResponsesの割合を評価します。

このパーセンテージが95未満で、保留中の継続時間が続く場合、条件によってスケールアウト操作がトリガーされます。逆に、保留期間のパーセンテージが95を超える場合、条件によってスケールイン操作が開始されます。

カスタム・メトリックを使用した自動スケーリングを使用したモデル・デプロイメントの作成

カスタム・メトリックを使用して自動スケーリング・ポリシーを使用してモデル・デプロイメントを作成する方法について学習します。

    1. 「モデル・デプロイメント」ページで、「モデル・デプロイメントの作成」を選択します。モデル・デプロイメントのリストの検索に関するヘルプが必要な場合は、モデル・デプロイメントのリストを参照してください。
    2. 「モデル・デプロイメントの作成」のステップに従って、モデル・デプロイメントを構成します。
    3. 「自動スケーリング構成」で、「自動スケーリングの有効化」を選択します。
      自動スケーリングを構成できるように、いくつかのリストおよびフィールドが表示されます。
    4. 「メトリック・タイプのスケーリング」リストから「カスタム」を選択します。
    5. スケールイン・カスタム・メトリック問合せおよびスケールアウト・カスタム・メトリック問合せにMQL問合せを移入します。
      重要

      含める
      {resourceId = "MODEL_DEPLOYMENT_OCID"}
      各クエリで問合せの実行時に、実際のリソースOCIDが"MODEL_DEPLOYMENT_OCID"のかわりに使用されます。
    6. 「作成」を選択します。
  • モデル・デプロイメントを作成するには、oci data-science model-deployment createコマンドと必要なパラメータを使用します:

    oci data-science model-deployment create --required-param-name variable-name ... [OPTIONS]
    たとえば、モデルをデプロイします。
    oci data-science model-deployment create \
    --compartment-id <MODEL_DEPLOYMENT_COMPARTMENT_OCID> \
    --model-deployment-configuration-details file://<MODEL_DEPLOYMENT_CONFIGURATION_FILE> \
    --project-id <PROJECT_OCID> \
    --display-name <MODEL_DEPLOYMENT_NAME>
    次のモデル・デプロイメントのJSON構成ファイルを使用します:
    {
      "deploymentType": "SINGLE_MODEL",
      "modelConfigurationDetails": {
        "modelId": "ocid1.datasciencemodel.oc1.iad.amaaaaaav66vvnias2wuzfkwmkkmxficse3pty453vs3xtwlmwvsyrndlx2q",
        "instanceConfiguration": {
          "instanceShapeName": "VM.Standard.E4.Flex",
          "modelDeploymentInstanceShapeConfigDetails": {
            "ocpus": 1,
            "memoryInGBs": 16
          }
        },
        "scalingPolicy": {
          "policyType": "AUTOSCALING",
          "coolDownInSeconds": 650,
          "isEnabled": true,
          "autoScalingPolicies": [
            {
              "autoScalingPolicyType": "THRESHOLD",
              "initialInstanceCount": 1,
              "maximumInstanceCount": 2,
              "minimumInstanceCount": 1,
              "rules": [
                {
                  "metricExpressionRuleType": "CUSTOM_EXPRESSION",
                  "scaleInConfiguration": {
                    "scalingConfigurationType": "QUERY",
                    "pendingDuration": "PT5M",
                    "instanceCountAdjustment": 1,
                    "query": "MemoryUtilization[1m]{resourceId = 'MODEL_DEPLOYMENT_OCID'}.grouping().mean() < 10"
                  },
                  "scaleOutConfiguration": {
                    "scalingConfigurationType": "QUERY",
                    "pendingDuration": "PT3M",
                    "instanceCountAdjustment": 1,
                    "query": "MemoryUtilization[1m]{resourceId = 'MODEL_DEPLOYMENT_OCID'}.grouping().mean() > 65"
                  }
                }
              ]
            }
          ]
        },
        "bandwidthMbps": 10,
        "maximumBandwidthMbps": 20
      }
    }

    CLIコマンドのパラメータおよび値のリストは、CLIコマンド・リファレンスを参照してください。

  • CreateModelDeployment操作を使用して、カスタム・スケーリング・メトリック・タイプを使用してモデル・デプロイメントを作成します。