code: def _add_learning_rate_args(parser):
      group = parser.add_argument_group(title="learning rate")
  
      group.add_argument(
          "--lr",
          type=float,
          default=None,
          help="Initial learning rate. Depending on decay style "
          "and initial warmup, the learing rate at each "
          "iteration would be different.",
      )
      group.add_argument(
          "--lr-decay-style",
          type=str,
          default="linear",
          choices=[
              "constant",
              "linear",
              "cosine",
              "inverse-square-root",
          ],
          help="Learning rate decay function.",
      )
      group.add_argument(
          "--lr-decay-iters",
          type=int,
          default=None,
          help="number of iterations to decay learning rate over,"
          " If None defaults to `--train-iters`",
      )
      group.add_argument(
          "--lr-decay-samples",
          type=int,
          default=None,
          help="number of samples to decay learning rate over,"
          " If None defaults to `--train-samples`",
      )
      group.add_argument(
          "--lr-warmup-fraction",
          type=float,
          default=None,
          help="fraction of lr-warmup-(iters/samples) to use "
          "for warmup (as a float)",
      )
      group.add_argument(
          "--lr-warmup-iters",
          type=int,
          default=0,
          help="number of iterations to linearly warmup "
          "learning rate over.",
      )
      group.add_argument(
          "--lr-warmup-samples",
          type=int,
          default=0,
          help="number of samples to linearly warmup "
          "learning rate over.",
      )
      group.add_argument(
          "--lr-warmup-init",
          type=float,
          default=0.0,
          help="Initial value for learning rate warmup. The "
          "scheduler starts warmup from this value.",
      )
      group.add_argument(
          "--warmup",
          type=int,
          default=None,
          help="Old lr warmup argument, do not use. Use one of the"
          "--lr-warmup-* arguments above",
      )
      group.add_argument(
          "--min-lr",
          type=float,
          default=0.0,
          help="Minumum value for learning rate. The scheduler"
          "clip values below this threshold.",
      )
      group.add_argument(
          "--override-opt_param-scheduler",
          action="store_true",
          help="Reset the values of the scheduler (learning rate,"
          "warmup iterations, minimum learning rate, maximum "
          "number of iterations, and decay style from input "
          "arguments and ignore values from checkpoints. Note"
          "that all the above values will be reset.",
      )
      group.add_argument(
          "--use-checkpoint-opt_param-scheduler",
          action="store_true",
          help="Use checkpoint to set the values of the scheduler "
          "(learning rate, warmup iterations, minimum learning "
          "rate, maximum number of iterations, and decay style "
          "from checkpoint and ignore input arguments.",
      )
  
      return parser
  
imports: import argparse
  import dataclasses
  import json
  import os
  import torch
  import types
  import torch.nn.functional
  from megatron.global_vars import set_retro_args, get_retro_args
  from tools.retro.utils import get_args_path
  from megatron.core.models.retro import RetroConfig
  from megatron.core.transformer import TransformerConfig
label_desc: Use image node_id 14 for calling a global function with example usage: _add_learning_rate_args(parser) and returns: parser