diff --git a/studio/backend/core/training/inference/OuteTTS b/studio/backend/core/training/inference/OuteTTS new file mode 160000 index 0000000000..59d896747a --- /dev/null +++ b/studio/backend/core/training/inference/OuteTTS @@ -0,0 +1 @@ +Subproject commit 59d896747aa0a6a207837e7da2d6921805eae684 diff --git a/studio/backend/core/training/trainer.py b/studio/backend/core/training/trainer.py index e2d03e53b5..a36c45ca36 100644 --- a/studio/backend/core/training/trainer.py +++ b/studio/backend/core/training/trainer.py @@ -2087,12 +2087,17 @@ class UnslothTrainer: elif self._audio_type == 'snac': # Orpheus: language model with SNAC codec tokens — plain HF Trainer - from transformers import Trainer as HFTrainer, TrainingArguments + # DataCollatorForSeq2Seq dynamically pads variable-length sequences per batch + # (text + audio codes vary in length) and pads labels with -100. + from transformers import Trainer as HFTrainer, TrainingArguments, DataCollatorForSeq2Seq config = self._build_audio_training_args(training_args, output_dir) self.trainer = HFTrainer( model=self.model, train_dataset=dataset, args=TrainingArguments(**config), + data_collator=DataCollatorForSeq2Seq( + tokenizer=self.tokenizer, padding=True, pad_to_multiple_of=8, + ), ) self.trainer.add_callback(self._create_progress_callback())