class_docstr: This class mirrors deepspeed functionality. Not all changes are implemented in this version.
  
  See TorchEngineFull for more modifications.
class_docstr_tok: ["This","class","mirrors","deepspeed","functionality",".","Not","all","changes","are","implemented","in","this","version",".","See","TorchEngineFull","for","more","modifications","."]
docstr: Tokens in each microbatch step.
docstr_tok: ["Tokens","in","each","microbatch","step","."]
code: def record_tokens_per_step(self):
      """Tokens in each microbatch step."""
      if not self.sequence_curriculum:
          return self.current_seq_length * self.cfg_impl.microbatch_size
      else:
          if self.sequence_unfold:
              # Same number of tokens in this case:
              return (
                  self.current_seq_length
                  * (self.data_seq_length // self.current_seq_length)
                  * self.cfg_impl.microbatch_size
              )
          else:
              # Reduced number of tokens here:
              return (
                  self.current_seq_length
                  * self.cfg_impl.microbatch_size
              )
  
imports: import torch
  import torch._inductor.utils
  import os
  import json
  from omegaconf import OmegaConf
  from functools import partial
  from contextlib import nullcontext
  import time
  import logging
  import transformers
  from safetensors.torch import load_file, save_file
  from transformers.utils.generic import working_or_temp_dir
  from torch.distributed.optim import ZeroRedundancyOptimizer
  from .utils import group_parameters, prepare_pretraining_dataloader, update_ema, updated_latest_weight_average
  from .optimizers.schedulers import get_schedule_fn
  from .optimizers import Adahessian, AdamWScale, Shampoo, LARS, SAM, ProgressiveBatching, AGD, Sophia
  import warnings
label_desc: Use image node_id 6 for calling the TorchEngineFull obj's underlying member method code with example usage: obj.record_tokens_per_step() and returns: unknown, unknown, unknown