diff --git a/trl/trainer/grpo_trainer.py b/trl/trainer/grpo_trainer.py index fa55a4bb8e8..17d97066700 100644 --- a/trl/trainer/grpo_trainer.py +++ b/trl/trainer/grpo_trainer.py @@ -500,10 +500,12 @@ def _prepare_inputs(self, inputs: dict[str, Union[torch.Tensor, Any]]) -> dict[s prompt_completion_ids = torch.cat([prompt_ids, completion_ids], dim=1) else: # Regular generation path - with unwrap_model_for_generation(self.model, self.accelerator) as unwrapped_model: + with unwrap_model_for_generation(self.model_wrapped, self.accelerator) as unwrapped_model: + unwrapped_model.eval() # Needed to make sure use_cache works with gradient_checkpointing prompt_completion_ids = unwrapped_model.generate( prompt_ids, attention_mask=prompt_mask, generation_config=self.generation_config ) + self.model_wrapped.train() # Compute prompt length and extract completion ids prompt_length = prompt_ids.size(1)