Предварительно обученная модель bert Huggingface не работает

#pytorch #bert-language-model #huggingface-transformers

#pytorch #bert-language-model #huggingface-трансформеры

Вопрос:

Я предварительно обучил модель bert с пользовательским корпусом, затем получил файл vocab, контрольные точки, model.bin, tfrecords и т. Д.

Затем я загрузил модель, как показано ниже :

 # Load pre-trained model (weights)
model = BertModel.from_pretrained('/content/drive/My Drive/Anirban_test_pytorch')
  

Но когда я пытаюсь использовать модель для любой задачи (например, q и a, предсказание слова маски и т. Д.), То получаю сообщение об ошибке ниже

 from transformers import pipeline
nlp = pipeline("fill-mask", model="model")
nlp(f"This is the best thing I've {nlp.tokenizer.mask_token} in my life.")
  

ОШИБКА:

Ошибка операционной системы: не удается загрузить конфигурацию для «модели». Убедитесь, что:

  • ‘model’ — это правильный идентификатор модели, указанный в ‘https://huggingface.co/models ‘

  • или «модель» — это правильный путь к каталогу, содержащему файл config.json

Не могли бы вы мне помочь?

Комментарии:

1. Проблема довольно проста. У вас есть вызываемая переменная model , но вы используете неназванную строку со значением model для вашего конвейера. Это означает, что удалите кавычки, и это сработает nlp = pipeline("fill-mask", model=model) . Но имейте в виду, что ваша модель создает только векторные представления вашей входной последовательности и не имеет обученных выходных слоев.

2. @cronoik спасибо! Но сейчас я получаю ошибку ниже:

3. Исключение: невозможно угадать, какой токенизатор использовать. Пожалуйста, укажите класс PretrainedTokenizer или путь / идентификатор к предварительно обученному токенизатору.

4. Вы обучили свой собственный токенизатор или использовали предварительно обученный токенизатор? t=BertTokenizer.from_pretrained(....) и nlp = pipeline("fill-mask", model=model, tokenizer=t )

5. Токенизатор — это просто объект, который разбивает строки на токены и сопоставляет их с соответствующим идентификатором (целым числом). Нет ничего, что можно было бы обучить, кроме расширения словарного запаса. @Contestosis