What fills a volume
Every run that uses the volume shares the same space.
How many checkpoints are on disk
These[ckpt] settings control how many checkpoints a run keeps. RL configs use the same fields in the shared [ckpt] block.
The trainer writes a new checkpoint before it deletes the oldest one. So at peak the run holds
keep_last + 1 checkpoints, plus any pinned by keep_interval.
How big one checkpoint is
A trainer checkpoint holds the full training state: model weights in fp32 and the optimizer state. Plan for about 11–12 bytes per parameter. Measured saves: ~341 GB for Qwen3-30B-A3B (30.5B parameters) and ~7.2 GB for a 0.6B model.
The bf16 weights alone are 2 bytes per parameter (~57 GiB for Qwen3-30B-A3B). That is a lower bound and the size of exported weights. It is not the size of a trainer checkpoint.
ckpt.skip_optimizer = true does not make checkpoints smaller. It only skips loading the optimizer state when a run resumes. The checkpoint is still saved with the full state.Size the volume
keep_last is unset, multiply by the number of checkpoints the run will save instead.
Example. Qwen3-30B-A3B (30.5B parameters) with keep_last = 2:
- One checkpoint is about 341 GB. Peak is 3 checkpoints: about 1 TB.
- With the formula (11–12 bytes per parameter, 20% headroom): about 1.2 TB, plus your datasets. Use a
1.5Tivolume. - On a
200Givolume (about 215 GB), even the first checkpoint does not fit. The run fails at its first save.
The size is a hard quota
The size you set with--size or --volume-size is a hard limit. A write past it fails with one of these errors:
du does not show what a run that is still going has written.
A volume that already holds more than its size cannot start a run: the run fails before training with volume contents (...) exceed the volume size (...); run prime volumes expand. Expand the volume or delete data, then launch again.
What happens when a volume fills
- The checkpoint save fails and the trainer crashes.
- The trainer restarts from the last good checkpoint (or from the start, if there is none), trains to the next save, and hits the same limit again. Each retry spends GPU time.
- After repeated crashes, the run is marked failed with a disk-quota error.
Fix or prevent a full volume
-
Keep fewer checkpoints. Set
keep_last = 1or2in[ckpt]. -
Save less often. Raise
[ckpt].interval, or leave it unset to save only at the end. -
Delete old outputs. Open a read-write session and remove runs you no longer need:
Do not delete a checkpoint that another run resumes from with
[resume].dir. -
Grow the volume. Expand it with
prime volumes expand <name> --size <size>(see Make a volume bigger).