Cloud TPU データのストレージ オプション
このドキュメントでは、Cloud TPU でモデルをトレーニングする際に使用できるデータ ストレージ オプションについて説明します。
はじめに
Cloud TPU には、次のデータ ストレージが必要です。
- データセットのダウンロードと前処理
- ホスト入力パイプライン処理
- モデル トレーニングの入力
- モデル トレーニングの出力
TPU アプリケーション データとトレーニング データセットのストレージ オプションは次のとおりです。
- 耐久性の高いブロック ストレージ。ブートディスクやアタッチされたストレージ ディスクなど
- Cloud Storage バケット
- Cloud Storage FUSE
- TPU VM 上の Filestore ファイル共有
- Managed Lustre ファイル共有
ストレージの管理の詳細については、次のページをご覧ください。
耐久性の高いブロック ストレージ
耐久性のあるブロック ストレージ(ディスクまたはボリューム)は、TPU VM の停止、一時停止、削除後に保持する必要があるデータに使用します。耐久性のあるブロック ストレージは、TPU VM がクラッシュまたは障害が発生した場合でも引き続き使用できます。TPU VM ブートディスクを使用するか、追加のブロック ストレージを TPU にアタッチできます。
次のシナリオでは、追加のディスクをアタッチする必要があります。
- トレーニング データセットのサイズが TPU ブートディスクのサイズを超えている。
- 読み取り専用のデータがあり、Hyperdisk ML ボリュームを使用して読み取りアクセスを高速化したい場合。
TPU 世代とサポートされているディスクタイプ
次の表に、各 TPU 世代でサポートされているディスクタイプを示します。
| TPU 世代 | サポートされているディスクタイプ |
|---|---|
| TPU7x | Hyperdisk Balanced、Hyperdisk ML |
| TPU v6e | Hyperdisk Balanced、Hyperdisk ML |
| TPU v5p | バランス永続ディスク、Hyperdisk ML |
| TPU v5e | バランス永続ディスク、Hyperdisk ML |
TPU VM ブートディスク
デフォルトでは、各 TPU VM には 10 GB の単一ブートディスクがあります。VM を作成するときに、より大きなブートディスクを構成できます。詳細については、カスタマイズされたブートディスクを作成するをご覧ください。ブートディスクには、オペレーティング システム、TPU ドライバ、ライブラリが含まれています。また、データの合計サイズがブートディスクで利用可能な容量を超えない限り、ダウンロードしたデータセットを前処理とモデルの入力データと出力データ用に一時的に保存することもできます。
アプリケーションで、ブートディスクのデフォルト以外のストレージ容量が必要な場合は、1 つ以上の耐久性ディスクを TPU VM インスタンスに追加できます。詳細については、次の情報をご覧ください。
アタッチされるストレージ
Hyperdisk と Persistent Disk はどちらも耐久性の高いネットワーク ストレージ デバイスであり、パソコンやサーバーの物理ディスクと同様に VM インスタンスからアクセスできます。どちらのタイプのディスクも VM インスタンスとは独立して作成されるため、VM を削除した後もデータを保持できます。
Persistent Disk ではなく Hyperdisk を使用するメリットには、パフォーマンスのカスタマイズ、IOPS とスループットの上限の引き上げなどがあります。Hyperdisk と Persistent Disk の詳細については、ディスクタイプを選択するをご覧ください。
マルチホスト TPU VM スライスを含む MIG にディスクをアタッチすると、システムはその TPU スライス内の各 VM にディスクをアタッチします。2 つ以上の TPU VM が同時にディスクに書き込まないようにするには、マルチホスト TPU スライスにアタッチするすべてのディスクを読み取り専用として構成する必要があります。読み取り専用ディスクは、TPU スライスで処理するためのデータセットを保存する場合に便利です。Hyperdisk Balanced は読み取り専用モードをサポートしていないため、Hyperdisk Balanced ボリュームは単一の TPU VM インスタンスにのみアタッチできます。
耐久性のあるブロック ストレージの使用方法については、VM に永続ディスクを追加すると Hyperdisk を追加するをご覧ください。
ディスクのバックアップ
TPU VM が「不明」状態のままになる場合、または削除したデータを復元する場合、ブートディスクからデータを取得するのは困難です。Cloud Storage バケットなど、別のストレージ オプションを使用してデータをバックアップします。
アタッチされたディスクにデータを保存する場合は、ディスク スナップショットを使用して、ディスク上のデータを増分バックアップできます。TPU VM ブートディスクは、ディスク スナップショットをサポートしていません。詳細については、ディスク スナップショットについてをご覧ください。
Cloud Storage バケット
Cloud Storage バケットは、VM インスタンス用の柔軟でスケーラブルな耐久性のあるストレージ オプションです。トレーニング ジョブで耐久性のあるブロック ストレージの低レイテンシが必要ない場合は、Cloud Storage バケットにデータセットを保存できます。
Cloud Storage バケットのパフォーマンスは、ストレージ クラスの選択と、インスタンスに対する相対的なバケットのロケーションに依存します。
TPU VM と同じゾーンに Cloud Storage バケットを作成すると、耐久性の高いブロック ストレージに匹敵するパフォーマンスが得られますが、レイテンシが高く、スループット特性は安定していません。
すべての Cloud Storage バケットには冗長性が組み込まれており、機器の障害からデータが保護され、データセンターのメンテナンス中でもデータの可用性が保証されます。Cloud Storage は、すべてのオペレーションに対してチェックサムを計算し、読み取ったデータと書き込んだデータが一致することを確認します。
耐久性のあるブロック ストレージとは異なり、Cloud Storage バケットはインスタンスが存在するゾーンに制限されません。また、バケットに対して複数のインスタンスからデータを同時に読み書きできます。たとえば、データをそれぞれのゾーンの耐久性のあるブロック ストレージに複製するのではなく、同じバケット内のデータを読み書きするように複数のゾーンのインスタンスを構成できます。
詳細については、Cloud Storage バケットに接続するをご覧ください。
Cloud Storage FUSE
Cloud Storage FUSE があれば、Cloud Storage バケットをローカル ファイル システムとしてマウントしてアクセスできます。これにより、標準のファイル システムのセマンティクスを使用して、バケット内のオブジェクトの読み取りと書き込みができます。
Cloud Storage FUSE の仕組みと、Cloud Storage FUSE オペレーションの Cloud Storage オペレーションへのマッピング方法について詳しくは、Cloud Storage FUSE のドキュメントをご覧ください。Cloud Storage FUSE CLI をインストールして GitHub のバケットをマウントする方法など、Cloud Storage FUSE の使用方法の詳細を確認できます。
Filestore ファイル共有
Filestore ファイル共有は、Compute Engine 向けのフルマネージド ネットワーク接続ストレージ(NAS)です。Filestore は既存のエンタープライズ アプリケーションに対応しています。また、NFSv3 互換のクライアントに対応しています。
Filestore は、低レイテンシのファイル操作を実現します。レイテンシの影響を受けやすいワークロードの場合、Filestore はパフォーマンスのばらつきを最小限に抑えつつ、最大 100 TiB の容量と 25 GiB/秒、720K IOPS のスループットをサポートします。
Filestore を使用すると、TPU VM にファイル共有をマウントできます。
Managed Lustre ファイル共有
Managed Lustre は、データ集約型の AI ワークロードと HPC ワークロード向けのフルマネージドの並列ファイル システムです。高いパフォーマンス、マルチペタバイト規模の容量、POSIX 準拠を提供します。
Managed Lustre を使用すると、TPU VM にファイル共有をマウントできます。特に、大規模なデータセットと ML ワークロードの高スループット要件の処理に役立ち、効率的なトレーニングと推論が可能になります。
詳細については、Managed Lustre のドキュメントをご覧ください。
次のステップ
- 永続ディスクを VM に追加する方法を学習する。
- VM に Google Cloud Hyperdisk を追加する方法を学習する。
- インスタンスを Cloud Storage バケットに接続する方法を学習する。
- Filestore ファイル共有をマウントする方法を確認する。