【自然语言处理】:实验4答案,预训练语言模型实现与应用

代码和报告均为本人自己实现(实验满分),只展示主要任务实验结果,如果需要详细的实验报告或者代码可以私聊博主,接实验技术指导1对1

实验要求布置请看http://t.csdnimg.cn/1sh7s

运行模型,测试模型在有 100% / 50% / 10% training data(通过随机 sample 原 training set 一部分的数据,10%代表低资源的设定)的情况下模型在 dev set 上的效果

BERT 模型

这里使用原代码 100%数据运行 200 轮训练,结果如下

从图中可以看出在 200 轮训练完成后在 dev set 上的 F1 结果是 0.5472,AUC 结
果为 0.5049

然后我运行 test.py 进行 testset 的文件输出,这里设置的是预测准确率大于0.2 的实体关系对才会被输出,最终提交到网站上结果如下所示

 通过查看训练过程我发现,在训练到 130 轮的时候的结果已经和 200 轮的结果是差不多的,F1 的值和 AUC 值都是很小的差距了,所以在后面只使用原数据的 50% 和 10%进行训练的时候我都调整为 130 轮进行训练。修改读取数据时候的代码即可实现随机从原数据抽出 50%和 10%进行训练测试

BERT 模型使用原数据 50%进行训练,结果如下 

从结果来看和使用 100%数据训练 130 轮的时候在 devset 测试出的 F1 值和 AUC 差距很小,大约是 0.03 左右,我猜测造成这样的原因是因为模型鲁棒性, BERT等预训练模型已经在大规模数据上进行了预训练,在训练过程中已经获得了对各种语言和任务的普遍表示能力。这种普适性可能使得模型对于即使使用只有原来一半数据量的时候,泛化能力也相对较好。

 BERT 模型使用原数据 10%进行训练,结果如下

从结果来看出在 bert 模型上只使用原数据 10%进行训练的时候,模型性能显著下降,在 devset 测试出的 F1 值只有 0.254038,AUC 值为 0.11,明显能看出结果变差了很多,我猜测造成这样主要原因是因为数据缺失,因为 BERT 模型是在大型语料库上进行训练的,这使得它可以捕捉到广泛的语言特性和模式。这里只使用了原始数据的 10%,可能会失去一些重要的数据,导致模型在测试时表现不佳。

RoBERTa 模型

这里使用 RoBERTa 模型 100%数据运行 200 轮训练,结果如下

从结果 devset 的 F1 值和 AUC 值来看都要比 BERT 模型 200 轮的结果要更高
Bert 模型 200 轮在 devset 上的结果:F1 值 0.5472 AUC 值 0.5049
RoBerta 模型 200 轮在 devset 上的结果:F1 值 0.5606 AUC 值 0.5284
F1 值提高了 0.0134,AUC 值提高了 0.0235
我认为性能提升的主要原因就是 RoBERTa 采用了更长的训练时间和更大的数据集来进行预训练,这有助于模型更好地学习语言的表示。这使得 RoBERTa 在一些任务上能够更好地捕捉语义和上下文信息。然后我运行 test.py 文件把结果提交到网站上,结果如图所示

 对比使用 bert 模型输出的结果,score 提升 0.017 左右,显然确实性能有提升。

RoBERTa 模型使用原数据 50%进行训练,结果如下 

从 devset 上的测试结果来看,F1 和 AUC 显著下降,对比于 100%数据训练下 

 F1 值只有原来的 69%达到 0.3806,AUC 值只有原来的 58%达到 0.3042。再对比于 同样 50%数据训练下的 bert 模型,RoBERTa 模型训练出的结果也低很多,说明 RoBERTa 模型受数据大小对于结果的影响相比于 bert 模型更大

RoBERTa 模型使用原数据 10%进行训练,结果如下 

这里发现结果相对于 50%数据训练下的结果反而不大了,F1 值为 0.23,AUC 值为 0.1342。这个时候和 bert 模型在 10%数据训练下的结果几乎一样,我认为造成这样的主要原因是数据量不足 10% 的数据实在太少,以至于两个模型都无法充分利用其潜在的能力。在这种情况下,两个模型可能都没有充分学习到任务的特征,导致它们在 devset 上表现相似。

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-02-22 18:00:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-22 18:00:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-22 18:00:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-22 18:00:03       18 阅读

热门阅读

  1. flask请求时间记录和日志处理

    2024-02-22 18:00:03       24 阅读
  2. 字节飞书面试算法题

    2024-02-22 18:00:03       25 阅读
  3. python 函数-02-返回值&注释格式

    2024-02-22 18:00:03       23 阅读
  4. 【计算机网络:DHCP协议】

    2024-02-22 18:00:03       25 阅读
  5. 有向图的邻接表和邻接矩阵

    2024-02-22 18:00:03       25 阅读
  6. PO DO VO DTO BO POJO

    2024-02-22 18:00:03       27 阅读
  7. Android 多渠道配置

    2024-02-22 18:00:03       24 阅读
  8. Dockerfile第十七章 : Dockerfile文件与指令说明

    2024-02-22 18:00:03       29 阅读
  9. 注意力机制 究竟是什么?

    2024-02-22 18:00:03       33 阅读
  10. centerOS docker搭建flowable,流程引擎

    2024-02-22 18:00:03       28 阅读
  11. 【Docker】基于yum安装docker

    2024-02-22 18:00:03       34 阅读