Volumes are in closed beta for full fine-tuning. Reach out to us to get access.
1Ti) and can grow to 10 TiB (10Ti). They cannot shrink.
Before you start
Install and authenticate the Prime CLI. These commands require Prime CLI 0.9.0 or later. Volumes use the team configured in your CLI. Select a team before creating a volume:Create a volume
Choose a name using lowercase letters, digits, and hyphens:1Ti volume. To choose a different starting size, pass --size:
--cluster <name>; otherwise, the CLI uses your first available cluster.
List volumes
create and list accept --output json (or -o json). JSON includes the volume’s clusterId.
SSH into a volume
Open a session to inspect outputs or stage datasets. Configure your SSH key withprime config set-ssh-key-path <private-key-path> first.
/volume. Bare prime volumes ssh <name> opens a read-write session by default; --read-only (or --read) mounts it read-only to inspect or download files without changing them. Pass --read-write explicitly to upload or edit files:
prime volumes get <name> <remote> [local] or prime volumes put <name> <local> [remote]:
get) work with either session mode; uploads (put) require read-write access, since writes fail on a read-only mount. get requests a read-only session but can reuse your read-write session; put opens or reuses a read-write session. The default local destination for get is .; the default remote destination for put is /. Remote paths are relative to the volume root: /datasets/my-data in put is /volume/datasets/my-data inside SSH.
Stop a session using the ID printed when it opens:
Use a volume for training
Pass a volume name when launching a full fine-tuning run:[deployment] block. Volumes are not supported for LoRA runs.
If the volume is missing from the selected team or personal account, the CLI creates it (default 1Ti), waits until it is RUNNING, then dispatches the run. Set --volume-size to choose its initial size; existing volumes are left unchanged. The run writes its outputs under runs/<runId>/ on the volume, giving each run its own directory.
A config with a [data] block and no [trainer] or [orchestrator] block auto-dispatches as Hosted SFT, mounting the volume read-only at /volume for data.name to read the staged dataset.
The volume pins the run to the cluster where it was created. That cluster must support the run’s GPU requirements and have the base model cached — unless the run is Hosted SFT reading its model from the volume itself (see below); the run cannot move to another cluster just because it has free GPUs.
You can also set the volume at the top level of your TOML config, before any tables:
--volume and --volume-size flags take precedence over their config values.
Train from weights already on the volume
Hosted SFT runs can load their base model from the volume instead of the cluster model cache — start from weights you staged yourself, or continue a previous run’s checkpoint via[resume].dir (see Volume-hosted models).
Point [model].name at the model directory using its absolute mount path. Unlike data.name, the model path must start with /volume/:
- The run must carry the volume (
--volumeorvolume = "..."in the config); otherwise dispatch is rejected. - The path needs at least one directory after
/volume/, and each segment starts with a letter or digit, then letters, digits,.,-, or_only —.and..are rejected. - The directory holds Hugging Face-format weights (
config.jsonplus safetensors files) — something you copied up withprime volumes put. A previous run’s checkpoint does not qualify (it is in prime-rl’s distributed format): continue those with[resume].dirinstead (Volume-hosted models). - The model does not need to be in the cluster model cache. No cache check applies — dispatch only requires the volume’s cluster to fit the run’s GPU requirements.
- The volume stays read-only on the trainer. Any weight conversion the trainer performs is written to the run’s own scratch space, never back onto the volume.
[trainer]/[orchestrator] configs) cannot read their model from a volume yet — they still require a cached HF model id.
For staging weights, chaining runs from your own checkpoints, and how dispatch changes, see the dedicated guide: Volume-hosted models.
Grow a volume
Pass a new size larger than the current size, up to10Ti:
Delete a volume
--yes (or -y) to skip the prompt.
Team volumes require a team admin to delete them; personal volumes can be deleted by their owner.
Deletion is refused while the volume is still provisioning or runs are still mounting it. Wait for those runs to finish, or stop them and wait for their pods to terminate, then retry. --yes skips only the confirmation; it does not bypass this guard.