Your "graduation" checklist (if you can do these, you're doing real SFT)
If you've made it through this project and can confidently check off the items below, you're no longer just following a tutorial—you're practicing real-world supervised fine-tuning. These skills form the foundation of nearly every instruction-tuning workflow, from small personal projects to production systems at scale.
✅ You can build a JSON/JSONL instruction dataset
This means you understand how to structure training data in a format that models can learn from. You know how to create instruction-response pairs, format them consistently, and save them in a standard format like JSONL. This is the starting point for all fine-tuning work.
✅ You can clean and split it consistently
Data hygiene matters. You've learned to remove duplicates, fix formatting issues, and split your dataset into training and evaluation sets in a way that prevents data leakage. A clean split ensures your evaluation metrics actually reflect how the model will perform on unseen data.
✅ You can fine-tune a model without OOM (out-of-memory) errors
You've navigated the practical realities of GPU memory constraints. You know how to adjust batch size, sequence length, gradient accumulation, and other parameters to fit training within your hardware limits. This is a critical skill because most real-world fine-tuning happens on limited compute resources.
✅ You can compare base vs tuned behavior
You've set up a simple but effective evaluation loop: run the same prompts through both the base model and your fine-tuned checkpoint, then compare the outputs. This qualitative assessment is often more valuable than a loss curve, especially early in the process when you're trying to understand whether the model is learning the behavior you want.
✅ You can improve quality by editing data (not just tweaking hyperparameters)
This is where most beginners struggle—and where experienced practitioners spend most of their time. You've realized that when outputs aren't good enough, the first place to look isn't the learning rate or the number of epochs. It's the dataset itself. Can you rewrite examples to be clearer? Add more diversity? Remove low-quality samples? This mindset shift is what separates hobbyists from people who ship real models.
That last one is a big deal: in real fine-tuning work, data quality is the lever. Hyperparameters matter, but they're often secondary. If your training examples are inconsistent, vague, or don't reflect the behavior you want, no amount of tuning will fix it. On the other hand, a small, high-quality dataset with clear, well-structured examples can produce surprisingly strong results—even with default hyperparameters. Learning to treat your dataset as the primary variable you control is one of the most important skills you'll develop as you move from tutorials to real projects.