iT邦幫忙

2023 iThome 鐵人賽

DAY 20
0

目前除了BLEU以外找不到好的衡量GPT模型訓練結果好壞的方法,不過以之前的經驗,其實跟直接算loss也差不多,所以在pretrain與sft的階段都直接使用valid_loss來區別model的好壞。

@torch.no_grad()
def valid_epoch(epoch):
    global best_val_loss
    losses = []
    model.eval()
    for _, (X, Y) in enumerate(val_loader):
        X=X.to(device)
        Y=Y.to(device)
        with ctx:
            logits, loss = model(X, Y)
        losses.append(loss.item())
    model.train()
    val_loss=np.mean(losses)
    #
    logger.info('valid loss = {:.4f}'.format(val_loss))
    if val_loss < best_val_loss:
        best_val_loss = val_loss
        logger.info('best val_loss: {} best_epoch: {} '.format(best_val_loss,epoch))
        torch.save(raw_model.state_dict(),'{}/best.pth'.format(save_dir))
    #
    return val_loss

上一篇
Day 19 - Baby LLama2 Chinese (13)
下一篇
Day 21 - ChatGPT API
系列文
用單張顯卡探索大型語言模型的奧秘30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言