Как выполнить тестирование точности на задаче генерации текста - PullRequest
0 голосов
/ 02 марта 2020

Могу ли я узнать, существует ли правильный способ оценки адекватности и беглости текста, сгенерированного как вывод, который использует модель, которая была точно настроена на предварительно обученной языковой модели SOTA.

Что я имею попробовал: я тонко настраиваю модель, используя модель Hugging Face GPT2-medium, и хочу знать, как я могу оценить точность модели и получить оценку для модели, точно настроенной с моим собственным набором данных.

tokenizer = GPT2Tokenizer.from_pretrained('gpt2-medium')
model = GPT2LMHeadModel.from_pretrained('gpt2-medium')
model = model.to(device)

Реализация класса набора данных в соответствии с Pytorch

dataset = ArticleDataset()
article_loader=DataLoader(dataset, batch_size=1, shuffle=True)
model = model.to(device)
model.train()
optimizer = AdamW(model.parameters(), lr=LEARNING_RATE)
scheduler = get_linear_schedule_with_warmup(optimizer, num_warmup_steps=WARMUP_STEPS, num_training_steps = -1)
proc_seq_count = 0
sum_loss = 0.0
batch_count = 0

tmp_articles_tens = None
CUDA_LAUNCH_BLOCKING=1 
for epoch in range(EPOCHS):
  for idx, article in enumerate(article_loader):
     article_tens=torch.tensor(tokenizer.encode(article[0])).unsqueeze(0).to(device)

     outputs = model(article_tens, labels=work_article_tens)
     loss, logits = outputs[:2]                        
     loss.backward()
     sum_loss = sum_loss + loss.detach().data

     proc_seq_count = proc_seq_count + 1
     if proc_seq_count == BATCH_SIZE:
         proc_seq_count = 0    
         batch_count += 1
         optimizer.step()
         scheduler.step() 
         optimizer.zero_grad()
         model.zero_grad()

     if batch_count == 100:
         print(f"sum loss {sum_loss}")
         batch_count = 0
         sum_loss = 0.0

и затем сохранение модели

Я новичок ie для НЛП и глубокого обучения. Любая помощь приветствуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...