仕組み
サンドボックス は、単一の分離されたコンピュート環境です。作成して、内部でコマンドを実行し、不要になったら停止します。各サンドボックスは、それぞれ独自のファイルシステム、ネットワーク、プロセス空間を持つ専用のコンテナー内で実行されます。 サンドボックスを作成および管理する際、W&B はユーザーのアイデンティティを認証します。サンドボックス内で W&B または Weave を使用するには、W&B Secrets Manager または環境変数を使って APIキー を渡してください。サンドボックスでシークレットを使用する方法の詳細は、Secrets を参照してください。 サンドボックスは、ライフサイクルの中で複数の状態 を遷移します。コンテナーが実行中であれば、その内部で コマンドを実行 できます。 ファイルの読み取り、書き込み、読み取り専用マウント を使用して、サンドボックスとの間でファイルを扱えます。一般的な例としては、実行する Python スクリプトを読み込む、ログや結果を書き出す、またはサンドボックスからアクセスできるようにデータのディレクトリーを読み取り専用でマウントする、といったものがあります。 共有の設定を持つ複数のサンドボックスを管理するには、セッション を使用します。セッションが閉じられると、そのセッション内のすべてのサンドボックスは自動的に停止します。詳しくは、複数のサンドボックスを管理する を参照してください。基本的な使い方
次の手順に従ってサンドボックスを作成し、その中でコマンドを実行します。-
次のコマンドを使用して、W&B Python SDK (
wandb) と serverless sandbox の依存関係をインストールします。 -
wandb loginCLI コマンドを使用して W&B にログインします。プロンプトが表示されたら、APIキーを入力してアイデンティティを認証し、W&B アカウントにアクセスします。 -
次のコードスニペットを Python ファイルにコピー&ペーストして実行してください。このコードスニペットでは、次のことを行います。
Sandbox.run()を使用してサンドボックスを作成します。Sandbox.exec()メソッドを使用して、サンドボックス内でコマンドecho "Hello from Serverless Sandboxes!"を実行します。Sandbox.exec()から返されるProcessオブジェクトを使用して、出力をコンソールに表示します。
コンソールにhello_sandbox.pyHello from Serverless Sandboxes!と出力されます。 サンドボックスは、コンテキストマネージャー (withブロック) を抜けると自動的に停止します。サンドボックスのライフサイクルと状態の詳細については、サンドボックスのライフサイクルを参照してください。
cwsandbox への移行
wandb.sandbox は非推奨であり、W&B Python SDK の将来のリリースで削除されます。代わりに cwsandbox パッケージを使用してください。cwsandbox は W&B APIキーと CoreWeave API アクセストークンのどちらも使用できます。リファレンスドキュメントは CoreWeave sandbox のドキュメント を参照してください。
移行するには、パッケージのインストール方法、インポート方法、および使用する認証情報の選択方法を変更します。
-
W&B の extra を指定して
cwsandboxをインストールします。この extra によりwandbライブラリが同時にインストールされます。cwsandboxはこのライブラリを使用して W&B の認証情報を解決します。 -
wandb.sandboxではなくcwsandboxからインポートし、サンドボックスまたはセッションを作成する際にauth=AuthStrategy.WANDBを渡します。cwsandboxはデフォルトでCWSANDBOX_API_KEYから CoreWeave API アクセストークンを読み取るため、W&B 認証を使用する場合は明示的に指定する必要があります。変更前: wandb.sandbox変更後: cwsandbox
wandb login セッション、WANDB_API_KEY 環境変数、または ~/.netrc 内の api.wandb.ai エントリのいずれかです。サンドボックスの料金を W&B ではなく CoreWeave アカウントに請求する場合は、auth を省略し、CWSANDBOX_API_KEY に CoreWeave API アクセストークンを設定します。2 つの認証情報の比較については、Choose a credential を参照してください。
移行後に変わる動作
wandb.sandbox は cwsandbox をラップし、cwsandbox パッケージ単体では適用されない W&B Serverless のデフォルトを適用します。移行の際は、以下の相違点に注意してください。