どの選択をするかは、さまざまな要因によって決まります。
マウント ファイル システムとしての Cloud Storage(Cloud Storage FUSE)
次の理由から、Cloud Storage をマウント ファイル システム(Cloud Storage FUSE)として使用することを検討してください。
- トレーニング データが画像、テキスト、動画などの非構造化データの場合: Cloud Storage は、これらのタイプの大きなファイル(多くの場合、個々のファイル)の保存に適しています。
- トレーニング データが TFRecord などの形式で構造化されている場合: これらの ML 固有の形式には、通常 Cloud Storage が使用されます。
- 非常に大きなファイルを扱う場合: Cloud Storage FUSE は、ファイル全体をレプリカにダウンロードする必要がなく、データをトレーニング ジョブにストリーミングします。これにより、大規模なデータセットのデータ読み込みとジョブの起動時間を短縮できます。
- 分散トレーニングの実行時: Cloud Storage FUSE は、大きなファイルを連続的に読み取る際の高スループットを実現します。これは、複数のワーカーがデータを並行してアクセスする必要がある分散トレーニング シナリオで役立ちます。
- トレーニング コードで明示的な API 呼び出しを行うことなく、ローカル ファイル システムのように簡便に Cloud Storage データにアクセスしたい場合。
- スケーラブルなストレージが主なニーズであり、多数の小さなファイルへのランダム アクセスにおいてレイテンシがそれほど低くなくてもかまわない場合。
Ray on Vertex AI に固有
- Ray on Vertex AI からアクセスできる Cloud Storage バケットにデータを保存できます。
- Ray は Cloud Storage からデータを直接読み取ることができます。たとえば、Spark on Ray を実行している場合は、Cloud Storage からファイルを読み取ることができます。
- Vertex AI は、Cloud Storage FUSE を使用して、Ray で実行されているトレーニング ジョブ内のローカル ファイル システムとして Cloud Storage バケットをマウントします。これにより、Ray アプリケーションは標準のファイル I/O オペレーションを使用して、ローカル ディスク上にあるかのようにデータにアクセスできます。
- 最適なパフォーマンスを得るには、Ray クラスタを実行しているリージョンと同じリージョンの Cloud Storage バケットを使用することをおすすめします。
詳細
ネットワーク ファイル システム(NFS)共有
- リモート ファイルにローカル ファイルと同じように、非常に高いスループットと低レイテンシでアクセスする必要がある場合。これは、特定の種類のデータや、トレーニング中の複雑なファイル操作で重要になることがあります。
- Vertex AI 上の Ray クラスタなど、コンピューティング クラスタ内のすべてのノードでリモートファイルをすぐに利用できるようにする必要がある場合。
- Cloud Storage FUSE よりも強固に POSIX に準拠している可能性がある、より標準的なファイル システム インターフェースがアプリケーションにメリットをもたらす場合。
- 使用する既存の NFS インフラストラクチャが Virtual Private Cloud 内にある。
- ジョブまたはクラスタ間でファイルやディレクトリを共有し、一貫性のある低レイテンシでのアクセスを実現する必要があり、ファイル システム レベルで権限を管理することが望ましい。
Ray on Vertex AI に固有
- Vertex AI 上の Ray クラスタに NFS 共有をマウントすると、リモート ファイルにローカル ファイルのようにアクセスできます。
- これは、共有ファイル システムへの高スループットと低レイテンシのアクセスに役立ちます。
- Vertex AI SDK for Python を使用して Ray クラスタを作成するときに、サーバー、パス、マウント ポイントを指定して NFS マウントを設定できます。マウントすると、Ray コードは標準のファイル操作を使用してこれらの NFS ボリュームの読み取りと書き込みを行うことができます。
詳細
マネージド データセット
- 一元化されたデータ マネジメントとガバナンス: マネージド データセットは、Vertex AI 内でデータセットを整理して管理するための一元的な場所を提供します。これにより、さまざまなプロジェクトや試験運用でのデータアセットの追跡とガバナンスが容易になります。
- データ ラベリング: ラベリング タスクを作成し、マネージド データセット内でアノテーション セットを直接管理できます。
- データリネージの追跡: マネージド データセットは、データのリネージをそのデータでトレーニングされたモデルまで自動的に追跡します。これは、特定のモデルで使用されるデータソースを理解し、再現性とガバナンスを確保するうえで重要です。
- カスタムモデルと AutoML モデルの比較: マネージド データセットを使用すると、同じデータを使用してカスタムモデルと AutoML モデルの両方をトレーニングできます。これにより、同じデータセットでパフォーマンスを直接比較できるため、問題に最適なアプローチを選択できます。
- データ統計情報と可視化の生成: Vertex AI は、マネージド データセット内のデータの統計情報と可視化を自動的に生成できます。これは探索的データ分析とデータの特性の理解に役立ちます。
- 自動データ分割: トレーニング パイプラインでマネージド データセットを使用する場合、Vertex AI は、指定された割合、フィルタ、事前定義された分割、タイムスタンプに基づいて、データをトレーニング セット、検証セット、テストセットに自動的に分割できます。これにより、データ準備プロセスが簡素化されます。
- データセット バージョンの活用: マネージド データセットではバージョニング機能が有効になります。これにより、データの変更を時系列で追跡し、必要に応じて以前のバージョンに戻すことができます。
Ray on Vertex AI に固有
- 分散トレーニングに Ray を使用する Vertex AI Training パイプラインでマネージド データセットを使用すると、マネージド データセットのデータがトレーニング コンテナで使用可能になり、Ray アプリケーションがアクセスできるようになります(データセットが Cloud Storage または BigQuery にリンクされている場合は、マウントされた Cloud Storage または BigQuery を介してアクセスできます)。環境変数
AIP_TRAINING_DATA_URI
、AIP_VALIDATION_DATA_URI
、AIP_TEST_DATA_URI
はデータを指します。
詳細
BigQuery
- Vertex AI コンポーネント内のデータに接続する場合: 多くの Vertex AI ツールとサービスは BigQuery と直接統合されます。JupyterLab 内から BigQuery のデータにクエリを実行できます。これにより、BigQuery データと直接やり取りして、データを別のストレージ システムに移動することなく、探索、可視化、モデル開発を行うことができます。
- トレーニング パイプラインの構築時: Vertex AI でトレーニング パイプラインを構築するときに、BigQuery から直接データを使用できます。たとえば、パイプラインは BigQuery からデータを取得して前処理し、モデルをトレーニングできます。
- 継続的なモデル トレーニング パイプライン: 継続的なモデル トレーニングを設定するには、BigQuery テーブルに新しいデータが到着したときにパイプライン実行をトリガーします。これにより、モデルの再トレーニングを自動化できます。新しいジョブが特定の BigQuery テーブルに挿入されたときにパイプラインを開始するように Eventarc トリガーを構成できます。
- モデルのモニタリング: BigQuery は、デプロイされたモデルの特徴のスキューとドリフトをモニタリングするためのソースとして使用できます。スキュー検出では、トレーニング データセットの BigQuery URI を指定できます。また、BigQuery はオンライン推論エンドポイントのログを保存できます。このログは、継続的モニタリングのデータソースとして使用できます。このため、BigQuery テーブルにはタイムスタンプ列があることが望ましいです。
- BigQuery ML の統合: BigQuery ML を活用して SQL を使用した ML モデルを構築する際に、BigQuery データセットを使用できます。Vertex AI Workbench では、ノートブック環境内で BigQuery データのインタラクティブな探索的分析と BigQuery ML の使用が可能です。
- データの探索と準備: トレーニングの前に、BigQuery を使用してデータを探索し、可視化できます。また、トレーニングにデータを使用する前に、BigQuery で直接 SQL クエリを使用してデータ変換を実行することもできます。
- 一般公開データセットへのアクセス: BigQuery は、Chicago Taxi Trips データセットなど、多くの一般公開データセットをホストしています。これらのデータセットは、Vertex AI Workbench でのテストとトレーニングにすぐに使用できます。
Ray on Vertex AI に固有
- Ray on Vertex AI には、BigQuery からデータを直接読み取る機能があります。Ray タスク内で Vertex AI SDK for Python を使用して、BigQuery クエリを実行し、Ray アプリケーションで使用する結果を実体化できます。
- BigQuery から読み取る場合は、クエリ レスポンスの最大サイズ(10 GB)に注意してください。
- Vertex AI SDK for Python を使用して、Ray アプリケーションから BigQuery にデータを書き込むこともできます。