Есть ли способ для вывода с помощью torchtext с использованием метода from_pretrained() transformers?

#nlp #pytorch #bert-language-model #inference #torchtext

#nlp #pytorch #bert-language-model #вывод #torchtext

Вопрос:

 BertTokenizer.save_pretrained("OUTPUT_DIR")
  

сохраняет vocab.txt , special_tokens_map.json и tokenizer_config.json в мой выходной каталог,
доступная модель поезда хранится как pytorch_model.bin, и конфигурация также там.

Как можно использовать их для вывода, предпочтительно с помощью torchtext?

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

1. Я знаю, что я должен использовать метод from_pretrained()

Ответ №1:

Чтобы выполнить вывод, вам нужно снова загрузить токенизатор и модель следующим образом (здесь я предполагаю, что модель, которую вы обучили, была BertForSequenceClassification ):

 tokenizer = BertTokenizer.from_pretrained("path_to_directory")
model = BertForSequenceClassification.from_pretrained("path_to_directory")
  

Например, «path_to_directory» является строкой "./model" (в случае, если ваш каталог называется «model», и вы в настоящее время находитесь в его родительском каталоге). Токенизатор и модель автоматически определяют, какие файлы им нужны из каталога. Токенизатор будет использовать vocab.txt файл, модель будет использовать файл config.json для установки своих гиперпараметров, а также файл pytorch_model.bin для загрузки предварительно подготовленных весов. Вам просто нужно убедиться, что все эти файлы расположены в этом каталоге.

Знаете ли вы, как предоставить новое предложение модели, подобной BERT? Я не знаком с TorchText, но вы можете выполнить вывод следующим образом:

 sentence = "This is a new sentence"
inputs = tokenizer(sentence, padding='max_length', truncation=True, return_tensors="pt")
outputs = model(**inputs)
  

Токенизатор преобразует предложение в формат, понятный БЕРТУ (т. Е. Входные идентификаторы, идентификаторы типа токена и т. Д. В виде тензоров PyTorch), Включая заполнение и усечение. outputs Переменная представляет собой кортеж Python, содержащий необработанные логиты.

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

1. Большое вам спасибо, это определенно направление для меня. Я также хочу спросить: я должен загрузить точно настроенную многоклассовую модель классификации, основанную на ‘bert-base-cased’, и я попытался сделать так, как вы указали выше. Ошибок не возникает, но когда я использую модель для вывода, результаты классификации бессмысленны, и я уверен, что с точно настроенной моделью все в порядке, поскольку я могу получить матрицы путаницы тестирования. Я пытаюсь воспроизвести результаты, используя набор тестов, поэтому, полагаю, я загружаю модель неправильным способом.. Какие-либо советы или документация для чтения? заранее спасибо

2. Может быть, вы неправильно преобразуете логиты в предсказания класса? Не могли бы вы поделиться записной книжкой Colab?