llmcompressor.core.session
为 LLM 压缩工作流提供压缩会话管理。
提供主要的 CompressionSession 类来管理压缩工作流,包括生命周期管理、事件处理、回调注册和状态跟踪。
类
-
CompressionSession–用于压缩的会话,负责保持生命周期
CompressionSession
用于压缩的会话,负责保持当前压缩会话的生命周期和状态
方法
-
event–触发当前 CompressionSession 的事件。
-
finalize–完成压缩会话。这将运行 finalize 方法
-
get_serialized_recipe–:return: 当前已编译配方的序列化字符串
-
initialize–初始化压缩会话。这将运行 initialize 方法
-
log–记录当前事件类型的模型和损失信息
-
reset–将会话重置为其初始状态
-
reset_stage–重置会话以开始新阶段,配方和模型保持不变
属性
-
lifecycle(CompressionLifecycle) –Lifecycle 用于跟踪压缩的进度
-
state(State) –当前压缩会话的状态。State 实例
Source code in llmcompressor/core/session.py
lifecycle property
event
event(
event_type: EventType,
batch_data: Optional[Any] = None,
loss: Optional[Any] = None,
**kwargs,
) -> ModifiedState
触发当前 CompressionSession 的事件。
参数
-
(event_typeEventType) –要调用的事件类型
-
(batch_dataOptional[Any], 默认值:None) –用于事件的批数据
-
(损失Optional[Any], 默认值:None) –用于事件的损失(如果存在)
-
–kwargs传递给生命周期事件方法的附加 kwargs
返回
-
ModifiedState–调用事件后会话的修改状态
Source code in llmcompressor/core/session.py
finalize
完成压缩会话。这将为会话生命周期中的每个修改器运行 finalize 方法。这还将把会话的状态设置为已完成状态。
参数
-
–kwargs传递给生命周期的 finalize 方法的附加 kwargs
返回
-
ModifiedState–完成后会话的修改状态
Source code in llmcompressor/core/session.py
get_serialized_recipe
返回
-
Optional[str]–当前已编译配方的序列化字符串
Source code in llmcompressor/core/session.py
initialize
initialize(
recipe: Union[
str, List[str], Recipe, List[Recipe], None
] = None,
recipe_stage: Union[str, List[str], None] = None,
recipe_args: Union[Dict[str, Any], None] = None,
model: Optional[Any] = None,
teacher_model: Optional[Any] = None,
optimizer: Optional[Any] = None,
attach_optim_callbacks: bool = True,
train_data: Optional[Any] = None,
val_data: Optional[Any] = None,
test_data: Optional[Any] = None,
calib_data: Optional[Any] = None,
copy_data: bool = True,
start: Optional[float] = None,
steps_per_epoch: Optional[int] = None,
batches_per_step: Optional[int] = None,
loggers: Union[
None, LoggerManager, List[BaseLogger]
] = None,
**kwargs,
) -> ModifiedState
初始化压缩会话。这将为会话生命周期中的每个修改器运行 initialize 方法。这还将把会话的状态设置为已初始化状态。
参数
-
(recipeUnion[str, List[str], Recipe, List[Recipe], None], default:None) –用于压缩的配方,可以是配方文件的路径、原始配方字符串、配方对象或配方对象列表。
-
(recipe_stageUnion[str, List[str], None], default:None) –要针对的压缩阶段
-
(recipe_argsUnion[Dict[str, Any], None], default:None) –用于覆盖配方默认值的参数
-
(modelOptional[Any], 默认值:None) –要压缩的模型
-
(teacher_modelOptional[Any], 默认值:None) –用于知识蒸馏的教师模型
-
(优化器Optional[Any], 默认值:None) –用于压缩的优化器
-
(attach_optim_callbacksbool, 默认值:True) –如果为 True,则将优化器回调附加到压缩生命周期,否则为 False
-
(train_dataOptional[Any], 默认值:None) –用于压缩的训练数据
-
(val_dataOptional[Any], 默认值:None) –用于压缩的验证数据
-
(test_dataOptional[Any], 默认值:None) –用于压缩的测试数据
-
(calib_dataOptional[Any], 默认值:None) –用于压缩的校准数据
-
(copy_databool, 默认值:True) –如果为 True,则复制数据,否则为 False
-
(startOptional[float], 默认值:None) –用于压缩的起始 epoch
-
(steps_per_epochOptional[int], 默认值:None) –用于压缩的每个 epoch 的步数
-
(batches_per_stepOptional[int], 默认值:None) –用于压缩的每步的批次数
-
(loggersUnion[None, LoggerManager, List[BaseLogger]], default:None) –用于设置日志记录重要信息和里程碑的指标管理器,也接受 BaseLogger 列表
-
–kwargs传递给生命周期的 initialize 方法的附加 kwargs
返回
-
ModifiedState–初始化后会话的修改状态
Source code in llmcompressor/core/session.py
log
记录当前事件类型的模型和损失信息
参数
-
(event_typeEventType) –要记录的事件类型
-
(损失Optional[Any], 默认值:None) –要记录的损失(如果存在)