BERT语言模型:训练、应用与预训练模型使用指南
1. BERT训练循环
在BERT模型的训练中,对于下一句预测(NSP)和掩码语言模型(MLM)这两个任务,损失函数采用交叉熵。对于一批输入序列,我们将下一句预测损失的均值和掩码语言模型损失的均值相加。使用 nn.CrossEntropyLoss() 来计算交叉熵损失。
以下是创建损失函数和优化器的代码:
import torch
import torch.nn as nn
import random
from tqdm import tqdm
# 创建损失函数和优化器
loss_fn = nn.CrossEntropyLoss()
optimizer = torch.optim.Adam(bert_lm.parameters(), lr=0.01)
# 训练循环
for epoch in range(60):
random.shuffle(dataset)
loss_sum_lm = 0
loss_sum_nsp = 0
bert_lm.train()
for i in tqdm(range(n_batches)):
t_ids, s_ids, y_nsp, masked_pos, masked_ids = make_batch(
dataset, BATCH_SIZE * i)
y_lm_pred, y_nsp_pred = bert_lm(
t_ids, s_ids, masked_pos)
ma
超级会员免费看
订阅专栏 解锁全文
31

被折叠的 条评论
为什么被折叠?



