Everyone says "just use the free Colab GPU." So I did — and then I ran the identical fine-tuning job on Kaggle and Lightning AI to see if the advice holds up in 2026.
The job: LoRA fine-tune of Qwen2.5-1.5B on 8,000 instruction pairs, 3 epochs, batch size 8, bfloat16, via trl's SFTTrainer. Same notebook, same seed, same dataset from Hugging Face Hub.
What the Free Tiers Actually Give You
| Colab Free | Kaggle | Lightning AI Free | |
|---|---|---|---|
| GPU | T4 (16GB), lottery | T4 x2 or P100, guaranteed | T4 (16GB) |
| Session limit | ~12h, throttles you | 30h GPU/week quota | 22 GPU-hrs/month |
| Idle disconnect | Aggressive (~30-60min) | Lenient | Lenient |
| Persistent storage | ❌ (Drive mount is slow) | 20GB output + datasets | ✅ 50GB persistent |
| Guaranteed GPU | ❌ "None available" happens | ✅ (once quota starts) | ✅ |
The Results
| Metric | Colab Free | Kaggle | Lightning AI |
|---|---|---|---|
| Wait to get GPU | 0-40 min (lottery) | ~2 min | ~1 min |
| Training time (3 epochs) | 2h 41m | 2h 38m (T4) / 1h 52m (P100) | 2h 44m |
| Disconnected mid-run | 2 times | 0 | 0 |
| Total wall-clock incl. restarts | 6h 10m | 2h 45m | 2h 50m |
| Final eval loss | 0.812 | 0.809 | 0.811 |
Same model, same quality. But Colab free cost me 2 restarts and 3+ extra hours because it killed my session at epoch 2 — twice. Checkpointing saved me, but re-warming from Google Drive added ~10 min each time.
The Uncomfortable Truth
Kaggle is the best free GPU in 2026 and nobody recommends it. Everyone's mental model is stuck in 2020 when Kaggle was "for competitions." Meanwhile:
- 30 GPU-hours/week is ~4x Colab's practical quota before throttling
- P100 availability is frequent, and P100 is ~45% faster than T4 for training
- Kaggle Datasets mount fast (unlike the Google Drive fuse mount, which does ~5MB/s on a good day)
# The pattern that saved me on all three — checkpoint to survive any disconnect:
from transformers import TrainingArguments
args = TrainingArguments(
output_dir="/kaggle/working/ckpt", # swap per-platform
save_strategy="steps",
save_steps=200,
save_total_limit=2,
bf16=True,
per_device_train_batch_size=8,
gradient_accumulation_steps=2,
num_train_epochs=3,
report_to="none",
)
# Resume anywhere: trainer.train(resume_from_checkpoint=True)
Colab free still wins for one thing: teaching/demoing, because the UX is what everyone knows. But for actual weekend experiments, the GPU lottery plus idle-kills make it the worst of the three.
I prototyped the training script and the platform-abstraction shim with MonkeyCode — free, open-source, runs against local Ollama models too: https://ly.cyberserval.tech/iIETXiF
What's your free GPU setup in 2026 — still loyal to Colab, or have you moved? Anyone running the Colab → Kaggle → Lightning chain to stack 50+ free hours a week?
Top comments (0)