llmcompressor.core.events
LLM Compressor Core Events Package
This package provides the core components and lifecycle management for events used in the LLM Compressor framework. It includes definitions for various event types and lifecycles that are critical for managing the state and execution flow of the model compression and training processes.
Modules:
-
event–Module for defining and managing events in the LLM Compressor.
Classes:
-
Event–A class for defining an event that can be triggered during sparsification.
-
EventType–An Enum for defining the different types of events that can be triggered
Event dataclass
Event(
type_: Optional[EventType] = None,
steps_per_epoch: Optional[int] = None,
batches_per_step: Optional[int] = None,
invocations_per_step: int = 1,
global_step: int = 0,
global_batch: int = 0,
)
A class for defining an event that can be triggered during sparsification.
Parameters:
-
(type_Optional[EventType], default:None) –The type of event.
-
(steps_per_epochOptional[int], default:None) –The number of steps per epoch.
-
(batches_per_stepOptional[int], default:None) –The number of batches per step where step is an optimizer step invocation. For most pathways, these are the same. See the invocations_per_step parameter for more details when they are not.
-
(invocations_per_stepint, default:1) –The number of invocations of the step wrapper before optimizer.step was called. Generally can be left as 1 (default). For older amp pathways, this is the number of times the scaler wrapper was invoked before the wrapped optimizer step function was called to handle accumulation in fp16.
-
(global_stepint, default:0) –The current global step.
-
(global_batchint, default:0) –The current global batch.
Methods:
-
new_instance–Creates a new instance of the event with the provided keyword arguments.
-
should_update–Determines if the event should trigger an update.
Attributes:
-
current_index(float) –Calculates the current index of the event.
-
epoch(int) –Calculates the current epoch.
-
epoch_based(bool) –Determines if the event is based on epochs.
-
epoch_batch(int) –Calculates the current batch within the current epoch.
-
epoch_full(float) –Calculates the current epoch with the fraction of the current step.
-
epoch_step(int) –Calculates the current step within the current epoch.
current_index property writable
Calculates the current index of the event.
Returns:
-
float–The current index of the event, which is either the global step or the epoch with the fraction of the current step.
Raises:
-
ValueError–if the event is not epoch based or if the steps per epoch are too many.
epoch property
Calculates the current epoch.
Returns:
-
int–The current epoch.
Raises:
-
ValueError–if the event is not epoch based.
epoch_based property
Determines if the event is based on epochs.
Returns:
-
bool–True if the event is based on epochs, False otherwise.
epoch_batch property
Calculates the current batch within the current epoch.
Returns:
-
int–The current batch within the current epoch.
Raises:
-
ValueError–if the event is not epoch based.
epoch_full property
Calculates the current epoch with the fraction of the current step.
Returns:
-
float–The current epoch with the fraction of the current step.
Raises:
-
ValueError–if the event is not epoch based.
epoch_step property
Calculates the current step within the current epoch.
Returns:
-
int–The current step within the current epoch.
Raises:
-
ValueError–if the event is not epoch based.
new_instance
Creates a new instance of the event with the provided keyword arguments.
Parameters:
-
–kwargsKeyword arguments to set in the new instance.
Returns:
-
Event–A new instance of the event with the provided kwargs.
Source code in llmcompressor/core/events/event.py
should_update
Determines if the event should trigger an update.
Parameters:
-
(startOptional[float]) –The start index to check against, set to None to ignore start.
-
(endOptional[float]) –The end index to check against, set to None to ignore end.
-
(updateOptional[float]) –The update interval, set to None or 0.0 to always update, otherwise must be greater than 0.0, defaults to None.
Returns:
-
bool–True if the event should trigger an update, False otherwise.
Source code in llmcompressor/core/events/event.py
EventType
Bases: Enum
An Enum for defining the different types of events that can be triggered during model compression lifecycles. The purpose of each EventType is to trigger the corresponding modifier callback during training or post training pipelines.
Parameters:
-
–INITIALIZEEvent type for initialization.
-
–FINALIZEEvent type for finalization.
-
–BATCH_STARTEvent type for the start of a batch.
-
–LOSS_CALCULATEDEvent type for when loss is calculated.
-
–BATCH_ENDEvent type for the end of a batch.
-
–CALIBRATION_EPOCH_STARTEvent type for the start of a calibration epoch.
-
–SEQUENTIAL_EPOCH_ENDEvent type for the end of a layer calibration epoch, specifically used by
src/llmcompressor/pipelines/sequential/pipeline.py -
–CALIBRATION_EPOCH_ENDEvent type for the end of a calibration epoch.
-
–OPTIM_PRE_STEPEvent type for pre-optimization step.
-
–OPTIM_POST_STEPEvent type for post-optimization step.