Как подтолкнуть модель НЛП, обученную с помощью pytorch, к обнимающемуся лицу?

#python #google-colaboratory #huggingface-transformers #pytorch-lightning #pytorch-dataloader

Вопрос:

Я обучил тонкую настройку модели T5 с помощью моего набора данных.

Вот мой класс моделей

 class QA_model(pl.LightningModule):
  def __init__(self):
    super().__init__()
    self.model=T5ForConditionalGeneration.from_pretrained(model_t5,return_dict=True)


  def forward(self,input_ids, attention_mask,labels=None):
    output=self.model(input_ids=input_ids,
                 attention_mask=attention_mask,labels=labels)
    
    return output.loss, output.logits

  def training_step(self,batch,batch_idx):
    input_ids=batch['input_ids']
    attention_mask=batch['attention_mask']
    labels=batch['labels']
    loss,outputs=self.forward(input_ids, attention_mask,labels)
    self.log('train_loss',loss,prog_bar=True,logger=True)
    return loss
  def validation_step(self,batch,batch_idx):
    input_ids=batch['input_ids']
    attention_mask=batch['attention_mask']
    labels=batch['labels']
    loss,outputs=self.forward(input_ids, attention_mask,labels)
    self.log('val_loss',loss,prog_bar=True,logger=True)
    return loss
  def test_step(self,batch,batch_idx):
    input_ids=batch['input_ids']
    attention_mask=batch['attention_mask']
    labels=batch['labels']
    loss,outputs=self.forward(input_ids, attention_mask,labels)
    self.log('test_loss',loss,prog_bar=True,logger=True)
    return loss
  def configure_optimizers(self):
    return AdamW(self.parameters(),lr=0.0001) 
 

Я инициализирую свою модель:

 my_model=QA_model()

from pytorch_lightning.callbacks import ModelCheckpoint
checkpoint_callback=ModelCheckpoint(
    dirpath='checkpoints',
    filename='best-checkpoints',
    save_top_k=1,
    verbose=True,
    monitor='val_loss',
    mode='min'
)  
 

от pytorch_lightning.регистраторы импортируют тензорный регистратор

 logger=TensorBoardLogger('training-logs',name='QA_model')
trainer=pl.Trainer(
    logger=logger,
    checkpoint_callback=checkpoint_callback,
    max_epochs=N_EPOCHS,
    gpus=1,
    progress_bar_refresh_rate=30
)
    
 

и после того, как я тренировался:

 trainer.fit(my_model,data_module)
 

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

 trainer.save_pretrained("my_account/t5-base-finetuned-legal_data")
trainer.push_to_hub("my_account/t5-base-finetuned-legal_data")
 

но это дает ошибку:

 QA_model model does not have save_pretrained/push_to_hub attribute.
 

Я использую следующие версии:

 !pip install --quiet transformers==4.1.1
!pip install --quiet pytorch-lightning==1.1.3

!pip install --quiet tokenizers==0.9.4
!pip install --quiet sentencepiece==0.1.94
 

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

1. Какую версию transformers вы используете?

2. @трансформаторы Деннингера==4.1.1