Timestamp#
- class composer.Timestamp(iteration=0, epoch=0, batch=0, sample=0, token=0, epoch_in_iteration=0, token_in_iteration=0, batch_in_epoch=0, sample_in_epoch=0, token_in_epoch=0, total_wct=None, iteration_wct=None, epoch_wct=None, batch_wct=None)[source]#
- Timestamp represents a snapshot of the current training progress. - The timestamp measures training progress in terms of iterations, epochs, batches, samples, tokens, and wall clock time. Timestamps are not updated in-place. - See the Time Guide for more details on tracking time during training. - Parameters
- epoch_in_iteration (int | Time[int], optional) โ The epoch in the iteration. 
- token_in_iteration (int | Time[int], optional) โ The token in the iteration. 
- batch_in_epoch (int | Time[int], optional) โ The batch in the epoch. 
- sample_in_epoch (int | Time[int], optional) โ The sample in the epoch. 
- token_in_epoch (int | Time[int], optional) โ The token in the epoch. 
- total_wct (timedelta, optional) โ The total wall-clock duration. 
- iteration_wct (timedelta, optional) โ The wall-clock duration of the current iteration. 
- epoch_wct (timedelta, optional) โ The wall-clock duration of the current epoch. 
- batch_wct (timedelta, optional) โ The wall-clock duration of the last batch. 
 
 - property batch#
- The total batch count. 
 - property batch_in_epoch#
- The batch count in the current epoch (resets at 0 at the beginning of every epoch). 
 - property batch_wct#
- The wall-clock duration (in seconds) for the last batch. 
 - copy(iteration=None, epoch=None, batch=None, sample=None, token=None, epoch_in_iteration=None, token_in_iteration=None, batch_in_epoch=None, sample_in_epoch=None, token_in_epoch=None, total_wct=None, iteration_wct=None, epoch_wct=None, batch_wct=None)[source]#
- Create a copy of the timestamp. - Any specified values will override the existing values in the returned copy. - Parameters
- epoch_in_iteration (int | Time[int], optional) โ The epoch in the iteration. 
- token_in_iteration (int | Time[int], optional) โ The token in the iteration. 
- batch_in_epoch (int | Time[int], optional) โ The batch in the epoch. 
- sample_in_epoch (int | Time[int], optional) โ The sample in the epoch. 
- token_in_epoch (int | Time[int], optional) โ The token in the epoch. 
- total_wct (timedelta, optional) โ The elapsed duration from the beginning of training. 
- iteration_wct (timedelta, optional) โ The wall-clock duration of the current iteration. 
- epoch_wct (timedelta, optional) โ The wall-clock duration of the current epoch. 
- batch_wct (timedelta, optional) โ The wall-clock duration of the last batch. 
 
- Returns
- Timestamp โ A new timestamp instance, created from a copy, but with any specified values overriding the existing values. 
 
 - property epoch#
- The total epoch count. 
 - property epoch_in_iteration#
- The epoch count in the current iteration (resets at 0 at the beginning of every iteration). 
 - property epoch_wct#
- The wall-clock duration (in seconds) for the current epoch. 
 - property iteration#
- The total iteration count. 
 - property iteration_wct#
- The wall-clock duration (in seconds) for the current iteration. 
 - property sample#
- The total sample count. 
 - property sample_in_epoch#
- The sample count in the current epoch (resets at 0 at the beginning of every epoch). 
 - to_next_batch(samples=0, tokens=0, duration=None)[source]#
- Create a new - Timestamp, advanced to the next batch.- Equivalent to: - >>> timestamp.copy( ... batch=timestamp.batch + 1, ... batch_in_epoch=timestamp.batch_in_epoch + 1, ... sample=timestamp.sample + samples, ... sample_in_epoch=timestamp.sample_in_epoch + samples, ... token = timestamp.token + tokens, ... token_in_epoch=timestamp.token_in_epoch + tokens, ... total_wct=timestamp.total_wct + duration, ... iteration_wct=timestamp.iteration_wct + duration, ... epoch_wct=timestamp.epoch_wct + duration, ... batch_wct=duration, ... ) Timestamp(...) - Note - For accurate time tracking, when doing distributed training, the - samplesand- tokensshould be the total across all ranks for the given batch. This method will not accumulate these counts automatically. If per-rank sample and token counts are provided, these counts will differ across ranks, which could lead towards inconsistent behavior by- Algorithmor- Callbackinstances that use these counts.
 - to_next_epoch(tokens=0, duration=None)[source]#
- Create a new - Timestamp, advanced to the next epoch.- Equivalent to: - >>> timestamp.copy( ... epoch=timestamp.epoch + 1, ... epoch_in_iteration=timestamp.epoch_in_iteration + 1, ... token_in_iteration=timestamp.token_in_iteration + tokens, ... batch_in_epoch=0, ... sample_in_epoch=0, ... token_in_epoch=0, ... total_wct=timestamp.total_wct + duration, ... iteration_wct=timestamp.iteration_wct + duration, ... epoch_wct=datetime.timedelta(seconds=0), ... batch_wct=datetime.timedelta(seconds=0), ... ) Timestamp(...) 
 - to_next_iteration(duration=None)[source]#
- Create a new - Timestamp, advanced to the next iteration.- Equivalent to: - >>> timestamp.copy( ... iteration=timestamp.iteration + 1, ... epoch_in_iteration=0, ... token_in_iteration=0, ... batch_in_epoch=0, ... sample_in_epoch=0, ... token_in_epoch=0, ... total_wct=timestamp.total_wct + duration, ... iteration_wct=datetime.timedelta(seconds=0), ... epoch_wct=datetime.timedelta(seconds=0), ... batch_wct=datetime.timedelta(seconds=0), ... ) Timestamp(...) 
 - property token#
- The total token count. 
 - property token_in_epoch#
- The token count in the current epoch (resets at 0 at the beginning of every epoch). 
 - property token_in_iteration#
- The token count in the current iteration (resets at 0 at the beginning of every iteration). 
 - property total_wct#
- The wall-clock duration (in seconds) from the beginning of training.