code: def get_learning_rate_scheduler(args, optimizer):
      if args.lr_decay_iters is None:
          args.lr_decay_iters = args.train_iters
      lr_scheduler = bmt.lr_scheduler.Noam(
          optimizer,
          start_lr=args.lr,
          warmup_iter=args.warmup_iters,
          end_iter=args.lr_decay_iters,
          num_iter=args.start_step,
      )
      return lr_scheduler
  
imports: import time
  from typing import Dict, List, Union
  import torch
  import bmtrain
  import os
  from opendelta import LoraModel
  from cpm_live.arguments import get_args
  from cpm_live.models import CPMBee, CPMBeeConfig
  from cpm_live.tokenizers import CPMBeeTokenizer
  from cpm_live.utils import allgather_objects
  from cpm_live.training_tasks.bee import FinetuneDataset
label_desc: Use image node_id 4 for calling a global function with example usage: get_learning_rate_scheduler(args, optimizer) and returns: lr_scheduler