v1.2.63-fit-minimax-training-16gb
MiniMax H3 LoRA training on a 16GB card
Fixes the crash that blocked anyone below about 24GB in v1.2.62, and adds real numbers for small cards.
The bug: when a card cannot hold the 32B text encoder we fall back to running it from system RAM, but were still handing it GPU tensors. That surfaced as Expected all tensors to be on the same device ... index_select.
The surprise: H3 peaks lower on a small card than a big one, because the encoder never touches the GPU at all.
| L40S (46GB) | T4 (16GB, 64GB RAM) | |
|---|---|---|
| Peak VRAM | 20.6GB | 12.7GB |
| Seconds per step | 0.63 | 16.2 |
| Caption pass, 26 images | 1 min | 19 min |
So a 16GB card trains H3 where a 24GB card is merely comfortable. The cost is time rather than memory, because the encoder runs unquantised on the CPU.
To try it
- Update to 1.2.63, pick MiniMax H3 in the Trainer's Adjust panel, point it at a folder of images, hit Start. Defaults are fine
- Bring plenty of system RAM. Our test box had 64GB, and the encoder pages roughly 63GB through it
- Expect about 30 minutes before the first step on a 16GB card: 19 min of captions, 7 min loading the checkpoint. That startup is per run and does not scale with steps
- If neither your card nor your RAM can hold the encoder, you now get a clear message up front rather than a crash
Updating
If you installed with pip:
pip install --upgrade -r requirements.txt
If you cloned the repo:
git pull
cd core && uv pip install --python .venv/bin/python -e . --no-deps
The second line is only so the UI reports the new version; the pull is what carries the fix.
Restart Core either way.
Known
The 19 minute caption pass is the real cost on a small card, not the step time. Fixing it means streaming the encoder to the card in 4-bit rather than running it on CPU, which is the next thing to look at.
Full Changelog: v1.2.62...v1.2.63