配置

蒸馏模式的配置。

ModeloptConfig KDLossConfig

基础:ModeloptBaseConfig

知识蒸馏模式的配置。

此模式用于从教师模型中提炼知识到学生模型。

显示默认配置为JSON
默认配置 (JSON):

{
   "teacher_model": null,
   "criterion": null,
   "loss_balancer": null,
   "expose_minimal_state_dict": true
}

field criterion: _Loss | Dict[Tuple[str, str], _Loss] | None

显示详情

如果是Loss类的实例,蒸馏损失将仅在学生和教师的输出之间计算;如果是格式为{(学生层名称, 教师层名称): 损失模块}的字典,将使用相应的loss_module为每个指定的学生-教师层对计算蒸馏损失。

field expose_minimal_state_dict: bool

显示详情

在返回的封装模型中隐藏教师模型的state_dict。这通过不重复存储教师模型来减少检查点的大小。.. 注意:如果使用FSDP,请设置为False

field loss_balancer: Any | None

显示详情

一个平衡器,用于通过某种加权方案将蒸馏和非蒸馏损失减少为单一值。

field teacher_model: Type[Module] | Tuple | Callable | None

显示详情

用于初始化教师模型的类或可调用对象或元组,使用init_model_from_model_like。这不能已经是nn.Module的实例。

model_dump(*args, **kwargs)

将配置转储到字典中,但避免将教师模型序列化为字典。

这避免了当教师是一个包含可调用对象和参数的元组时的问题。 如果任何参数是数据类,它们会被转储为字典,并且无法恢复它们的类。

Return type:

Dict[str, Any]