Training arguments.
(parser)
| 99 | |
| 100 | |
| 101 | def add_training_args(parser): |
| 102 | """Training arguments.""" |
| 103 | |
| 104 | group = parser.add_argument_group('train', 'training configurations') |
| 105 | |
| 106 | # --------------- Core hyper-parameters --------------- |
| 107 | group.add_argument('--experiment-name', type=str, default="MyModel", |
| 108 | help="The experiment name for summary and checkpoint." |
| 109 | "Will load the previous name if mode==pretrain and with --load ") |
| 110 | group.add_argument('--train-iters', type=int, default=None, |
| 111 | help='total number of iterations to train over all training runs') |
| 112 | group.add_argument('--batch-size', type=int, default=4, |
| 113 | help='batch size on a single GPU. batch-size * world_size = total batch_size.') |
| 114 | group.add_argument('--lr', type=float, default=1.0e-4, |
| 115 | help='initial learning rate') |
| 116 | group.add_argument('--mode', type=str, |
| 117 | default='pretrain', |
| 118 | choices=['pretrain', # from_scratch / load ckpt for continue pretraining. |
| 119 | 'finetune', # finetuning, auto-warmup 100 iters, new exp name. |
| 120 | 'inference' # don't train. |
| 121 | ], |
| 122 | help='what type of task to use, will influence auto-warmup, exp name, iteration') |
| 123 | group.add_argument('--seed', type=int, default=1234, help='random seed') |
| 124 | group.add_argument('--zero-stage', type=int, default=0, choices=[0, 1, 2, 3], |
| 125 | help='deepspeed ZeRO stage. 0 means no ZeRO.') |
| 126 | |
| 127 | # --------------- Optional hyper-parameters --------------- |
| 128 | |
| 129 | # Efficiency. |
| 130 | group.add_argument('--checkpoint-activations', action='store_true', |
| 131 | help='checkpoint activation to allow for training ' |
| 132 | 'with larger models and sequences. become slow (< 1.5x), save CUDA memory.') |
| 133 | # Inessential |
| 134 | group.add_argument('--checkpoint-num-layers', type=int, default=1, |
| 135 | help='chunk size (number of layers) for checkpointing. ') |
| 136 | group.add_argument('--checkpoint-skip-layers', type=int, default=0, |
| 137 | help='skip the last N layers for checkpointing.') |
| 138 | |
| 139 | group.add_argument('--fp16', action='store_true', |
| 140 | help='Run model in fp16 mode') |
| 141 | group.add_argument('--bf16', action='store_true', |
| 142 | help='Run model in bf16 mode') |
| 143 | group.add_argument('--gradient-accumulation-steps', type=int, default=1, |
| 144 | help='run optimizer after every gradient-accumulation-steps backwards.') |
| 145 | |
| 146 | group.add_argument('--profiling', type=int, default=-1, |
| 147 | help='profiling, -1 means no profiling, otherwise means warmup args.profiling iters then profiling.') |
| 148 | group.add_argument('--epochs', type=int, default=None, |
| 149 | help='number of train epochs') |
| 150 | group.add_argument('--log-interval', type=int, default=50, |
| 151 | help='report interval') |
| 152 | group.add_argument('--summary-dir', type=str, default="", help="The directory to store the summary") |
| 153 | group.add_argument('--save-args', action='store_true', |
| 154 | help='save args corresponding to the experiment-name') |
| 155 | |
| 156 | # Learning rate & weight decay. |
| 157 | group.add_argument('--lr-decay-iters', type=int, default=None, |
| 158 | help='number of iterations to decay LR over,' |