Я использовал следующий код для загрузки специально обученного токенизатора:
from transformers import AutoTokenizer
test_tokenizer = AutoTokenizer.from_pretrained('raptorkwok/cantonese-tokenizer-test')
Загрузка заняла целую вечность. Даже если я заменю AutoTokenizer на PreTrainedTokenizerFast, оно все равно будет загружаться вечно.
Как отладить или исправить эту проблему?
Это просто SentencePieceBPETokenizer обученный наборами данных. Файлы находятся по адресу: huggingface.co/raptorkwok/cantonese-tokenizer-test
Похоже, что-то не так с этим токенизатором. Кажется, это ты создал. Если да, можете ли вы загрузить его локально, прежде чем загружать в хаб? Если бы вы могли, возможно, проблема связана с вызовом push_to_hub.






Проблема решена при понижении версии transformers до 4.28.1 с 4.41.0. И pipeline(), и from_pretrained() успешно загружают токенизатор за считанные секунды.
Проблема решена при использовании трансформеров версии 4.41.0.
!pip install transformers==4.41.0
from transformers import AutoTokenizer
test_tokenizer = AutoTokenizer.from_pretrained('raptorkwok/cantonese-tokenizer-test')
Я использовал 4.41.0 (последняя на данный момент версия), проблема все еще существует. Но когда я перешел на 4.28.0, проблема исчезла.
Я загружаю собственный автотокенайзер:
from transformers import AutoTokenizer
path_autotokenizer = ...
new_tokenizer = AutoTokenizer.from_pretrained(path_autotokenizer)
а с трансформерами не работает==4.41.2 - вообще не загружается. С зависимостями ниже это работает:
tokenizer == 0.13.3
transformers == 4.31.0
Да, ключевая версия — токенизатор 0.13.3, преобразователи с 4.28.1 по 4.31.0 тоже могут работать.
На самом деле это всего лишь обходной путь, а не лучшее решение. Потому что иногда вам явно нужны последние версии трансформера. Например. похоже, что flash_attention_2 недоступен из старых версий... Другим обходным решением было бы создание нового токенизатора при полете внутри скрипта.
Где мы можем найти предварительно обученную модель?