Как скачать модель обнимающего лица » трансформеры.тренер.Тренер»?

#python #nlp #huggingface-transformers #pre-trained-model

Вопрос:

В 1 коде. я загрузил трансформеры «обнимающее лицо». тренер.Модель на основе тренера, использующая функцию save_pretrained() Во 2-м коде, я хочу загрузить эту загруженную модель и использовать ее для прогнозирования. Мне нужна помощь на этом этапе — Как загрузить загруженную модель и затем сделать прогноз?

Шаги по созданию модели:

 from transformers import AutoModelForQuestionAnswering, TrainingArguments, Trainer model = AutoModelForQuestionAnswering.from_pretrained('xlm-roberta-large) trainer = Trainer( model, args, train_dataset=tokenized_train_ds, eval_dataset=tokenized_val_ds, data_collator=data_collator, tokenizer=tokenizer,)  #Arguments used above not mentioned here - model, args, tokenized_train_ds, tokenized_val_ds, data_collator, tokenizer #Below step train the pre-trained model trainer.train()  

Затем я загрузил эту модель «тренажера», используя приведенную ниже команду:-

 trainer.save_model('./trainer_sm')  

В другом коде я теперь хочу загрузить эту модель и использовать ее для составления прогнозов, может кто-нибудь посоветовать, как это сделать? Я попробовал выполнить приведенную ниже команду, чтобы загрузить его:-

 model_sm=AutoModelForQuestionAnswering.from_pretrained("./trainer_sm")  

И использовал его для составления прогнозов по этой строке кода:-

 model_sm.predict(test_features) AttributeError: 'XLMRobertaForQuestionAnswering' object has no attribute 'predict'  

Я также использовал «use_auth_token=True» в качестве аргумента для from_pretrained, но это также не сработало.

Кроме того, тип(тренер) — » трансформеры.тренер.Тренер» , в то время как тип(model_sm) — transformers.models.xlm_roberta.modeling_xlm_roberta.xlmrobertaответ на вопросы

Ответ №1:

То, что вы сохранили, — это модель, которую собирался настроить тренер, и вы должны знать, что прогнозирование, обучение, оценка и т. Д.-Это утилиты transformers.trainer.Trainer объекта, а не transformers.models.xlm_roberta.modeling_xlm_roberta.XLMRobertaForQuestionAnswering . Основываясь на том, что было упомянуто, самый простой способ продолжить работу-создать еще один экземпляр тренажера.

 model_sm=AutoModelForQuestionAnswering.from_pretrained("./trainer_sm") reloaded_trainer = Trainer(  model = model_sm,  tokenizer = tokenizer,  # other arguments if you have changed the defaults   ) reloaded_trainer.predict(test_dataset)