AutoTokenizer.from_pretrained загружался вечно

Я использовал следующий код для загрузки специально обученного токенизатора:

from transformers import AutoTokenizer
test_tokenizer = AutoTokenizer.from_pretrained('raptorkwok/cantonese-tokenizer-test')

Загрузка заняла целую вечность. Даже если я заменю AutoTokenizer на PreTrainedTokenizerFast, оно все равно будет загружаться вечно.

Как отладить или исправить эту проблему?

Где мы можем найти предварительно обученную модель?

Quinten 16.05.2024 15:17

Это просто SentencePieceBPETokenizer обученный наборами данных. Файлы находятся по адресу: huggingface.co/raptorkwok/cantonese-tokenizer-test

Raptor 16.05.2024 15:27

Похоже, что-то не так с этим токенизатором. Кажется, это ты создал. Если да, можете ли вы загрузить его локально, прежде чем загружать в хаб? Если бы вы могли, возможно, проблема связана с вызовом push_to_hub.

Guillem 22.05.2024 18:20
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
4
3
270
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Проблема решена при понижении версии 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, проблема исчезла.

Raptor 27.05.2024 09:21

Я загружаю собственный автотокенайзер:

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 тоже могут работать.

Raptor 24.06.2024 04:19

На самом деле это всего лишь обходной путь, а не лучшее решение. Потому что иногда вам явно нужны последние версии трансформера. Например. похоже, что flash_attention_2 недоступен из старых версий... Другим обходным решением было бы создание нового токенизатора при полете внутри скрипта.

Olga Lipina 24.06.2024 11:37

Другие вопросы по теме