Как использовать обученную модель BERT из Jupyter Notebook на другой сервер Ubuntu 20.04

#tensorflow #deep-learning #nlp #bert-language-model #seq2seq

#tensorflow #глубокое обучение #nlp #bert-language-model #seq2seq

Вопрос:

Мы доработали нашу модель BERT для генерации text2text. Он отлично работает на ноутбуке Jupyter. Но когда я использую ту же обученную модель на другом сервере Ubuntu, тогда она показывает проблему. Это мой первый пост, поэтому, пожалуйста, потерпите меня. Проблема, с которой я сталкиваюсь, заключается в том, что когда я генерирую вывод для небольших предложений, он работает нормально. Но в длинных предложениях отображается следующая ошибка:

Не более 4 токенов в тензоре([ 2, 2, 2, 2, 44763, 44763, 2, 44763]) может быть равно eos_token_id: 2 . Убедитесь, что тензор([ 2, 2, 2, 2, 44763, 44763, 2, 44763]) исправляются.

Мой код генерации вывода:

 from simpletransformers.seq2seq import Seq2SeqModel
#logging.basicConfig(level=logging.INFO)
#transformers_logger = logging.getLogger("transformers")
#transformers_logger.setLevel(logging.ERROR)
model = Seq2SeqModel(
    encoder_decoder_type="bart", encoder_decoder_name="PATHOFMODEL",use_cuda=False,
)
while True:
    original = input("Enter text to paraphrase: ")
    to_predict = [original]

    preds = model.predict(to_predict)

    print("---------------------------------------------------------")
    print(original)

    print()
    print("Predictions >>>")
    for pred in preds[0]:
        print(pred)

    print("---------------------------------------------------------")
    print()
 

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

1. Совпадают ли ваши версии simpletransformer? Не могли бы вы вставить код о том, как вы сохраняете модель в среде Jupyter?

2. Я устанавливаю эти зависимости через pip. Отличается ли это от установки через conda.

3. не могли бы вы проверить версии, запустив import simpletransformers and then print(simpletransformers.__version__) ? Нет гарантии, что у conda доступна та же версия, что и у pip.

4. Отлично, спасибо за вашу помощь. Сообщу вам, когда попробую.

5. Я проверил версии simple transformers. Он обновлен, и версии соответствуют простым преобразователям jupyter notebook и pip. Любое другое решение?

Ответ №1:

Вы можете проверить свою версию TensorFlow в своем jupyter notebook и проверить ее на своем сервере Ubuntu. Если это то же самое, ошибки быть не должно. Сначала удалите tensorflow.

pip3 удалить tensorflow

а затем установите любую старую версию. Как и в случае с версией 2.2.0, затем установите версию 2.2.0, используя приведенную ниже команду.

pip3 установить tensorflow == 2.2.0

Теперь это должно сработать.