企业网站制作方案,网站建设不备案后果,合肥网站建设q479185700棒,做游戏网站的市场#x1f6a9;#x1f6a9;#x1f6a9;Hugging Face 实战系列 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在PyCharm中进行 本篇文章配套的代码资源已经上传 从零构建属于自己的GPT系列1#xff1a;数据预处理 从零构建属于自己的GPT系列2#xff1a;模型训…Hugging Face 实战系列 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在PyCharm中进行 本篇文章配套的代码资源已经上传 从零构建属于自己的GPT系列1数据预处理 从零构建属于自己的GPT系列2模型训练1 从零构建属于自己的GPT系列3模型训练2 从零构建属于自己的GPT系列4模型训练3
6 序列填充函数
def collate_fn(batch):input_ids rnn_utils.pad_sequence(batch, batch_firstTrue, padding_value5)labels rnn_utils.pad_sequence(batch, batch_firstTrue, padding_value-100)return input_ids, labels7 损失计算函数
def caculate_loss(logit, target, pad_idx, smoothingTrue):if smoothing:logit logit[..., :-1, :].contiguous().view(-1, logit.size(2))target target[..., 1:].contiguous().view(-1)eps 0.1n_class logit.size(-1)one_hot torch.zeros_like(logit).scatter(1, target.view(-1, 1), 1)one_hot one_hot * (1 - eps) (1 - one_hot) * eps / (n_class - 1)log_prb F.log_softmax(logit, dim1)non_pad_mask target.ne(pad_idx)loss -(one_hot * log_prb).sum(dim1)loss loss.masked_select(non_pad_mask).mean() # average laterelse:# loss F.cross_entropy(predict_logit, target, ignore_indexpad_idx)logit logit[..., :-1, :].contiguous().view(-1, logit.size(-1))labels target[..., 1:].contiguous().view(-1)loss F.cross_entropy(logit, labels, ignore_indexpad_idx)return loss8 评价函数
def calculate_acc(logit, labels, ignore_index-100):logit logit[..., :-1, :].contiguous().view(-1, logit.size(-1))labels labels[..., 1:].contiguous().view(-1)_, logit logit.max(dim-1) # 对于每条数据返回最大的index# 进行非运算返回一个tensor若labels的第i个位置为pad_id则置为0否则为1non_pad_mask labels.ne(ignore_index)n_correct logit.eq(labels).masked_select(non_pad_mask).sum().item()n_word non_pad_mask.sum().item()return n_correct, n_word9 训练过程解读
从零构建属于自己的GPT系列1数据预处理 从零构建属于自己的GPT系列2模型训练1 从零构建属于自己的GPT系列3模型训练2 从零构建属于自己的GPT系列4模型训练3