カスタム・ネットワーキングの使用

カスタム・ネットワーキング・オプションを使用してモデル・デプロイメントを作成します。

ワークロードは、セカンダリVNICを使用して顧客管理VCNおよびサブネットにアタッチされます。サブネットは、NAT/インターネット・ゲートウェイを介してパブリック・インターネットへのエグレス用に構成できます。

カスタム・エグレスを使用するには、データ・サイエンスにサブネットへのアクセス権を付与するポリシーを追加する必要があります:
allow service datascience to use virtual-network-family in compartment <subnet_compartment>

カスタム・エグレスでは、サブネットに使用可能なIPアドレスが少なくとも127個必要です。

カスタム・ネットワーキング・モデル・デプロイメントは、コンソール、OCI Python SDK、OCI CLIまたはデータ・サイエンスAPIを使用して作成および実行できます。

    1. コンソールを使用して、必要なポリシーを使用してテナンシにサインインします。
    2. ナビゲーション・メニューを開き、「分析とAI」を選択します。「機械学習」で、「データ・サイエンス」を選択します。
    3. モデル・デプロイメントを作成するプロジェクトを含むコンパートメントを選択します。

      コンパートメント内のすべてのプロジェクトがリストされます。

    4. プロジェクトの名前を選択します。

      プロジェクトの詳細ページが開き、ノートブック・セッションがリストされます。

    5. 「リソース」で、「モデル・デプロイメント」を選択します。

      プロジェクト内のモデル・デプロイメントの表形式リストが表示されます。

    6. 「モデル・デプロイメントの作成」を選択します。
    7. (オプション)モデルの一意の名前(255文字の制限)を入力します。名前を指定しない場合、名前は自動生成されます。

      たとえば、modeldeployment20200108222435です。

    8. (オプション)モデル・デプロイメントの説明(400文字の制限)を入力します。
    9. (オプション)「デフォルト構成」で、カスタム環境変数キーおよび対応する値を入力します。「+追加のカスタム環境変数」を選択して、環境変数を追加します。
    10. 「モデル」セクションで、「選択」を選択して、デプロイするアクティブなモデルをモデル・カタログから選択します。
      1. デフォルトのコンパートメントおよびプロジェクトを使用するか、「OCIDの使用」を選択してOCIDを入力し、モデルを検索してモデルを見つけます。
      2. モデルを選択します。
      3. 「送信」を選択します。
      重要

      400 GBを超えるモデル・アーティファクトは、デプロイメントではサポートされていません。デプロイメント用の小さいモデル・アーティファクトを選択します。
    11. (オプション)「シェイプの変更」を選択して、コンピュート・シェイプを変更します。次に、「コンピュートの選択」パネルの次のステップに従います。
      1. インスタンス・タイプの選択
      2. シェイプ・シリーズを選択します。
      3. シリーズでサポートされているコンピュート・シェイプのいずれかを選択します。
      4. リソースの使用方法に最適なシェイプを選択します。AMDシェイプの場合は、デフォルトを使用するか、OCPUおよびメモリーの数を設定できます。

        OCPUごとに、最大64 GBのメモリーと最大合計512 GBを選択します。許容されるメモリーの最小容量は、1GBまたはOCPUの数に一致する値のいずれか大きい方です。

      5. 「シェイプの選択」を選択します。
    12. モデルをレプリケートするモデル・デプロイメントのインスタンス数を入力します。
    13. ネットワーク・タイプを構成するには、「カスタム・ネットワーキング」を選択します。

      リソース(ノートブック・セッションまたはジョブ)に使用するVCNおよびサブネットを選択します。

      使用するVCNまたはサブネットが表示されない場合は、「コンパートメントの変更」を選択し、VCNまたはサブネットを含むコンパートメントを選択します。
      ノート

      デフォルト・ネットワーキングからカスタム・ネットワーキングへの変更は許可されています。カスタムネットワークが選択されている場合は、デフォルトのネットワークに変更できません。
    14. 次のいずれかのオプションを選択して、エンドポイント・タイプを構成します:
      • Public endpoint: VCNの外部からの管理対象インスタンスのデータ・アクセス。
      • Private endpoint: モデル・デプロイメントに使用するプライベート・エンドポイント。
      Private endpointを選択した場合は、データ・サイエンスのプライベート・エンドポイントからPrivate Endpointを選択します。

      「コンパートメントの変更」を選択して、プライベート・エンドポイントを含むコンパートメントを選択します。

    15. (オプション)アクセスまたは予測ロギングを構成した場合、「ロギング」セクションで「選択」を選択し、次のステップに従います:
      1. アクセス・ログの場合は、コンパートメント、ログ・グループおよびログ名を選択します。
      2. 予測ログの場合は、コンパートメント、ログ・グループおよびログ名を選択します。
      3. 「送信」を選択します。
    16. (オプション)「拡張オプションの表示」を選択してタグを追加します。
      1. (オプション)モデル・デプロイメントのサービング・モードをHTTPSエンドポイントとして、またはストリーミング・サービス・ストリームを使用して選択します。
      2. (オプション)ロード・バランシングの帯域幅をMbpsを選択するか、10 Mbpsのデフォルトを使用します。

        ロード・バランシングのヒント:

        一般的なペイロード・サイズおよび1秒当たりのリクエストの頻度がわかっている場合は、次の式を使用して必要なロード・バランサの帯域幅を見積ることができます。推定誤差および散発的なピーク・トラフィックを考慮して、20%以上を追加することをお薦めします。

        (ペイロード・サイズ(KB)) * (見積リクエスト/秒) * 8 / 1024

        たとえば、ペイロードが1,024KBで、毎秒120リクエストを見積もる場合、推奨されるロード・バランサ帯域幅は(1024 * 120 * 8 / 1024) * 1.2 = 1152 Mbpsになります。

        イメージ・ペイロードを処理する場合、サポートされる最大ペイロード・サイズは10MBであることに注意してください。

        リクエスト・ペイロード・サイズが、定義されたロード・バランサの割当て帯域幅を超える場合、リクエストは429ステータス・コードで拒否されます。

      3. (オプション)「カスタム・コンテナ・イメージの使用」を選択し、次を入力します:
        • <tenancy>のリポジトリ: カスタム・イメージを含むリポジトリ。

        • イメージ: 実行時にモデル・デプロイメントで使用するカスタム・イメージ。

        • CMD: コンテナの起動時に実行するその他のコマンド。テキスト・ボックスごとに1つの指示を追加します。たとえば、CMDが["--host", "0.0.0.0"]の場合、あるテキスト・ボックスで--hostを渡し、別のテキスト・ボックスで0.0.0.0を渡します。末尾に引用符を使用しないでください。

        • エントリポイント: コンテナの起動時に実行する1つ以上のエントリ・ポイント・ファイル。たとえば、/opt/script/entrypoint.shです。末尾に引用符を使用しないでください。

        • サーバー・ポート: 推論を提供するWebサーバーが稼働しているポート。デフォルトは8080です。ポートには1024から65535までの任意の値を指定できます。24224、8446、8447ポートを使用しないでください。

        • ヘルス・チェック・ポート: コンテナHEALTHCHECKがリスニングするポート。デフォルトはサーバー・ポートです。ポートには1024から65535までの任意の値を指定できます。24224、8446、8447ポートを使用しないでください。

      4. (オプション)「タグ」タブを選択し、タグ・ネームスペース(定義済のタグの場合)、キーおよび値を入力して、タグをリソースに割り当てます。

        複数のタグを追加するには、「タグの追加」を選択します。

        タグ付けに関する項では、コスト・トラッキング・タグなど、リソースの整理および検索に使用できる様々なタグについて説明します。

    17. 「作成」を選択します。
  • OCI CLIを使用して、次の例のようにモデル・デプロイメントを作成できます。

    1. 次を使用してモデルをデプロイします:
      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> \
      --category-log-details file://<OPTIONAL_LOGGING_CONFIGURATION_FILE> \
      --display-name <MODEL_DEPLOYMENT_NAME>
    2. 次のモデル・デプロイメントのJSON構成ファイルを使用します:
      {
            "deploymentType": "SINGLE_MODEL",
            "modelConfigurationDetails": {
              "bandwidthMbps": <YOUR_BANDWIDTH_SELECTION>,
              "instanceConfiguration": {
                "subnetId": <YOUR_SUBNET_ID>,
                "instanceShapeName": "<YOUR_VM_SHAPE>"
              },
              "modelId": "<YOUR_MODEL_OCID>",
              "scalingPolicy": {
                  "instanceCount": <YOUR_INSTANCE_COUNT>,
                  "policyType": "FIXED_SIZE"
               }
           }
       }

      環境構成を指定する場合は、次の例のようにenvironmentConfigurationDetailsオブジェクトを含める必要があります。

      
      {
        "modelDeploymentConfigurationDetails": {
          "deploymentType": "SINGLE_MODEL",
          "modelConfigurationDetails": {
            "modelId": "ocid1.datasciencemodel.oc1.iad........",
            "instanceConfiguration": {
              "subnetId": <YOUR_SUBNET_ID>,
              "instanceShapeName": "VM.Standard.E4.Flex",
              "modelDeploymentInstanceShapeConfigDetails": {
                "ocpus": 1,
                "memoryInGBs": 16
              }
            },
            "scalingPolicy": {
              "policyType": "FIXED_SIZE",
              "instanceCount": 1
            },
            "bandwidthMbps": 10
          },
          "environmentConfigurationDetails" : {
            "environmentConfigurationType": "OCIR_CONTAINER",
            "image": "iad.ocir.io/testtenancy/image_name:1.0.0",
            "entrypoint": [
              "python",
              "/opt/entrypoint.py"
            ],
            "serverPort": "5000",
            "healthCheckPort": "5000"
          },
          "streamConfigurationDetails": {
            "inputStreamIds": null,
            "outputStreamIds": null
          }
        }
      }
    3. (オプション)次のロギングJSON構成ファイルを使用します:
      {
          "access": {
            "logGroupId": "<YOUR_LOG_GROUP_OCID>",
            "logId": "<YOUR_LOG_OCID>"
          },
          "predict": {
            "logGroupId": "<YOUR_LOG_GROUP_OCID>",
            "logId": "<YOUR_LOG_OCID>"
          }
      }
    4. (オプション)カスタム・コンテナを使用するには、これを使用します:
      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> \
      --category-log-details file://<OPTIONAL_LOGGING_CONFIGURATION_FILE> \
      --display-name <MODEL_DEPLOYMENT_NAME>
  • CreateModelDeployment操作を使用して、カスタム・ネットワークを使用してモデル・デプロイメントを作成します。インスタンス構成APIのドキュメントの説明に従って、サブネットIDを設定します。