llmcompressor.core.state
用于管理 LLM Compressor 状态的模块。
提供用于保存和更新与数据、硬件和模型压缩相关的状态信息的类。
类
-
Data–用于保存训练、验证数据的类,
-
Hardware–用于保存有关所用硬件信息的类。
-
ModifiedState–用于表示修改后的模型、优化器和损失的类。
-
State–状态类保存有关当前压缩状态的信息。
Data dataclass
Data(
train: Optional[Any] = None,
val: Optional[Any] = None,
test: Optional[Any] = None,
calib: Optional[Any] = None,
)
用于保存训练、验证、测试和/或校准的各种数据集的类。每个数据集都是一个 ModifiableData 实例。
参数
-
(trainOptional[Any], 默认值:None) –训练数据集
-
(验证Optional[Any], 默认值:None) –验证数据集
-
(testOptional[Any], 默认值:None) –测试数据集
-
(calibOptional[Any], 默认值:None) –校准数据集
Hardware dataclass
Hardware(
device: Optional[str] = None,
devices: Optional[List[str]] = None,
rank: Optional[int] = None,
world_size: Optional[int] = None,
local_rank: Optional[int] = None,
local_world_size: Optional[int] = None,
distributed: Optional[bool] = None,
distributed_strategy: Optional[str] = None,
)
用于保存有关所用硬件信息的类。
参数
-
(deviceOptional[str], 默认值:None) –用于训练的当前设备
-
(devicesOptional[List[str]], 默认值:None) –将用于训练的所有设备列表
-
(排名Optional[int], 默认值:None) –当前设备的 rank
-
(world_sizeOptional[int], 默认值:None) –使用的设备总数
-
(local_rankOptional[int], 默认值:None) –当前设备的本地 rank
-
(local_world_sizeOptional[int], 默认值:None) –本地机器上使用的设备总数
-
(distributedOptional[bool], default:None) –是否正在使用分布式训练
-
(distributed_strategyOptional[str], 默认值:None) –正在使用的分布式策略
ModifiedState dataclass
用于表示修改后的模型、优化器和损失的类。
参数
-
(modelOptional[Any]) –修改后的模型
-
(优化器Optional[Any]) –修改后的优化器
-
(损失Optional[Any]) –修改后的损失
-
(modifier_dataOptional[List[Dict[str, Any]]]) –用于修改模型、优化器和损失的修饰符数据
使用给定的参数初始化 ModifiedState。
参数
-
(modelAny) –修改后的模型
-
(优化器Any) –修改后的优化器
-
(损失Any) –修改后的损失
-
(modifier_dataList[Dict[str, Any]]) –用于修改模型、优化器和损失的修饰符数据
源代码位于 llmcompressor/core/state.py
State dataclass
State(
model: Any = None,
teacher_model: Any = None,
optimizer: Any = None,
optim_wrapped: bool = None,
loss: Any = None,
batch_data: Any = None,
data: Data = Data(),
hardware: Hardware = Hardware(),
loggers: Optional[LoggerManager] = None,
model_log_cadence: Optional[float] = None,
_last_log_step: Union[float, int, None] = None,
)
状态类保存有关当前压缩状态的信息。
参数
-
(modelAny, 默认值:None) –用于压缩的模型
-
(teacher_modelAny, 默认值:None) –用于压缩的教师模型
-
(优化器Any, 默认值:None) –用于训练的优化器
-
(optim_wrappedbool, 默认值:None) –优化器是否已被包装
-
(损失Any, 默认值:None) –用于训练的损失函数
-
(batch_dataAny, 默认值:None) –当前用于压缩的批次数据
-
(dataData, default:Data()) –用于训练、验证、测试和/或校准的数据集,包装在 Data 实例中
-
(硬件Hardware, default:Hardware()) –硬件实例,包含有关正在使用的目标硬件的信息
-
(loggersOptional[LoggerManager], default:None) –LoggerManager 实例,包含所有要记录的日志记录器
-
(model_log_cadenceOptional[float], 默认值:None) –记录模型信息相对于 epoch 的节奏。如果为 1,则每个 epoch 记录一次。如果为 2,则每隔一个 epoch 记录一次,依此类推。默认值为 1。
方法
-
update–使用给定参数更新状态。
属性
-
compression_ready(bool) –检查模型和优化器是否已设置为进行压缩。
compression_ready property
检查模型和优化器是否已设置为进行压缩。
返回
-
bool–如果模型和优化器已设置,则为 True,否则为 False
update
update(
model: Any = None,
teacher_model: Any = None,
optimizer: Any = None,
attach_optim_callbacks: bool = True,
train_data: Any = None,
val_data: Any = None,
test_data: Any = None,
calib_data: Any = None,
copy_data: bool = True,
start: float = None,
steps_per_epoch: int = None,
batches_per_step: int = None,
loggers: Union[
None, LoggerManager, List[BaseLogger]
] = None,
model_log_cadence: Optional[float] = None,
**kwargs,
) -> Dict
使用给定参数更新状态。
参数
-
(modelAny, 默认值:None) –用于更新状态的模型
-
(teacher_modelAny, 默认值:None) –用于更新状态的教师模型
-
(优化器Any, 默认值:None) –用于更新状态的优化器
-
(attach_optim_callbacksbool, 默认值:True) –是否附加优化器回调
-
(train_dataAny, 默认值:None) –用于更新状态的训练数据
-
(val_dataAny, 默认值:None) –用于更新状态的验证数据
-
(test_dataAny, 默认值:None) –用于更新状态的测试数据
-
(calib_dataAny, 默认值:None) –用于更新状态的校准数据
-
(copy_databool, 默认值:True) –是否复制数据
-
(startfloat, 默认值:None) –用于更新状态的起始索引
-
(steps_per_epochint, 默认值:None) –用于更新状态的每个 epoch 的步数
-
(batches_per_stepint, 默认值:None) –用于更新状态的每个步骤的批次数量
-
(loggersUnion[None, LoggerManager, List[BaseLogger]], default:None) –用于设置记录重要信息和里程碑的指标管理器,也接受 BaseLogger 列表
-
(model_log_cadenceOptional[float], 默认值:None) –记录模型信息相对于 epoch 的节奏。如果为 1,则每个 epoch 记录一次。如果为 2,则每隔一个 epoch 记录一次,依此类推。默认值为 1。
-
–kwargs用于更新状态的额外关键字参数
返回
-
Dict–更新后的状态字典
源代码位于 llmcompressor/core/state.py
127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 | |