Код: Выделить всё
from transformers import BertTokenizer
tokenizer = BertTokenizer.from_pretrained("fnlp/bart-base-chinese")
# some manipulations here, omitted
tokenizer.save_pretrained("my_tokenizer") # it works!
Код: Выделить всё
('my_tokenizer/tokenizer_config.json',
'my_tokenizer/special_tokens_map.json',
'my_tokenizer/vocab.txt',
'my_tokenizer/added_tokens.json')
Код: Выделить всё
from transformers import PreTrainedTokenizerFast
wrapped_tokenizer = PreTrainedTokenizerFast(
tokenizer_object=tokenizer,
)
wrapped_tokenizer.push_to_hub('my-tokenizer-bert', private=True)
AttributeError: у объекта «BertTokenizer» нет атрибута «сохранить»
Полная трассировка стека:
Код: Выделить всё
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
Cell In[11], line 7
1 from transformers import PreTrainedTokenizerFast
3 wrapped_tokenizer = PreTrainedTokenizerFast(
4 tokenizer_object=tokenizer,
5 )
----> 7 wrapped_tokenizer.push_to_hub('my-tokenizer-bert', private=True)
File ~/.local/lib/python3.10/site-packages/transformers/utils/hub.py:781, in PushToHubMixin.push_to_hub(self, repo_id, use_temp_dir, commit_message, private, use_auth_token, max_shard_size, create_pr, **deprecated_kwargs)
778 files_timestamps = self._get_files_timestamps(work_dir)
780 # Save all files.
--> 781 self.save_pretrained(work_dir, max_shard_size=max_shard_size)
783 return self._upload_modified_files(
784 work_dir,
785 repo_id,
(...)
789 create_pr=create_pr,
790 )
File ~/.local/lib/python3.10/site-packages/transformers/tokenization_utils_base.py:2182, in PreTrainedTokenizerBase.save_pretrained(self, save_directory, legacy_format, filename_prefix, push_to_hub, **kwargs)
2178 logger.info(f"Special tokens file saved in {special_tokens_map_file}")
2180 file_names = (tokenizer_config_file, special_tokens_map_file)
-> 2182 save_files = self._save_pretrained(
2183 save_directory=save_directory,
2184 file_names=file_names,
2185 legacy_format=legacy_format,
2186 filename_prefix=filename_prefix,
2187 )
2189 if push_to_hub:
2190 self._upload_modified_files(
2191 save_directory,
2192 repo_id,
(...)
2195 token=kwargs.get("use_auth_token"),
2196 )
File ~/.local/lib/python3.10/site-packages/transformers/tokenization_utils_fast.py:605, in PreTrainedTokenizerFast._save_pretrained(self, save_directory, file_names, legacy_format, filename_prefix)
601 if save_fast:
602 tokenizer_file = os.path.join(
603 save_directory, (filename_prefix + "-" if filename_prefix else "") + TOKENIZER_FILE
604 )
--> 605 self.backend_tokenizer.save(tokenizer_file)
606 file_names = file_names + (tokenizer_file,)
608 return file_names
AttributeError: 'BertTokenizer' object has no attribute 'save'
Код: Выделить всё
print(type(tokenizer))
Спасибо.
p.s. В конечном итоге я хочу обучить этот BertTokenizer с помощью нового набора данных, но у BertTokenizer также нет .train_from_iterator().
ОБНОВЛЕНИЕ Если я заменю PreTrainedTokenizerFast на BertTokenizerFast (его подкласс также является PreTrainedTokenizerFast), ошибка будет следующей:
AttributeError: объект «BertTokenizer» не имеет атрибута «нормализатор»
Не предполагается быстрая версия может ли полностью поддерживаться медленная версия?
Подробнее здесь: https://stackoverflow.com/questions/788 ... pretrained