跳转至

使用训练参数文件

参数创建

您可以通过前端界面按参考训练配置文件的文档创建参数。


训练代码中的参数使用

基础参数处理

Python模板文件custom-template.py已预定义了训练任务的所有可选/必选参数。要使用配置文件中的自定义参数,您需要在保持原有参数接收的基础上扩展参数解析器。

配置示例

参数标签 参数名称 类型 是否必填
训练周期数 num_train_epoch 1 int

实现代码

# 参数解析
parser = argparse.ArgumentParser()
parser.add_argument('--num_train_epoch', type=int, required=True)

# 解析参数
known_args, unknown_args = parser.parse_known_args()
args = known_args

# 参数赋值
NumTrainEpoch = args.num_train_epoch

关键注意事项: 1. 前端定义与Python代码中的参数类型必须一致
2. 必填参数必须声明required=True
3. 使用以下方式调试参数:

print("已知参数:", known_args)    # 成功解析的参数
print("未知参数:", unknown_args)  # 未能识别的参数


可选参数处理

对于可选参数,使用条件字典解包模式:

trainer = SFTTrainer(
    args=TrainingArguments(
        # 条件参数注入
        **({"num_train_epochs": NumTrainEpoch} if NumTrainEpoch is not None else {}),
        **({"max_steps": MAX_STEPS} if MAX_STEPS is not None else {}),
        # 其他固定参数
        per_device_train_batch_size=4,
        gradient_accumulation_steps=4,
        ...
    ),
    ...
)

最佳实践
1. 始终为条件参数提供空字典{}作为回退
2. 保持配置和代码中的参数命名一致性
3. 在前端标签和代码注释中都记录可选参数