diff --git a/unirl/train/backend/base_backend.py b/unirl/train/backend/base_backend.py index 936b504c1..549b2e4a2 100644 --- a/unirl/train/backend/base_backend.py +++ b/unirl/train/backend/base_backend.py @@ -308,6 +308,8 @@ def optimizer_step(self, *, max_grad_norm: float) -> float: if self.ema is not None: self.ema.step(self._optimizer_step_count) self._optimizer_step_count += 1 + # Release consumed grads before train-state offload. + self.optimizer.zero_grad(set_to_none=True) return grad_norm def on_rollout_end(self) -> None: