参数管理

简介 Brief Introduction

框架中一些常用的参数说明文档。

数据相关参数

UniversalDataModule

该模块是通用的DataModule,通常用于fs_datasets下的数据集,或者数据处理逻辑能用一个函数描述的datasets,都用直接使用该DataModule。 datamodule.datasets是一个dict,结构类似于:

{
    "train":datasets,
    "validation":datasets,
    "test":datasets
}
  • num_workers:fs_datasets加载数据时的进程数,可以根据CPU的数目配置

  • dataloader_workers:dataloader处理数据的进程数,这个配置通常2-4就足够了,配置过大反而会导致处理数据效率降低甚至卡死的情况

  • train_batchsize:训练batchsize

  • val_batchsize:验证batchsize

  • test_batchsize:测试batchsize

  • datasets_name:fs_datasets的名字,如果不传入的话则不会加载数据,需要用户显示指定datamodule.datasets=xxxxx

  • train_datasets_field:self.datasets中训练集所对应的key

  • val_datasets_field:self.datasets中验证集所对应的key(有时val数据集会取用test集,所以设定了这三个参数做兼容

  • test_datasets_field:self.datasets中测试集所对应的key

  • sampler_type:封神框架中自建的sampler,用于支持大数据集

模型相关参数

add_module_args 通用模型参数

这个函数都是包括了一些常用的、跟特定模型无关的参数。

  • learning_rate:学习率

  • weight_decay:权重衰减

  • warmup_ratio:学习率warmup比例,比如设定是0.1,总步数是100,则前10步会warmup到最大值,并开始衰减

  • warmup_steps: 学习率warmup步数,优先级大于warmup_ratio

  • adam_beta1:adam参数

  • adam_beta2:adam参数

  • adam_epsilon:adam参数

  • model_path:模型路径

  • scheduler_type:支持多种scheduler,包括['linear', 'cosine', 'cosine_with_restarts', 'polynomial', 'constant', 'constant_with_warmup']

训练相关参数

Lightning Trainer

Lightning Trainer参数可以参考文档Doc

这里列举一些比较常用的:

  • max_epochs:设定总共epoch数

  • max_steps:设定总共的steps数,跟max_epochs冲突

  • gpus: 机器的gpu数量

  • num_nodes:机器数

  • strategy:分布式策略,常用的比如ddp, deepspeed_zero_stage_1,所有支持的可以参考lightning文档

  • gradient_clip_val:梯度裁剪

  • check_val_every_n_epoch:多少个epoch后做一次validation

  • val_check_interval:在epoch内做validation的频率,如果是float则是按比例,如果是int型则是按steps算

  • precision:模型精度

  • default_root_dir:设定日志存放的目录