Comparing 6 parameter-efficient fine-tuning methods on the same model, dataset, and hardware. Built to answer one question: which method should you actually use?
- Model: HuggingFaceTB/SmolLM2-1.7B (base)
- Dataset: medalpaca/medical_meadow_medqa (10,178 samples)
- Hardware: Kaggle T4 GPU (free tier)
- Framework: HuggingFace PEFT + TRL
| Method | Trainable params | % of model |
|---|---|---|
| LoRA | 3.1M | 0.18% |
| QLoRA | 3.1M | 0.35% |
| DoRA | 3.34M | 0.19% |
| VeRA | 0.29M | 0.02% |
| AdaLoRA | 4.72M | 0.28% |
| IA3 | 0.29M | 0.02% |
- IA3 matched LoRA quality with 10x fewer parameters
- VeRA hit a hard ceiling — only 9.5% loss improvement
- AdaLoRA's 60% loss drop is misleading due to SVD warmup
- QLoRA is the honest default for free GPU users
- DoRA consistently achieved the best final loss
Each notebook is self-contained and runs on free Kaggle T4. Just open and run top to bottom.
Testing safety alignment degradation across all 6 methods after fine-tuning on benign data.
If you use this work please star the repo and link back.


