code: def load_args_from_checkpoint(args, load_arg="load"):
      """Set required arguments from the checkpoint specified in the
      arguments.
  
      Will overwrite arguments that have a non-None default value, but
      will leave any arguments that default to None as set.
  
      Returns the same args NameSpace with the new values added/updated.
  
      If no checkpoint is specified in args, or if the checkpoint is
      there but invalid, the arguments will not be modified
  
      """
      load_dir = getattr(args, load_arg)
  
      if load_dir is None:
          print_rank_0(
              "No load directory specified, using provided arguments."
          )
          return args
  
      state_dict, checkpoint_name, release = _load_base_checkpoint(
          load_dir, rank0=True
      )
  
      # Args.
      if not state_dict:
          print_rank_0(
              "Checkpoint not found to provide arguments, using provided arguments."
          )
          return args
  
      if "args" not in state_dict:
          print_rank_0(
              "Checkpoint provided does not have arguments saved, using provided arguments."
          )
          return args
  
      checkpoint_args = state_dict["args"]
      checkpoint_version = state_dict.get("checkpoint_version", 0)
      args.iteration = state_dict["iteration"]
  
      # One-off conversion for foundation models
      if hasattr(checkpoint_args, "disable_bias_linear"):
          setattr(
              checkpoint_args,
              "add_bias_linear",
              not getattr(checkpoint_args, "disable_bias_linear"),
          )
  
      def _set_arg(arg_name, old_arg_name=None, force=False):
          if not force and getattr(args, arg_name, None) is not None:
              return
  
          if old_arg_name is not None:
              checkpoint_value = getattr(
                  checkpoint_args, old_arg_name, None
              )
          else:
              checkpoint_value = getattr(
                  checkpoint_args, arg_name, None
              )
  
          if checkpoint_value is not None:
              print_rank_0(
                  f"Setting {arg_name} to {checkpoint_value} from checkpoint"
              )
              setattr(args, arg_name, checkpoint_value)
          else:
              print_rank_0(
                  f"Checkpoint did not provide arguments {arg_name}"
              )
  
      _set_arg("num_layers")
      _set_arg("hidden_size")
      _set_arg("ffn_hidden_size")
      _set_arg("seq_length")
      _set_arg("num_attention_heads")
      _set_arg("num_query_groups", force=True)
      _set_arg("group_query_attention", force=True)
      _set_arg("kv_channels")
      _set_arg("max_position_embeddings")
      _set_arg("position_embedding_type", force=True)
      _set_arg("add_position_embedding", force=True)
      _set_arg("use_rotary_position_embeddings", force=True)
      _set_arg("rotary_percent", force=True)
      _set_arg("add_bias_linear", force=True)
      _set_arg("swiglu", force=True)
      _set_arg("untie_embeddings_and_output_weights", force=True)
      _set_arg("apply_layernorm_1p", force=True)
      _set_arg("normalization", force=True)
      _set_arg("tokenizer_type")
      _set_arg("padded_vocab_size")
      if checkpoint_version < 3.0:
          _set_arg("tensor_model_parallel_size", "model_parallel_size")
      else:
          _set_arg("tensor_model_parallel_size", force=True)
          _set_arg("pipeline_model_parallel_size", force=True)
          _set_arg("virtual_pipeline_model_parallel_size", force=True)
          _set_arg("num_layers_per_virtual_pipeline_stage")
      return args, checkpoint_args
  
imports: import os
  import random
  import sys
  import numpy
  import torch
  from megatron import update_num_microbatches
  from megatron.core import mpu, tensor_parallel
  from .global_vars import get_args
  from .utils import unwrap_model, print_rank_0
label_desc: Use image node_id 15 for calling a global function with example usage: load_args_from_checkpoint(args, load_arg) and returns: args,  checkpoint_args, args, args, args