デフォルトのネットワーキング

デフォルトのネットワーク構成を使用して、データ・サイエンスでモデル・デプロイメントを作成します。2つのモードから選択できます。1つはインターネット・アクセスが有効なモード、もう1つはインターネット・アクセスが無効なモードです。

ワークロードは、セカンダリVNICを使用して、事前構成済のサービス管理仮想クラウド・ネットワーク(VCN)およびサブネットに接続します。指定されたサブネットは、サービス・ゲートウェイを介して他のOracle Cloudサービスにアクセスできますが、パブリック・インターネットにはアクセスできません。「インターネットを使用したデフォルト・ネットワーキング」を有効にすると、サブネットには、OCI管理のNATゲートウェイを介したパブリック・インターネットへのオプションのパスも提供されます。

OCIサービスのみにアクセスする必要がある場合は、このオプションを使用することをお薦めします。ネットワーキング・リソースの作成や、ネットワーキング権限のポリシーの書込みは不要です。

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

    1. 「プロジェクト」リスト・ページで、操作するモデル・デプロイメントを含むプロジェクトを選択します。リスト・ページまたはプロジェクトの検索に関するヘルプが必要な場合は、プロジェクトのリストを参照してください。
    2. プロジェクトの詳細ページで、「モデル・デプロイメント」を選択します。
    3. 「モデル・デプロイメントの作成」を選択します。
    4. モデル・デプロイメントの作成ページで、次の情報を入力します。
      • コンパートメント
      • 名前(オプション): モデル・デプロイメントの一意の名前(255文字の制限)を入力します。名前を指定しない場合、名前は自動的に生成されます。例: modeldeployment20200108222435
      • 説明(オプション): モデル・デプロイメントの説明(400文字の制限)を入力します。
      • カスタム環境変数キー(オプション): カスタム環境変数キーを入力します。
      • (オプション): キーの値を入力します。
      • モデル: 「選択」を選択して「モデルの選択」パネルを開き、関連するオプションを選択してから、「送信」を選択してパネルを閉じます。
        重要

        400 GBを超えるモデル・アーティファクトは、デプロイメントではサポートされていません。デプロイメントするより小さいモデル・アーティファクトを選択します。
        • 単一モデル: 「モデル・コンパートメントの選択」(コンパートメントとプロジェクトを指定)または「OCIDの使用」のいずれかを使用してモデルを検索し、リストからモデルを選択します。
        • モデル・グループ: コンパートメントおよびプロジェクトを指定し、リストからモデル・グループを選択します。
      • コンピュート・シェイプを変更するには、「シェイプの変更」を選択します。次に、「コンピュート・シェイプの選択」パネルの次のステップに従います。
        • インスタンス・タイプの選択
        • シェイプ・シリーズを選択します。
        • サポートされているシリーズ内のコンピュート・シェイプのいずれかを選択します。リソースの使用方法に最適なシェイプを選択します。
        • 選択したシェイプを展開して、OCPUおよびメモリーを構成します。
          • OCPUの数
          • メモリー量(GB): OCPUごとに、最大64 GBのメモリーと最大合計512 GBを選択します。許容されるメモリーの最小容量は、1GBまたはOCPUの数に一致する値のいずれか大きい方です。
          • バースト可能なシェイプの有効化: バースト可能な仮想マシンを使用する場合に選択し、「OCPU当たりのベースライン使用率」で、通常使用するOCPUの割合を選択します。サポートされている値は、12.5%および50%です。(モデル・デプロイメントでは、50%の値のみがサポートされます。)
        • 「シェイプの選択」を選択します。
      • インスタンス数: モデルをレプリケートするモデル・デプロイメントのインスタンス数を入力します。
      • 自動スケーリング構成(オプション): 「自動スケーリングの有効化」を選択し、次の情報を入力します。
        • インスタンスの最小数
        • インスタンスの最大数
        • クールダウン期間(秒)
        • スケーリング・メトリック・タイプ

          カスタム・スケーリング・メトリック・オプションを使用するには、「カスタム」を選択し、スケールインおよびスケールアウト問合せを指定します。

          重要

          リソースOCIDを参照するには、各MQL問合せに次のテキストを含めます: {resourceId = "MODEL_DEPLOYMENT_OCID"}
        • スケールインしきい値(パーセンテージ)
        • スケールアウトしきい値(パーセント)
        • 拡張オプション(オプション): ロード・バランサを自動スケーリングします。最大帯域幅の値を最小帯域幅値より大きく、最小帯域幅値の2倍以下に設定します。
          • インスタンス数のスケールイン・ステップ
          • インスタンス数のスケールアウト・ステップ
      • ネットワーキング・リソース: デフォルト・ネットワーキングに関連するオプションを選択します。
        • デフォルト・ネットワーキング: トラフィックをOracleサービスのみに制限します。システムは、既存のサービス管理ネットワークを使用します。ワークロードは、セカンダリVNICを使用して、事前構成済のサービス管理型のVCNおよびサブネットにアタッチされます。提供されているこのサブネットにより、NATゲートウェイを介したパブリック・インターネットへのエグレスおよびサービス・ゲートウェイを介した他のOracle Cloudサービスへのアクセスが可能になります。

          パブリック・インターネットおよびOCIサービスのみにアクセスする必要がある場合は、このオプションを使用することをお薦めします。ネットワーキング・リソースを作成したり、ネットワーキング権限のポリシーを記述する必要はありません。

        • インターネットを使用したデフォルト・ネットワーキング: データ・サイエンスNATゲートウェイを介したアウトバウンド・インターネット・アクセスを許可します。
          ノート

          切断されたレルムおよびOracle開発テナンシでは、インターネットを使用するデフォルト・ネットワーキングを使用できません。テナンシまたはコンパートメントに、パブリック・ネットワーク・アクセスを拒否するデータ・サイエンス・セキュリティ・ゾーン・ポリシー(たとえば、deny model_deploy_public_network - データ・サイエンス・セキュリティ・ゾーン・ポリシーを参照)がある場合、サービス管理のパブリック・インターネット・アクセス・オプションは無効になります。このオプションを使用しようとすると、404 NotAuthorizedOrNotFoundエラーが表示されます。
      • エンドポイント・タイプ: 関連するオプションを選択します。
        • パブリック・エンドポイント: 仮想クラウド・ネットワーク(VCN)の外部から管理対象インスタンスへのデータ・アクセスを有効にします。
        • プライベート・エンドポイント: モデル・デプロイメントに使用するプライベート・エンドポイントを指定します。プライベート・ネットワーキングまたはプライベート・エンドポイントを使用するデプロイメントでは、サービス管理のパブリック・インターネット・アクセスを有効にできません。
          • プライベート・エンドポイント・コンパートメント
          • プライベート・エンドポイント
      • ロギング(オプション): 「選択」を選択して「ロギングの選択」パネルを開き、次の情報を入力してから、「送信」を選択してパネルを閉じます。
        ノート

        ロギングには、構成済アクセスまたは予測ロギングが必要です。
        • アクセス・ログの場合は、コンパートメント、ログ・グループおよびログ名を選択します。
        • 予測ログの場合は、コンパートメント、ログ・グループおよびログ名を選択します。
      • BYOC環境の設定(「カスタム・コンテナ・イメージの使用」の下) (オプション): 「選択」を選択して「BYOC環境の設定」パネルを開き、次の情報を入力し、「選択」を再度選択してパネルを閉じます。
        • リポジトリ・コンパートメント
        • リポジトリ: カスタム・イメージを含むリポジトリを入力します。
        • イメージ: 実行時に使用するカスタム・イメージを入力します。
        • ダイジェスト: イメージ・ダイジェストを入力します。例: sha256:<digest>。ダイジェストは、デプロイするイメージと完全に一致する必要があります。
        • エントリポイント: コンテナの起動時に実行する1つ以上のエントリ・ポイント・ファイル(/opt/script/entrypoint.shなど)を入力します。最後に引用符を使用しないでください。
        • サーバー・ポート: 推論Webサーバーのポートを入力します。デフォルトは8080です。有効範囲: 1024–65535 (24224、8446、8447を除く)。
        • ヘルス・チェック・ポート: コンテナ・ヘルス・チェックのポートを入力します。デフォルトはサーバー・ポートです。有効範囲: 1024–65535 (24224、8446、8447を除く)。
      • デプロイメント・モード(「拡張オプション」の下): Mbps単位でロード・バランシングの帯域幅を選択するか、10 Mbpsのデフォルトを使用します。

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

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

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

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

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

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

      • タグ(「拡張オプション」の下) (オプション): モデル・デプロイメントにタグを追加します。リソースを作成するアクセス許可がある場合、そのリソースにフリーフォーム・タグを適用するアクセス許可もあります。定義済タグを適用するには、タグネームスペースを使用する権限を持つ必要があります。タグ付けの詳細は、リソース・タグを参照してください。 タグを適用するかどうかわからない場合は、このオプションをスキップするか、管理者に問い合せてください。後でタグを適用できます。
    5. 「作成」を選択します。
  • 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": {
                "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": {
              "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",
            "imageDigest": "sha256:a9c8468cb671929aec7ad947b9dccd6fe8e6d77f7bcecfe2e10e1c935a88c2a5",
            "imageSignatureId": "ocid1.containerimagesignature.oc1.iad.0.ociodscprod.aaaaaaaavkjvrldo4etdpdas3o5vuom3t6anoixneey737cr57if7jhkh6nq",
            "entrypoint": [
              "python",
              "/opt/entrypoint.py"
            ],
            "serverPort": "5000",
            "healthCheckPort": "5000"
          },
          "streamConfigurationDetails": {
            "inputStreamIds": null,
            "outputStreamIds": null
          }
        }
      }
      ノート

      imageSignatureIdフィールドはオプションです。
    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操作を使用して、モデル・デプロイメントを作成します。

OCI Python SDKの使用

認証を含むOCI Python SDKモデルのデプロイメント例を開発しました。

重要

400 GBを超えるアーティファクトは、デプロイメントではサポートされていません。デプロイメント用の小さいモデル・アーティファクトを選択します。
ノート

Python SDKでデプロイメントを作成する前に、OCI SDKをバージョン2.33.0以上にアップグレードする必要があります。次のコマンドを使用します:

pip install --upgrade oci

次の例を使用して、カスタム・コンテナを使用するモデル・デプロイメントを作成します。

# create a model configuration details object
model_config_details = ModelConfigurationDetails(
    model_id=<model-id>,
    bandwidth_mbps=<bandwidth-mbps>,
    instance_configuration=<instance-configuration>,
    scaling_policy=<scaling-policy>
)
 
# create the container environment configiguration
environment_config_details = OcirModelDeploymentEnvironmentConfigurationDetails(
    environment_configuration_type="OCIR_CONTAINER",
    environment_variables={'key1': 'value1', 'key2': 'value2'},
    image="iad.ocir.io/testtenancy/ml_flask_app_demo:1.0.0",
    image_digest="sha256:243590ea099af4019b6afc104b8a70b9552f0b001b37d0442f8b5a399244681c",
    entrypoint=[
        "python",
        "/opt/ds/model/deployed_model/api.py"
    ],
    server_port=5000,
    health_check_port=5000
)
 
# create a model type deployment
single_model_deployment_config_details = data_science.models.SingleModelDeploymentConfigurationDetails(
    deployment_type="SINGLE_MODEL",
    model_configuration_details=model_config_details,
    environment_configuration_details=environment_config_details
)
 
# set up parameters required to create a new model deployment.
create_model_deployment_details = CreateModelDeploymentDetails(
    display_name=<deployment_name>,
    model_deployment_configuration_details=single_model_deployment_config_details,
    compartment_id=<compartment-id>,
    project_id=<project-id>
)

ノートブック例

モデル・デプロイメントのトレーニング、準備、保存、デプロイおよび呼出し方法を示す様々なノートブック例が提供されています。