サーバレス GPU コンピュート
ベータ版
この機能は ベータ版です。
この記事では、 Databricks 上のサーバレス GPU コンピュートについて説明し、推奨される使用例、GPU コンピュート リソースの設定方法のガイダンス、および機能の制限について説明します。
サーバレス GPU コンピュートとは?
サーバレス GPU コンピュ ートは、サーバレス コンピュート オファリングの一部です。 サーバレス GPU コンピュートは、カスタムのシングルノードおよびマルチノード ディープラーニング ワークロードに特化しています。 サーバレス GPU コンピュートを使用すると、お気に入りのフレームワークを使用してカスタムモデルをトレーニングおよび微調整し、最先端の効率、パフォーマンス、品質を得ることができます。
サーバレス GPU コンピュートには、次のものが含まれます。
- ノートブック、 Unity Catalog、 MLflowにわたる統合されたエクスペリエンス: ノートブックを使用して、コードを対話形式で開発できます。
- サーバレス GPU コンピュートは A10 をサポートしています 。
- ハイパーパラメータ スイープ: ハイパーパラメータスイープファインチューニングを実行できます。
- マルチノードのサポート: 分散トレーニングワークロードを実行できます。
サーバレス GPU コンピュートにプリインストールされているパッケージは、 Databricks Runtime MLに代わるものではありません。 共通のパッケージは存在しますが、すべての Databricks Runtime ML 依存関係とライブラリがサーバレス GPU コンピュート環境に反映されるわけではありません。
推奨される使用例
Databricks は、トレーニングのカスタマイズと GPU を必要とするあらゆるモデルのトレーニングユースケースに、サーバレス GPU コンピュートを推奨します。
例えば:
- LLM ファインチューニング
- コンピュータビジョン
- レコメンダーシステム
- 強化学習
- ディープラーニングベースの時系列予測
必要条件
us-west-2
またはus-east-1
のワークスペース。
インストールされているもの
ノートブック向けサーバレス GPU コンピュートは、アプリケーションの互換性を確保するための安定したクライアント API を提供する環境バージョンを使用します。 これにより、Databricks はサーバーを個別にアップグレードし、ワークロードのコードを変更することなく、パフォーマンスの向上、セキュリティの強化、バグ修正を実現できます。
サーバレス GPU コンピュートは、次のパッケージに加えて、 環境バージョン 3 を使用します。
CUDA 12.4
torch 2.6.0
torchvision 0.21.0
システム環境バージョン 3 に含まれるパッケージについては、 サーバレス環境バージョン 3 を参照してください。
ベース環境 は、サーバレス GPU コンピュートには対応していません。 サーバレス GPU コンピュートを環境に設定するには、 依存関係を [環境] サイド パネルで直接指定 するか、依存関係 pip install
します。
環境へのライブラリの追加
サーバレス GPU コンピュート環境にライブラリを追加でインストールすることができます。 「ノートブックに依存関係を追加する」を参照してください。
ノート ブックへの依存関係の追加 に示されているように、[ 環境] パネルを使用した依存関係の追加は、サーバレス GPU コンピュート scheduled ジョブではサポートされていません。
サーバレス GPU コンピュートのセットアップ
ワークステーションのノートブック環境からサーバレス GPU コンピュートの使用を選択できます。
ノートブックを開いた後、次の操作を行います。
を選択して、 環境 サイドパネルを開きます。
- アクセラレータ フィールドから A10 を選択します。
- 環境バージョン として 3 を選択します。
- 適用 を選択し、次に、サーバレス GPU コンピュートをノートブック環境に適用することを 確認します 。リソースに接続した後、ノートブックはすぐに利用可能なコンピュートの使用を開始します。
コンピュートへの接続は、60分間操作がないと自動的に終了します。
ジョブの作成とスケジュール
次の手順は、サーバレス GPU コンピュート ワークロードのジョブを作成およびスケジュールする方法を示しています。 詳細については、「 スケジュールされたノートブック ジョブの作成と管理」 を参照してください。
使用するノートブックを開いたら、次の操作を行います。
- 右上の [スケジュール] ボタンを選択します。
- [ スケジュールの追加 ] を選択します。
- 新しいスケジュール フォームに ジョブ名 Schedule _and コンピュート を入力します。
- [作成] を選択します。
ジョブ とパイプライン UI からジョブを作成およびスケジュールすることもできます。ステップバイステップのガイダンスについては、「 新しいジョブの作成 」を参照してください。
分散トレーニング
サーバレス GPU Python APIを使用して、複数の GPU やノードにまたがる分散トレーニングを起動できます。シングル GPU ジョブとマルチ GPU ジョブの両方を実行するためのシンプルで統一されたインターフェイスを提供し、GPU プロビジョニング、環境設定、ワークロード分散をバックグラウンドで自動的に処理します。ローカル GPU で作業する場合でも、リモート GPU を使用してノード間でスケールアウトする場合でも、serverless_gpu を使用すると分散実行が簡単になり、コードの変更は最小限で済みます。
たとえば、以下のコードでは、 serverless_gpu
を使用して、8 つのリモート A10 GPU に実行する hello_world
関数を分散します。
# Import the distributed decorator
from serverless_gpu import distributed
# Decorate the function with @distributed and specify the number of GPUs, the GPU type, and whether or not the GPUs are remote
@distributed(gpus=8, gpu_type='A10', remote=True)
def hello_world(s: str) -> None:
print('hello_world ', s)
# Trigger the distributed execution of the hello_world function
hello_world.distributed(s='abc')
上記のコードを実行すると、結果とログが エクス ペリメント のセクションに表示されます ワークスペース。
まず 、スターター ノートブック をインポートして API を実際に使用し、 次にノートブックの例 を調べて、実際の分散トレーニング シナリオでどのように使用されるかを確認します。
詳細については、サーバレス GPU Python API のドキュメントを参照してください。
制限
-
サーバレス GPU コンピュートは、A10 または類似のコンピュートのみをサポートします。
-
PrivateLink はサポートされていません。PrivateLink の背後にあるストレージまたは pip リポジトリはサポートされていません。
-
サーバレス GPU コンピュートは、 コンプライアンス セキュリティ プロファイル ワークスペース (HIPPA や PCT など) ではサポートされていません 。 現時点では、規制対象データの処理はサポートされていません。
-
サーバレス GPU コンピュートは、対話型環境でのみサポートされています。
-
サーバレス GPU コンピュートのスケジュールされたジョブ:
- 1 つのタスクに対してのみサポートされます。
- ノートブックに関連付けられている互換性のないパッケージ バージョンの自動回復動作はサポートされていません。
ノートブックの例
以下は、さまざまなシナリオでサーバレス GPU コンピュートを使用する方法を示すさまざまなノートブックの例です。
タスク | 説明 |
---|---|
ファインチューニングの例 大規模言語モデル 低ランク適応 (LoRA) や教師ありファインチューニング アプローチなどのパラメーター効率の高い方法が含まれます。 | |
オブジェクト検出や画像分類などのコンピューター ビジョン タスクの例。 | |
2 タワー モデルなどの最新のディープラーニング アプローチを使用してレコメンデーション システムを構築する例。 | |
XGBoost モデルのトレーニングや時系列予測などの従来の機械学習タスクの例。 | |
サーバレス GPU APIを使用して、複数の GPU とノード間でトレーニングをスケーリングする例 (ハイパーパラメータスイープや分散ファインチューニングなど)。 |