购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.8 思考题

(1)请解释多头注意力机制中query、key和value的作用,具体描述它们在计算注意力权重和生成输出表示中的作用。编写代码,定义一个简单的多头注意力层,输入序列张量x,并分别计算其query、key和value矩阵。

(2)自注意力机制在长序列建模时表现出优异的性能,请从计算复杂度的角度说明自注意力机制相比RNN在效率上的优势。请使用代码验证自注意力机制在不同序列长度下的时间消耗。

(3)位置编码在Transformer中补充了位置信息,请解释位置编码的作用,特别是在不具备序列顺序的自注意力机制中的意义,并编写代码使用正弦和余弦函数实现位置编码。

(4)在BERT模型的迁移学习中,通过冻结层可以减少模型的微调参数。请简要说明冻结层对迁移学习的影响,结合代码展示如何在BERT模型中冻结前70%的层,仅微调剩余的30%的层。

(5)编写代码,使用AdamW优化器对微调的BERT模型进行优化,指定两个参数组,为BERT模型的最后两层设置学习率为1e-5,为全连接层设置学习率为2e-5,并添加权重衰减,其值为1e-4。

(6)请说明BERT模型的CLS标记的作用,特别是在文本分类任务中的用途,并编写代码从BERT模型的输出中提取CLS标记对应的向量,作为分类的特征表示。

(7)在训练过程中,学习率调度器能够调整学习速率,提高模型训练的稳定性。请使用get_cosine_schedule_with_warmup函数为优化器设置余弦退火调度器,设置预热步数为10,总训练步数为100,并展示如何结合优化器和调度器完成模型的优化步骤。

(8)在迁移学习的实际应用中,通过调整类别权重可以应对类别不平衡问题。请使用nn.CrossEntropyLoss定义一个带有类别权重的损失函数,并解释权重在训练中的作用,编写代码为两个类别分别设置权重为0.6和0.4,并计算示例数据的损失。

(9)请解释在多层Transformer架构中使用残差连接和层归一化的作用,尤其是在深层网络中稳定数据流。编写代码定义一个简单的残差连接和层归一化模块,并在输入张量x上测试其效果。

(10)结合本章内容,使用BERT进行中文情感分类任务,要求对模型的前半层进行冻结操作,并指定合适的学习率和调度器,实现小规模数据集上的微调过程。请展示如何加载数据、定义优化器和调度器,以及计算模型的训练损失。 857+OkHWJkf7zxyfl4RTTXzpVgJKxd7DdhV7/KEb8DMhKepKtDvAsTf647lKA3O3

点击中间区域
呼出菜单
上一章
目录
下一章
×