model_inputs: Mapping[str, Any],
loss_inputs: Mapping[str, Any],
) -> torch.Tensor:
"""Default graph trace function for Transformer-style text training."""
outputs = model(**dict(model_inputs), use_cache=False)
labels = loss_inputs.get("labels")
loss = self.base.loss_fn(model_output=outputs, labels=labels)
if isinstance(loss, dict):
return torch.stack(list(loss.values())).sum()
return loss
def set_pytree_pre_hook(self, hook: Any) -> "GraphTextTrainer":
"""Register a tracer pre-hook on the underlying graph executor."""
self.base_graph_trainer.set_pytree_pre_hook(hook)
return self
def forward_backward_step(
self,
data_iterator: Any,
num_micro_steps: int,
) -> tuple[torch.Tensor, dict[str, torch.Tensor]]: