File ~/miniconda3/lib/python3.10/site-packages/transformers/trainer.py:2396, in Trainer._save_checkpoint(self, model, trial, metrics)
2394 run_dir = self._get_output_dir(trial=trial)
2395 output_dir = os.path.join(run_dir, checkpoint_folder)
-> 2396 self.save_model(output_dir, _internal_call=True)
2397 if self.is_deepspeed_enabled:
2398 # under zero3 model file itself doesn't get saved since it's bogus! Unless deepspeed
2399 # config stage3_gather_16bit_weights_on_model_save is True
2400 self.model_wrapped.save_checkpoint(output_dir)
File ~/miniconda3/lib/python3.10/site-packages/transformers/trainer.py:2901, in Trainer.save_model(self, output_dir, _internal_call)
2898 self.model_wrapped.save_checkpoint(output_dir)
2900 elif self.args.should_save:
-> 2901 self._save(output_dir)
2903 # Push to the Hub when save_model is called by the user.
2904 if self.args.push_to_hub and not _internal_call:
File ~/miniconda3/lib/python3.10/site-packages/transformers/trainer.py:2959, in Trainer._save(self, output_dir, state_dict)
2957 torch.save(state_dict, os.path.join(output_dir, WEIGHTS_NAME))
2958 else:
-> 2959 self.model.save_pretrained(
2960 output_dir, state_dict=state_dict, safe_serialization=self.args.save_safetensors
2961 )
2963 if self.tokenizer is not None:
2964 self.tokenizer.save_pretrained(output_dir)
File ~/miniconda3/lib/python3.10/site-packages/peft/utils/config.py:92, in PeftConfigMixin.save_pretrained(self, save_directory, **kwargs)
90 # save it
91 with open(output_path, "w") as writer:
---> 92 writer.write(json.dumps(output_dict, indent=2, sort_keys=True))
File ~/miniconda3/lib/python3.10/json/encoder.py:201, in JSONEncoder.encode(self, o)
199 chunks = self.iterencode(o, _one_shot=True)
200 if not isinstance(chunks, (list, tuple)):
--> 201 chunks = list(chunks)
202 return ''.join(chunks)
File ~/miniconda3/lib/python3.10/json/encoder.py:431, in _make_iterencode.._iterencode(o, _current_indent_level)
429 yield from _iterencode_list(o, _current_indent_level)
430 elif isinstance(o, dict):
--> 431 yield from _iterencode_dict(o, _current_indent_level)
432 else:
433 if markers is not None:
File ~/miniconda3/lib/python3.10/json/encoder.py:405, in _make_iterencode.._iterencode_dict(dct, _current_indent_level)
403 else:
404 chunks = _iterencode(value, _current_indent_level)
--> 405 yield from chunks
406 if newline_indent is not None:
407 _current_indent_level -= 1
File ~/miniconda3/lib/python3.10/json/encoder.py:438, in _make_iterencode.._iterencode(o, _current_indent_level)
436 raise ValueError("Circular reference detected")
437 markers[markerid] = o
--> 438 o = _default(o)
439 yield from _iterencode(o, _current_indent_level)
440 if markers is not None:
File ~/miniconda3/lib/python3.10/json/encoder.py:179, in JSONEncoder.default(self, o)
160 def default(self, o):
161 """Implement this method in a subclass such that it returns
162 a serializable object for o, or calls the base implementation
163 (to raise a TypeError).
(...)
177
178 """
--> 179 raise TypeError(f'Object of type {o.class.name} '
180 f'is not JSON serializable')
TypeError: Object of type set is not JSON serializable
TypeError Traceback (most recent call last) Cell In[18], line 1 ----> 1 trainer.train()
File ~/miniconda3/lib/python3.10/site-packages/transformers/trainer.py:1591, in Trainer.train(self, resume_from_checkpoint, trial, ignore_keys_for_eval, **kwargs) 1589 hf_hub_utils.enable_progress_bars() 1590 else: -> 1591 return inner_training_loop( 1592 args=args, 1593 resume_from_checkpoint=resume_from_checkpoint, 1594 trial=trial, 1595 ignore_keys_for_eval=ignore_keys_for_eval, 1596 )
File ~/miniconda3/lib/python3.10/site-packages/transformers/trainer.py:1984, in Trainer._inner_training_loop(self, batch_size, args, resume_from_checkpoint, trial, ignore_keys_for_eval) 1981 self.state.epoch = epoch + (step + 1 + steps_skipped) / steps_in_epoch 1982 self.control = self.callback_handler.on_step_end(args, self.state, self.control) -> 1984 self._maybe_log_save_evaluate(tr_loss, model, trial, epoch, ignore_keys_for_eval) 1985 else: 1986 self.control = self.callback_handler.on_substep_end(args, self.state, self.control)
File ~/miniconda3/lib/python3.10/site-packages/transformers/trainer.py:2339, in Trainer._maybe_log_save_evaluate(self, tr_loss, model, trial, epoch, ignore_keys_for_eval) 2336 self.lr_scheduler.step(metrics[metric_to_check]) 2338 if self.control.should_save: -> 2339 self._save_checkpoint(model, trial, metrics=metrics) 2340 self.control = self.callback_handler.on_save(self.args, self.state, self.control)
File ~/miniconda3/lib/python3.10/site-packages/transformers/trainer.py:2396, in Trainer._save_checkpoint(self, model, trial, metrics) 2394 run_dir = self._get_output_dir(trial=trial) 2395 output_dir = os.path.join(run_dir, checkpoint_folder) -> 2396 self.save_model(output_dir, _internal_call=True) 2397 if self.is_deepspeed_enabled: 2398 # under zero3 model file itself doesn't get saved since it's bogus! Unless deepspeed 2399 # config
stage3_gather_16bit_weights_on_model_save
is True 2400 self.model_wrapped.save_checkpoint(output_dir)File ~/miniconda3/lib/python3.10/site-packages/transformers/trainer.py:2901, in Trainer.save_model(self, output_dir, _internal_call) 2898 self.model_wrapped.save_checkpoint(output_dir) 2900 elif self.args.should_save: -> 2901 self._save(output_dir) 2903 # Push to the Hub when
save_model
is called by the user. 2904 if self.args.push_to_hub and not _internal_call:File ~/miniconda3/lib/python3.10/site-packages/transformers/trainer.py:2959, in Trainer._save(self, output_dir, state_dict) 2957 torch.save(state_dict, os.path.join(output_dir, WEIGHTS_NAME)) 2958 else: -> 2959 self.model.save_pretrained( 2960 output_dir, state_dict=state_dict, safe_serialization=self.args.save_safetensors 2961 ) 2963 if self.tokenizer is not None: 2964 self.tokenizer.save_pretrained(output_dir)
File ~/miniconda3/lib/python3.10/site-packages/peft/peft_model.py:201, in PeftModel.save_pretrained(self, save_directory, safe_serialization, selected_adapters, **kwargs) 198 else: 199 auto_mapping_dict = None --> 201 peft_config.save_pretrained(output_dir, auto_mapping_dict=auto_mapping_dict) 202 peft_config.inference_mode = inference_mode
File ~/miniconda3/lib/python3.10/site-packages/peft/utils/config.py:92, in PeftConfigMixin.save_pretrained(self, save_directory, **kwargs) 90 # save it 91 with open(output_path, "w") as writer: ---> 92 writer.write(json.dumps(output_dict, indent=2, sort_keys=True))
File ~/miniconda3/lib/python3.10/json/init.py:238, in dumps(obj, skipkeys, ensure_ascii, check_circular, allow_nan, cls, indent, separators, default, sort_keys, kw) 232 if cls is None: 233 cls = JSONEncoder 234 return cls( 235 skipkeys=skipkeys, ensure_ascii=ensure_ascii, 236 check_circular=check_circular, allow_nan=allow_nan, indent=indent, 237 separators=separators, default=default, sort_keys=sort_keys, --> 238 kw).encode(obj)
File ~/miniconda3/lib/python3.10/json/encoder.py:201, in JSONEncoder.encode(self, o) 199 chunks = self.iterencode(o, _one_shot=True) 200 if not isinstance(chunks, (list, tuple)): --> 201 chunks = list(chunks) 202 return ''.join(chunks)
File ~/miniconda3/lib/python3.10/json/encoder.py:431, in _make_iterencode.._iterencode(o, _current_indent_level)
429 yield from _iterencode_list(o, _current_indent_level)
430 elif isinstance(o, dict):
--> 431 yield from _iterencode_dict(o, _current_indent_level)
432 else:
433 if markers is not None:
File ~/miniconda3/lib/python3.10/json/encoder.py:405, in _make_iterencode.._iterencode_dict(dct, _current_indent_level)
403 else:
404 chunks = _iterencode(value, _current_indent_level)
--> 405 yield from chunks
406 if newline_indent is not None:
407 _current_indent_level -= 1
File ~/miniconda3/lib/python3.10/json/encoder.py:438, in _make_iterencode.._iterencode(o, _current_indent_level)
436 raise ValueError("Circular reference detected")
437 markers[markerid] = o
--> 438 o = _default(o)
439 yield from _iterencode(o, _current_indent_level)
440 if markers is not None:
File ~/miniconda3/lib/python3.10/json/encoder.py:179, in JSONEncoder.default(self, o) 160 def default(self, o): 161 """Implement this method in a subclass such that it returns 162 a serializable object for
o
, or calls the base implementation 163 (to raise aTypeError
). (...) 177 178 """ --> 179 raise TypeError(f'Object of type {o.class.name} ' 180 f'is not JSON serializable')TypeError: Object of type set is not JSON serializable