class_docstr: A testing suite that makes sure that the PeftModel class is correctly integrated into the transformers library.
class_docstr_tok: ["A","testing","suite","that","makes","sure","that","the","PeftModel","class","is","correctly","integrated","into","the","transformers","library","."]
docstr: Test that checks various combinations of `save_pretrained` with a model that has adapters loaded
  on it. This checks if the saved model contains the expected files (adapter weights and adapter config).
docstr_tok: ["Test","that","checks","various","combinations","of","`","save_pretrained","`","with","a","model","that","has","adapters","loaded","on","it",".","This","checks","if","the","saved","model","contains","the","expected","files","(","adapter","weights","and","adapter","config",")","."]
code: def test_peft_save_pretrained(self):
      """
      Test that checks various combinations of `save_pretrained` with a model that has adapters loaded
      on it. This checks if the saved model contains the expected files (adapter weights and adapter config).
      """
      for model_id in self.peft_test_model_ids:
          for (
              transformers_class
          ) in self.transformers_test_model_classes:
              peft_model = transformers_class.from_pretrained(
                  model_id
              ).to(torch_device)
  
              with tempfile.TemporaryDirectory() as tmpdirname:
                  peft_model.save_pretrained(tmpdirname)
  
                  self.assertTrue(
                      "adapter_model.safetensors"
                      in os.listdir(tmpdirname)
                  )
                  self.assertTrue(
                      "adapter_config.json" in os.listdir(tmpdirname)
                  )
  
                  self.assertTrue(
                      "config.json" not in os.listdir(tmpdirname)
                  )
                  self.assertTrue(
                      "pytorch_model.bin" not in os.listdir(tmpdirname)
                  )
                  self.assertTrue(
                      "model.safetensors" not in os.listdir(tmpdirname)
                  )
  
                  peft_model = transformers_class.from_pretrained(
                      tmpdirname
                  ).to(torch_device)
                  self.assertTrue(
                      self._check_lora_correctly_converted(peft_model)
                  )
  
                  peft_model.save_pretrained(
                      tmpdirname, safe_serialization=False
                  )
                  self.assertTrue(
                      "adapter_model.bin" in os.listdir(tmpdirname)
                  )
                  self.assertTrue(
                      "adapter_config.json" in os.listdir(tmpdirname)
                  )
  
                  peft_model = transformers_class.from_pretrained(
                      tmpdirname
                  ).to(torch_device)
                  self.assertTrue(
                      self._check_lora_correctly_converted(peft_model)
                  )
  
imports: import os
  import tempfile
  import unittest
  from huggingface_hub import hf_hub_download
  from transformers import AutoModelForCausalLM, OPTForCausalLM
  from transformers.testing_utils import require_peft, require_torch, require_torch_gpu, slow, torch_device
  from transformers.utils import is_torch_available
label_desc: Use image node_id 4 for calling the PeftIntegrationTester obj's underlying member method code with example usage: obj.test_peft_save_pretrained() without return types