配置
蒸馏模式的配置。
- ModeloptConfig KDLossConfig
-
知识蒸馏模式的配置。
此模式用于从教师模型中提炼知识到学生模型。
显示默认配置为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]