Setup model and optimizer.
(args, model_type=None, multi_token=True, num_labels=None, spell_length=None)
| 241 | |
| 242 | |
| 243 | def setup_model_and_optimizer(args, model_type=None, multi_token=True, num_labels=None, spell_length=None): |
| 244 | """Setup model and optimizer.""" |
| 245 | |
| 246 | model = get_model(args, model_type=model_type, multi_token=multi_token, num_labels=num_labels, |
| 247 | spell_length=spell_length) |
| 248 | param_groups = get_optimizer_param_groups(model) |
| 249 | |
| 250 | if args.train_data is not None or args.data_dir is not None and (args.epochs > 0 or args.train_iters > 0): |
| 251 | if args.deepspeed: |
| 252 | print_rank_0("DeepSpeed is enabled.") |
| 253 | |
| 254 | model, optimizer, _, _ = deepspeed.initialize( |
| 255 | model=model, |
| 256 | model_parameters=param_groups, |
| 257 | args=args, |
| 258 | mpu=mpu, |
| 259 | dist_init_required=False |
| 260 | ) |
| 261 | else: |
| 262 | optimizer = get_optimizer(param_groups, args) |
| 263 | lr_scheduler = get_learning_rate_scheduler(optimizer, args) |
| 264 | else: |
| 265 | optimizer, lr_scheduler = None, None |
| 266 | |
| 267 | return model, optimizer, lr_scheduler |
| 268 | |
| 269 | |
| 270 | def backward_step(optimizer, model, lm_loss, args, timers): |
no test coverage detected