Step 1: Pick Your Base and Fine-Tuned Models
Suggested folder structure
project/data/mtbench_conversations.jsongrounded_eval.jsonoutputs/mtbench_results.jsonhallucination_results.jsonevaluate_mtbench.pyevaluate_grounding.py
This structure separates concerns cleanly. Your data/ directory holds evaluation datasets that should remain stable across runs—these are your ground truth. The outputs/ directory contains ephemeral results that change with each evaluation run. This separation makes it easy to track which inputs produced which outputs, and prevents accidental overwrites of your carefully curated test sets.
The two Python scripts sit at the project root for easy execution. Each script is self-contained and can be run independently, which means you can evaluate conversational ability without re-running hallucination tests, and vice versa. This modularity becomes critical when you're iterating quickly and only need to verify specific aspects of model behavior.
Keep your evaluation prompts under version control. Your evaluation set is as valuable as your training set. In fact, it may be more valuable—your training data shapes what the model learns, but your evaluation data shapes what you measure, and therefore what you optimize for. If your evaluation set drifts or degrades over time, you lose the ability to make meaningful comparisons across model versions.
Version control also creates accountability. When you discover that your model regressed on multi-turn conversations, you want to be able to check out the exact evaluation set that revealed the regression. When a colleague questions why a model scored poorly, you want to point to the specific test cases and their historical versions. And when you improve your evaluation methodology, you want to be able to re-run old experiments with new metrics to see if previous conclusions still hold.
Treat these files as code, not as throwaway artifacts. Add meaningful commit messages when you change them. Document why you added or removed specific test cases. Create branches when you're experimenting with alternative evaluation strategies. This discipline compounds over time and transforms evaluation from a checkbox into a genuine engineering practice.