From a8992279b6ee637d4bf934720be70e5a9f130469 Mon Sep 17 00:00:00 2001 From: Roland Tannous Date: Mon, 9 Mar 2026 16:36:44 +0000 Subject: [PATCH] fix: split dataset 80/20 when eval split matches train split --- studio/backend/core/training/trainer.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/studio/backend/core/training/trainer.py b/studio/backend/core/training/trainer.py index 22c0f34075..cfc04e572e 100644 --- a/studio/backend/core/training/trainer.py +++ b/studio/backend/core/training/trainer.py @@ -1868,7 +1868,8 @@ class UnslothTrainer: # Resolve eval split from a separate HF split (explicit or auto-detected) if eval_enabled: - if eval_split: + effective_train = train_split or "train" + if eval_split and eval_split != effective_train: # Explicit eval split provided - load it directly print(f"Loading explicit eval split: '{eval_split}'\n") eval_load_kwargs = {"path": dataset_source, "split": eval_split} @@ -1877,6 +1878,9 @@ class UnslothTrainer: eval_dataset = load_dataset(**eval_load_kwargs) has_separate_eval_source = True print(f"Loaded eval split '{eval_split}' with {len(eval_dataset)} rows\n") + elif eval_split and eval_split == effective_train: + # Same split as training — will do 80/20 split after formatting + print(f"Eval split '{eval_split}' is the same as train split — will split 80/20\n") else: # Auto-detect eval split from HF (returns a separate dataset, or None) eval_dataset = self._auto_detect_eval_split_from_hf(