def optimizer_config(self):
        """
        Return a kwarg dictionary that will be used to override optimizer
        args stored in checkpoints. This allows us to load a checkpoint and
        resume training using a different set of optimizer args, e.g., with a
        different learning rate.
        Note : Convergence issues empirically observed with fp16 on.
               Might require search for appropriate configuration.
        """
        return {
            'lr': self.args.lr[0],
            'eps': eval(self.args.adafactor_eps),
            'clip_threshold': self.args.clip_threshold,
            'beta1': self.args.beta1,
            'decay_rate': self.args.decay_rate,
            'scale_parameter': self.args.scale_parameter,
            'weight_decay': self.args.weight_decay,
            'relative_step': self.args.relative_step,
            'warmup_init': self.args.warmup_init,
        }

        Return a kwarg dictionary that will be used to override optimizer
        args stored in checkpoints. This allows us to load a checkpoint and
        resume training using a different set of optimizer args, e.g., with a
        different learning rate.
        Note : Convergence issues empirically observed with fp16 on.
               Might require search for appropriate configuration.
        
infoxlm/fairseq/fairseq/optim/adafactor.py