llmcompressor.metrics.utils.frequency_manager
用于日志记录的频率管理实用程序。
提供类和函数,用于管理日志记录频率,并在训练和压缩工作流中确定何时记录指标。支持基于 epoch 和基于 step 的日志记录,具有可配置的模式和间隔。
类
-
FrequencyManager–用于管理日志记录和模型更新频率的类
函数
-
log_ready–根据给定参数检查是否已准备好再次记录
FrequencyManager
FrequencyManager(
log_frequency: LogStepType = None,
mode: LoggingModeType = DEFAULT_LOGGING_MODE,
frequency_type: FrequencyType = DEFAULT_FREQUENCY_TYPE,
)
用于管理日志记录和模型更新频率的类
参数
-
(日志频率LogStepType, 默认:None) –记录的频率
-
(模式LoggingModeType, 默认:DEFAULT_LOGGING_MODE) –使用的日志模式,可以是 "on_change" 或 "exact","on_change" 将在自上次记录以来模型更新时进行记录,"exact" 将根据给定频率进行记录,无论模型是否更新。
-
(频率类型FrequencyType, 默认:DEFAULT_FREQUENCY_TYPE) –要使用的频率类型,可以是 "epoch"、"step" 或 "batch" 来控制频率管理器跟踪的内容,例如,如果频率类型是 "epoch",则频率管理器将跟踪自上次日志记录以来已过的 epoch 数,如果频率类型是 "step",则频率管理器将跟踪优化器步骤数
方法
-
log_ready–检查频率管理器是否已准备好记录
-
log_written–将上次记录步骤设置为给定步骤
-
model_updated–将上次模型更新设置为给定步骤
属性
-
is_epoch_frequency_manager(bool) –:return: 如果频率管理器正在跟踪 epoch,则为 True,
-
is_optim_frequency_manager(bool) –:return: 如果频率管理器正在跟踪优化器步骤,则为 True,
-
log_frequency(LogStepType) –:return: 日志频率
Source code in llmcompressor/metrics/utils/frequency_manager.py
is_epoch_frequency_manager property
返回
-
bool–如果频率管理器正在跟踪 epoch,则为 True,否则为 False
is_optim_frequency_manager property
返回
-
bool–如果频率管理器正在跟踪优化器步骤,则为 True,否则为 False
log_ready
检查频率管理器是否已准备好记录 就绪条件: - 日志频率不为 None - 当前日志步数为 None - 当前日志步数大于或等于上次日志步数加上日志频率 - 如果 check_model_update 为 True,或者 self._check_model_update 为 True,那么上次模型更新步数必须大于或等于上次日志步数,并且当前日志步数必须大于或等于上次模型更新步数加上日志频率
参数
-
(当前日志步骤LogStepType) –当前日志步数
-
(检查模型更新bool, 默认值:False) –如果为 True,则检查自上次日志步数以来模型是否已更新,并且自上次模型更新以来是否已过 _log_frequency 步数;默认为 False。
返回
- –
如果已再次达到日志节奏,则为 True,否则为 False
Source code in llmcompressor/metrics/utils/frequency_manager.py
log_written
将上次记录步骤设置为给定步骤
:post-cond: 上次日志步数设置为给定步数
参数
-
(步骤LogStepType, 默认:None) –要将上次日志步数设置为的步数
Source code in llmcompressor/metrics/utils/frequency_manager.py
model_updated
将上次模型更新设置为给定步骤
:post-cond: 上次模型更新步数设置为给定步数
参数
-
(步骤LogStepType, 默认:None) –要将上次模型更新设置为的步数
Source code in llmcompressor/metrics/utils/frequency_manager.py
log_ready
log_ready(
current_log_step: LogStepType | None,
last_log_step: LogStepType | None,
log_frequency: LogStepType | None,
last_model_update_step: LogStepType = None,
check_model_update: bool = False,
)
根据给定参数检查是否已准备好再次记录 (FrequencyManager().log_ready 的无状态版本)
就绪条件: - 日志频率不为 None - 当前日志步数为 None - 当前日志步数大于或等于上次日志步数加上日志频率 - 如果 check_model_update 为 True,那么上次模型更新步数必须大于或等于上次日志步数,并且当前日志步数必须大于或等于上次模型更新步数加上日志频率
参数
-
(当前日志步骤LogStepType | None) –当前日志步数
-
(上次日志步骤LogStepType | None) –上次发生日志记录的步数
-
(日志频率LogStepType | None) –记录的频率
-
(last_model_update_stepLogStepType, 默认:None) –上次更新模型的步数
-
(检查模型更新bool, 默认值:False) –如果为 True,则检查自上次日志步数以来模型是否已更新,并且自上次模型更新以来是否已过 log_frequency 步数;默认为 False。
返回
- –
如果再次达到日志节奏,则为 True,否则为 False