> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-workspaces-notebooks.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Serverless Sandboxes

> W&B Serverless Sandboxes を使用すると、Python から必要に応じて分離されたコンピュート環境を作成、使用し、不要になったら破棄できます。

<Warning>
  **`wandb.sandbox` は非推奨です。** W\&B Python SDK の将来のリリースで削除されます。代わりに `cwsandbox` パッケージを使用してください。詳細は [CoreWeave サンドボックスのドキュメント](https://docs.coreweave.com/products/sandboxes)を参照してください。

  移行にあたっては、次の 2 点が変わります。

  * **import**: W\&B の extra を指定して `cwsandbox` をインストールし (`pip install "cwsandbox[wandb]"`)、`wandb.sandbox` ではなく `cwsandbox` から import します。
  * **認証情報**: `cwsandbox` はデフォルトで `CWSANDBOX_API_KEY` に設定された CoreWeave API アクセストークンで認証します。引き続き W\&B APIキーを使用する場合は、`auth=AuthStrategy.WANDB` を渡してください。[認証情報の選択](https://docs.coreweave.com/products/sandboxes/get-started#choose-a-credential)を参照してください。

  このページの例では引き続き `wandb.sandbox` を使用しています。同等の `cwsandbox` のコードについては、[`cwsandbox` への移行](/ja/sandboxes#migrate-to-cwsandbox)を参照してください。
</Warning>

<Warning>
  Serverless Sandboxes は**パブリック プレビュー**です。アクセスは組織ごとに有効化されます。組織でアクセスを利用するには、[サポート](mailto:support@wandb.com)にお問い合わせください。
</Warning>

Serverless Sandboxes では、Python を使用して、必要に応じて分離されたコンピュート環境を作成、使用し、不要になったら破棄できます。

Serverless Sandboxes は CoreWeave Sandbox ライブラリを使用して構築されています。基盤となる API リファレンスとライブラリのドキュメントについては、[CoreWeave Sandbox documentation](https://docs.coreweave.com/products/coreweave-sandbox) を参照してください。

<div id="how-it-works">
  ## 仕組み
</div>

*サンドボックス* は、単一の分離されたコンピュート環境です。[作成](/ja/sandboxes/create-sandbox)して、[内部でコマンドを実行](/ja/sandboxes/run-commands)し、不要になったら停止します。各サンドボックスは、それぞれ独自のファイルシステム、ネットワーク、プロセス空間を持つ専用のコンテナー内で実行されます。

サンドボックスを作成および管理する際、W\&B はユーザーのアイデンティティを認証します。サンドボックス内で W\&B または Weave を使用するには、[W\&B Secrets Manager](/ja/platform/secrets#manage-access-to-secrets) または環境変数を使って APIキー を渡してください。サンドボックスでシークレットを使用する方法の詳細は、[Secrets](/ja/sandboxes/secrets) を参照してください。

サンドボックスは、[ライフサイクルの中で複数の状態](/ja/sandboxes/lifecycle) を遷移します。コンテナーが実行中であれば、その内部で [コマンドを実行](/ja/sandboxes/run-commands) できます。

[ファイルの読み取り、書き込み、読み取り専用マウント](/ja/sandboxes/file-access) を使用して、サンドボックスとの間でファイルを扱えます。一般的な例としては、実行する Python スクリプトを読み込む、ログや結果を書き出す、またはサンドボックスからアクセスできるようにデータのディレクトリーを読み取り専用でマウントする、といったものがあります。

共有の設定を持つ複数のサンドボックスを管理するには、*セッション* を使用します。セッションが閉じられると、そのセッション内のすべてのサンドボックスは自動的に停止します。詳しくは、[複数のサンドボックスを管理する](/ja/sandboxes/create-sandbox#create-multiple-sandboxes-with-a-session) を参照してください。

<div id="basic-usage">
  ## 基本的な使い方
</div>

次の手順に従ってサンドボックスを作成し、その中でコマンドを実行します。

1. 次のコマンドを使用して、W\&B Python SDK (`wandb`) と serverless sandbox の依存関係をインストールします。
   ```bash theme={null}
   pip install wandb[sandbox]
   ```

2. [`wandb login`](/ja/models/ref/cli/wandb-login) CLI コマンドを使用して W\&B にログインします。プロンプトが表示されたら、APIキーを入力してアイデンティティを認証し、W\&B アカウントにアクセスします。

   ```bash theme={null}
   wandb login
   ```

3. 次のコードスニペットを Python ファイルにコピー＆ペーストして実行してください。このコードスニペットでは、次のことを行います。

   1. [`Sandbox.run()`](https://docs.coreweave.com/products/coreweave-sandbox/client/ref/core/sandbox#run) を使用してサンドボックスを作成します。
   2. [`Sandbox.exec()`](https://docs.coreweave.com/products/coreweave-sandbox/client/ref/core/sandbox#exec) メソッドを使用して、サンドボックス内でコマンド `echo "Hello from Serverless Sandboxes!"` を実行します。
   3. `Sandbox.exec()` から返される `Process` オブジェクトを使用して、出力をコンソールに表示します。

   ```python show lines title="hello_sandbox.py" theme={null}
   from wandb.sandbox import Sandbox

   with Sandbox.run() as sandbox:
       process = sandbox.exec(["echo", "Hello from Serverless Sandboxes!"]).result()
       print(process.stdout)
   ```

   コンソールに `Hello from Serverless Sandboxes!` と出力されます。

   サンドボックスは、コンテキストマネージャー (`with` ブロック) を抜けると自動的に停止します。サンドボックスのライフサイクルと状態の詳細については、[サンドボックスのライフサイクル](/ja/sandboxes/lifecycle)を参照してください。

<div id="migrate-to-cwsandbox">
  ## cwsandbox への移行
</div>

`wandb.sandbox` は非推奨であり、W\&B Python SDK の将来のリリースで削除されます。代わりに `cwsandbox` パッケージを使用してください。`cwsandbox` は W\&B APIキーと CoreWeave API アクセストークンのどちらも使用できます。リファレンスドキュメントは [CoreWeave sandbox のドキュメント](https://docs.coreweave.com/products/sandboxes) を参照してください。

移行するには、パッケージのインストール方法、インポート方法、および使用する認証情報の選択方法を変更します。

1. W\&B の extra を指定して `cwsandbox` をインストールします。この extra により `wandb` ライブラリが同時にインストールされます。`cwsandbox` はこのライブラリを使用して W\&B の認証情報を解決します。

   ```bash theme={null}
   pip install "cwsandbox[wandb]"
   ```

2. `wandb.sandbox` ではなく `cwsandbox` からインポートし、サンドボックスまたはセッションを作成する際に `auth=AuthStrategy.WANDB` を渡します。`cwsandbox` はデフォルトで `CWSANDBOX_API_KEY` から CoreWeave API アクセストークンを読み取るため、W\&B 認証を使用する場合は明示的に指定する必要があります。

   ```python title="変更前: wandb.sandbox" theme={null}
   from wandb.sandbox import Sandbox

   with Sandbox.run() as sandbox:
       process = sandbox.exec(["echo", "Hello from Serverless Sandboxes!"]).result()
       print(process.stdout)
   ```

   ```python title="変更後: cwsandbox" theme={null}
   from cwsandbox import AuthStrategy, Sandbox

   with Sandbox.run(auth=AuthStrategy.WANDB) as sandbox:
       process = sandbox.exec(["echo", "Hello from Serverless Sandboxes!"]).result()
       print(process.stdout)
   ```

W\&B の認証情報は従来と同じ方法で解決されます。具体的には、実行中の `wandb login` セッション、`WANDB_API_KEY` 環境変数、または `~/.netrc` 内の `api.wandb.ai` エントリのいずれかです。サンドボックスの料金を W\&B ではなく CoreWeave アカウントに請求する場合は、`auth` を省略し、`CWSANDBOX_API_KEY` に CoreWeave API アクセストークンを設定します。2 つの認証情報の比較については、[Choose a credential](https://docs.coreweave.com/products/sandboxes/get-started#choose-a-credential) を参照してください。

<div id="behavior-that-changes-after-you-migrate">
  ### 移行後に変わる動作
</div>

`wandb.sandbox` は `cwsandbox` をラップし、`cwsandbox` パッケージ単体では適用されない W\&B Serverless のデフォルトを適用します。移行の際は、以下の相違点に注意してください。

| 動作               | `wandb.sandbox`                                   | `cwsandbox`                              |
| ---------------- | ------------------------------------------------- | ---------------------------------------- |
| サンドボックスの最大ライフタイム | デフォルトは 12 時間                                      | デフォルトなし。`max_lifetime_seconds` を自分で設定します |
| シークレットストア        | `Secret` はデフォルトで W\&B チームのシークレットストアを使用します         | `Secret` には明示的な `store` 引数が必要です          |
| 配置に関する引数         | `profile_ids`、`profile_names`、`runner_ids` を拒否します | CoreWeave のサンドボックスランナー向けにこれらを受け入れます      |

<div id="serverless-sandboxes-tutorials">
  ## Serverless Sandboxes のチュートリアル
</div>

より詳しい例については、以下を参照してください。

* [Serverless Sandbox でエージェントを呼び出すチュートリアル](/ja/sandboxes/invoke-agent-sandbox-tutorial)
* [Serverless Sandbox で PyTorch モデルをトレーニングするチュートリアル](/ja/sandboxes/mltrain-in-sandbox-tutorial)

<div id="integrations">
  ## インテグレーション
</div>

以下のサードパーティ製フレームワークは、サンドボックスプロバイダとして Serverless Sandboxes をサポートしています。

* [Harbor](https://github.com/harbor-framework/harbor)
