diff --git a/trl/trainer/grpo_trainer.py b/trl/trainer/grpo_trainer.py index 5e8064fb21d..c4d7c5efaa6 100644 --- a/trl/trainer/grpo_trainer.py +++ b/trl/trainer/grpo_trainer.py @@ -435,6 +435,7 @@ def compute_loss(self, model, inputs, return_outputs=False, num_items_in_batch=N micro_bsz = self.args.per_device_micro_batch_size or bsz # default to full batch if not set prompt_length = prompt_inputs["input_ids"].size(1) prompts = [prompt for prompt in prompts for _ in range(self.num_generations)] + prompt_attn_mask = prompt_inputs["attention_mask"].repeat_interleave(self.num_generations, dim=0) # Prepare reward kwargs before looping through microbatches if any(not isinstance(reward_func, PreTrainedModel) for reward_func in self.reward_funcs): @@ -461,9 +462,11 @@ def compute_loss(self, model, inputs, return_outputs=False, num_items_in_batch=N current_bsz = micro_completion_ids.size(0) # last one may be