class_docstr: A wrapper class around a (`transformers.PreTrainedModel`) to be compatible with the
  (`~transformers.PreTrained`) class in order to keep some attributes and methods of the
  (`~transformers.PreTrainedModel`) class.
  
  Attributes:
      pretrained_model: (`transformers.PreTrainedModel`)
          The model to be wrapped.
      parent_class: (`transformers.PreTrainedModel`)
          The parent class of the model to be wrapped.
      supported_args: (`list`)
          The list of arguments that are supported by the wrapper class.
class_docstr_tok: ["A","wrapper","class","around","a","(","`","transformers.PreTrainedModel","`",")","to","be","compatible","with","the","(","`","~transformers.PreTrained","`",")","class","in","order","to","keep","some","attributes","and","methods","of","the","(","`","~transformers.PreTrainedModel","`",")","class",".","Attributes",":","pretrained_model",":","(","`","transformers.PreTrainedModel","`",")","The","model","to","be","wrapped",".","parent_class",":","(","`","transformers.PreTrainedModel","`",")","The","parent","class","of","the","model","to","be","wrapped",".","supported_args",":","(","`","list","`",")","The","list","of","arguments","that","are","supported","by","the","wrapper","class","."]
docstr: Separate the kwargs from the arguments that we support inside
  `supported_args` and the ones that we don't.
docstr_tok: ["Separate","the","kwargs","from","the","arguments","that","we","support","inside","`","supported_args","`","and","the","ones","that","we","do","n't","."]
code: def _split_kwargs(cls, kwargs):
      """
      Separate the kwargs from the arguments that we support inside
      `supported_args` and the ones that we don't.
      """
      check_peft_kwargs = False
  
      if is_peft_available():
          from peft import prepare_model_for_kbit_training
  
          check_peft_kwargs = True
  
      supported_kwargs = {}
      unsupported_kwargs = {}
      peft_kwargs = {}
  
      for key, value in kwargs.items():
          if key in cls.supported_args:
              supported_kwargs[key] = value
          else:
              unsupported_kwargs[key] = value
  
          if check_peft_kwargs:
              if (
                  key
                  in prepare_model_for_kbit_training.__code__.co_varnames
              ):
                  peft_kwargs[key] = value
                  if key in unsupported_kwargs:
                      unsupported_kwargs.pop(key)
  
      return supported_kwargs, unsupported_kwargs, peft_kwargs
  
imports: import json
  import logging
  import os
  from copy import deepcopy
  import torch
  import torch.nn
  from accelerate import PartialState
  from huggingface_hub import hf_hub_download
  from huggingface_hub.utils import EntryNotFoundError, HFValidationError, LocalEntryNotFoundError, RepositoryNotFoundError
  from safetensors.torch import load_file
  from transformers import PreTrainedModel
  from ..import_utils import is_npu_available, is_peft_available, is_transformers_greater_than, is_xpu_available
label_desc: Use image node_id 5 for calling the PreTrainedModelWrapper obj's underlying member method code with example usage: obj._split_kwargs(cls, kwargs) and returns: supported_kwargs,  unsupported_kwargs,  peft_kwargs