予測に使用するコンピューティング リソースの構成

Vertex AI は、オンライン予測とバッチ予測を処理するためにノードを割り当てます。カスタム トレーニング モデルまたは AutoML 表形式モデルを Endpoint リソースにデプロイしてオンライン予測を提供する場合、またはバッチ予測をリクエストする場合は、予測サービスがこれらのノードに使用する仮想マシンのタイプをカスタマイズできます。GPU を使用するように予測ノードを構成することもできます。

マシンタイプによって、次のようないくつかの点で違いがあります。

  • ノードあたりの仮想 CPU(vCPU)の数
  • ノードあたりのメモリの量
  • 料金

コンピューティング リソースの多いマシンタイプを選択すると、予測を処理する際のレイテンシの短縮や、同時に処理される予測リクエスト数の増加につながります。

コンピューティング リソースを指定する場所

カスタム トレーニング モデルまたは AutoML 表形式モデルを使用してオンライン予測を提供する場合は、Model リソースを DeployedModel として Endpoint にデプロイする際にマシンタイプを指定する必要があります。他のタイプの AutoML モデルの場合、Vertex AI によって自動的にマシンタイプが構成されます。

DeployedModeldedicatedResources.machineSpec フィールドにマシンタイプ(および、必要に応じて GPU 構成)を指定します。

各モデルタイプをデプロイする方法を学習します。

カスタム トレーニング モデルまたは AutoML の表形式モデルでバッチ予測を行う場合は、BatchPredictionJob リソースを作成する際にマシンタイプを指定する必要があります。BatchPredictionJobdedicatedResources.machineSpec フィールドにマシンタイプ(および、必要に応じて GPU 構成)を指定します。

マシンタイプ

次の表は、カスタム トレーニング モデルと AutoML 表形式モデルで予測を行うために使用可能なマシンタイプを比較したものです。

名前 vCPU メモリ(GB)
n1-standard-2 2 7.5
n1-standard-4 4 15
n1-standard-8 8 30
n1-standard-16 16 60
n1-standard-32 32 120
n1-highmem-2 2 13
n1-highmem-4 4 26
n1-highmem-8 8 52
n1-highmem-16 16 104
n1-highmem-32 32 208
n1-highcpu-4 4 3.6
n1-highcpu-8 8 7.2
n1-highcpu-16 16 14.4
n1-highcpu-32 32 28.8

マシンタイプごとの料金をご覧ください。これらのマシンタイプの詳細な仕様については、マシンタイプに関する Compute Engine ドキュメントをご覧ください。

GPU

一部の構成では、必要に応じて GPU を追加して各予測ノードを加速させることができます。GPU を使用するには、いくつかの要件を考慮する必要があります。

  • GPU を使用できるのは、Model リソースが TensorFlow SavedModel をベースにしている場合、または GPU を活用できるよう設計されたカスタム コンテナを使用している場合に限られます。scikit-learn モデル、XGBoost モデルには GPU を使用できません。
  • GPU の各タイプの可用性は、モデルで使用するリージョンによって異なります。どのタイプの GPU がどのリージョンで使用可能かを確認してください。
  • DeployedModel リソースや BatchPredictionJob には 1 つのタイプの GPU しか使用できません。また、使用しているマシンタイプによっては、追加できる GPU の数が制限されます。次の表では、これらの制限について示しています。

次の表に、オンライン予測に使用できる GPU と、各 Compute Engine マシンタイプで使用できるタイプ別 GPU の最大数を記載します。

各マシンタイプに有効な GPU の数
マシンタイプ NVIDIA Tesla K80 NVIDIA Tesla P100 NVIDIA Tesla V100 NVIDIA Tesla P4 NVIDIA Tesla T4
n1-standard-2 1、2、4、8 1、2、4 1、2、4、8 1、2、4 1、2、4
n1-standard-4 1、2、4、8 1、2、4 1、2、4、8 1、2、4 1、2、4
n1-standard-8 1、2、4、8 1、2、4 1、2、4、8 1、2、4 1、2、4
n1-standard-16 2、4、8 1、2、4 2、4、8 1、2、4 1、2、4
n1-standard-32 4、8 2、4 4、8 2、4 2、4
n1-highmem-2 1、2、4、8 1、2、4 1、2、4、8 1、2、4 1、2、4
n1-highmem-4 1、2、4、8 1、2、4 1、2、4、8 1、2、4 1、2、4
n1-highmem-8 1、2、4、8 1、2、4 1、2、4、8 1、2、4 1、2、4
n1-highmem-16 2、4、8 1、2、4 2、4、8 1、2、4 1、2、4
n1-highmem-32 4、8 2、4 4、8 2、4 2、4
n1-highcpu-2 1、2、4、8 1、2、4 1、2、4、8 1、2、4 1、2、4
n1-highcpu-4 1、2、4、8 1、2、4 1、2、4、8 1、2、4 1、2、4
n1-highcpu-8 1、2、4、8 1、2、4 1、2、4、8 1、2、4 1、2、4
n1-highcpu-16 2、4、8 1、2、4 2、4、8 1、2、4 1、2、4
n1-highcpu-32 4、8 2、4 4、8 2、4 2、4

GPU はオプションであり、追加費用が発生します。

スケーリング

ModelDeployedModel としてデプロイするか、BatchPredictionJob を作成する場合は、自動スケーリングするように予測を構成できます。これを行うには、dedicatedResources.maxReplicaCountdedicatedResources.minReplicaCountDeployedModel の場合)または dedicatedResources.startingReplicaCountBatchPredictionJob の場合)よりも大きな値に設定します。

このタイプの構成を使用すると、既存のノードの CPU 使用率が高くなれば、Vertex AI は DeployedModel または BatchPredictionJob を自動的にスケーリングして、使用する予測ノードを増やします。Vertex AI は、GPU を使用するように予測ノードを構成している場合でも、CPU 使用率に基づいてノードをスケーリングします。したがって、予測スループットで GPU 使用量が高くても CPU 使用率が高くない場合は、ノードが期待どおりにスケーリングされないことがあります。

次のステップ