code: def get_sparse_pruning_different_groups(param_dict):
      output = {}
      sub_param_dict = param_dict[DIFFERENT_GROUPS]
  
      def get_params(name, group_dict):
          assert (
              SPARSE_PRUNING_DENSE_RATIO in group_dict.keys()
          ), f"{SPARSE_PRUNING_DENSE_RATIO} must be specified for sparse pruning group {name}"
          return group_dict
  
      for k, v in sub_param_dict.items():
          output[k] = {}
          output[k][DIFFERENT_GROUPS_PARAMETERS] = get_params(
              k, sub_param_dict[k][DIFFERENT_GROUPS_PARAMETERS]
          )
          output[k][DIFFERENT_GROUPS_MODULE_SCOPE] = get_scalar_param(
              sub_param_dict[k],
              DIFFERENT_GROUPS_MODULE_SCOPE,
              DIFFERENT_GROUPS_MODULE_SCOPE_DEFAULT,
          )
          output[k][
              DIFFERENT_GROUPS_RELATED_MODULE_SCOPE
          ] = get_scalar_param(
              sub_param_dict[k],
              DIFFERENT_GROUPS_RELATED_MODULE_SCOPE,
              DIFFERENT_GROUPS_RELATED_MODULE_SCOPE_DEFAULT,
          )
  
      return output
  
imports: from .constants import *
  import copy
  from ..runtime.config_utils import get_scalar_param, get_list_param
label_desc: Use image node_id 14 for calling a global function with example usage: get_sparse_pruning_different_groups(param_dict) and returns: output, group_dict