def METHOD_NAME(self, model_file_path=None):
    self.model = Model(model_file_path)
    initial_lr = config.lr_coverage if config.is_coverage else config.lr
    params = (
        list(self.model.encoder.parameters())
        + list(self.model.decoder.parameters())
        + list(self.model.reduce_state.parameters())
    )
    self.optimizer = Adagrad(
        parameters=params,
        learning_rate=initial_lr,
        initial_accumulator_value=config.adagrad_init_acc,
        epsilon=1.0e-10,
        grad_clip=paddle.nn.ClipGradByGlobalNorm(clip_norm=config.max_grad_norm),
    )
    start_iter, start_loss = 0, 0
    if model_file_path is not None:
        start_iter = int(model_file_path.split("_")[-2])
        start_loss = float(model_file_path.split("_")[-1].replace(os.sep, ""))
        if not config.is_coverage:
            self.optimizer.set_state_dict(paddle.load(os.path.join(model_file_path, "optimizer.params")))
    return start_iter, start_loss