【自然语言处理】:实验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 上表现相似。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2805785.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

深入了解Java泛型的底层原理

深入了解Java泛型的底层原理 在Java编程中,泛型是一项强大的特性,它允许我们编写更加通用和类型安全的代码。然而,对于许多开发者来说,泛型的底层原理可能并不清晰。本文将深入探讨Java泛型的底层实现原理,帮助您更好…

第九节HarmonyOS 常用基础组件24-Navigation

1、描述 Navigation组件一般作为Page页面的根容器,通过属性设置来展示的标题栏、工具栏、导航栏等。 2、子组件 可以包含子组件,推荐与NavRouter组件搭配使用。 3、接口 Navigation() 4、属性 名称 参数类型 描述 title string|NavigationComm…

编译GCC native编译器的几点启示

启示 编译 GCC native compiler按照官方介绍并不难 步骤见后面实践脚本,以及官方编译指南链接 GCC编译器编译其它程序组件时,会优先使用自身携带的库,例如,常用的自带库,libgcc_s.so、libstdc 如果部署环境与编译要求…

Sentinel微服务流量治理组件实战上

目录 分布式系统遇到的问题 解决方案 Sentinel 是什么? Sentinel 工作原理 Sentinel 功能和设计理念 流量控制 熔断降级 Sentinel工作主流程 Sentinel快速开始 Sentinel资源保护的方式 基于API实现 SentinelResource注解实现 Spring Cloud Alibaba整合…

职业规划,电气工程师的岗位任职资格

电气工程技术人员主要是指精通电气施工技术,从事与电气产相关研发工作并能够解决实际问题,对相关资源进行最终统筹的人员。一般来说,这类人员主要从事绘制、审核和把关电气图纸的工作,在审核电气图纸的时候,会检查施工…

如何将建筑白模叠加到三维地球上?

​ 通过以下方法可以将建筑白模叠加到三维地球上。 方法/步骤 下载三维地图浏览器 http://www.geosaas.com/download/map3dbrowser.exe,安装完成后桌面上出现”三维地图浏览器“图标。 2、双击桌面图标打开”三维地图浏览器“ 3、点击“建筑白模”菜单&…

Kotlin 基本语法5 继承,接口,枚举,密封

1.继承与重写的Open关键字 open class Product(val name:String ) {fun description() "Product: $name"open fun load() "Nothing .."}class LuxuryProduct:Product("Luxury"){//继承需要调用 父类的主构造函数override fun load(): String {…

为什么要开发相亲类App:掘金蓝海市场

一、市场趋势:相亲交友需求旺盛,移动端成主流 近年来,单身人口数量持续增长,催生了巨大的相亲交友市场。据统计,2022年中国单身人口已达2.4亿,预计2025年将突破2.6亿。同时,移动互联网的普及使…

uniapp_微信小程序自定义顶部导航栏和右侧胶囊对齐(不对齐来打我)

一、想要的效果 思路首先开启自定义导航栏&#xff0c;取消自带的导航栏&#xff0c;然后计算胶囊的高度和标题对齐 二、成品代码 1、首先再你需要居中的代码添加以下style <view class"header":style"{paddingTop:navBarTop px,height:navBarHeight px,…

unity hub (第一部)初学配置

1、安装Unity Hub 2、设置中文 3、安装编辑器 4、新建项目 5、新建完成后进入编辑器 6、 编辑器设置中文 editPreferencesLanguages选择中文

《真象还原》读书笔记——第六章 完善内核

6.1 函数调用约定简介 接下来要使用C语言和汇编的混合编程 6.1.1 调用约定 参数的传递方式参数的传递顺序是调用者保存寄存器环境还是被调用者保存环境。保存的有哪些寄存器。 我们可以将参数保存到栈中 这时候有出现问题&#xff1a; 由谁来负责回收。参数多的情况下&…

【SpringCloudAlibaba系列--nacos配置中心】

Nacos做注册中心以及使用docker部署nacos集群的博客在这&#xff1a; 容器化部署Nacos&#xff1a;从环境准备到启动 容器化nacos部署并实现服务发现(gradle) 使用docker部署nacos分布式集群 下面介绍如何使用nacos做配置中心 首先要进行nacos-config的引入&#xff0c;引入…

线性代数:向量、张量、矩阵和标量

线性代数&#xff1a;向量、张量、矩阵和标量 背景 在线性代数中&#xff0c;向量、张量、矩阵和标量都属于基础概念&#xff0c;特别是最近AI的爆火&#xff0c;向量和张量的概念也越来越普及&#xff0c;本文将介绍下这些基本概念。 1. 标量&#xff08;Scalar&#xff0…

会声会影2024视频编辑软件电脑版本下载

一、功能特点 会声会影是一款功能强大的视频编辑软件&#xff0c;它集合了视频剪辑、特效添加、音频处理、字幕制作等多种功能于一身。具体来说&#xff0c;其特点包括&#xff1a; 会声会影2024安装包下载如下: https://wm.makeding.com/iclk/?zoneid55677 直观易用的操作…

WordPress前端如何使用跟后台一样的Dashicons图标字体?

很多站长都喜欢在站点菜单或其他地方添加一些图标字体&#xff0c;常用的就是添加Font Awesome 图标和阿里巴巴矢量库图标iconfont。其实我们使用的 WordPress 本身就有一套管理员使用的官方图标字体 Dashicons&#xff0c;登录我们站点后台就能看到这些图标字体。那么有没有可…

Dynamo批量将房间名称转换为模型文字

今天呢&#xff0c;我们简单聊聊如何把房间名称&#xff0c;变成模型文字&#xff0c;好在三维中能够看到房间名称。 本来吧&#xff0c;我觉得批量创建模型文字应该是个很简单的事&#xff0c;但是我在Dynamo中搜了下ModelText&#xff0c;发现只有一个在族环境中创建模型文字…

新版Java面试专题视频教程——虚拟机篇②

新版Java面试专题视频教程——虚拟机篇② 3 垃圾收回3.1 简述Java垃圾回收机制&#xff1f;&#xff08;GC是什么&#xff1f;为什么要GC&#xff09;3.2 对象什么时候可以被垃圾器回收3.2.1 引用计数法3.2.2 可达性分析算法 3.3 JVM 垃圾回收算法有哪些&#xff1f;——4种3.3…

EasyRecovery2024永久免费版手机数据恢复软件功能全面介绍

一、功能概述 EasyRecovery手机数据恢复软件是一款专为移动设备设计的数据恢复工具。它能够有效地从智能手机、平板电脑等移动设备中恢复因各种原因丢失的数据&#xff0c;包括但不限于误删除、格式化、系统崩溃、病毒感染等。 EasyRecovery-mac最新版本下载:https://wm.maked…

IT廉连看——C语言——循环语句

IT廉连看——C语言——循环语句 循环语句分为三种&#xff1a; while for do while 一、while循环 我们已经掌握了&#xff0c;if语句&#xff1a; if(条件)语句; 当条件满足的情况下&#xff0c;if语句后的语句执行&#xff0c;否则不执行。 但是这个语句只会执行一次…

源代码管理——码云Gitee

目录 Git安装 Gitee配置SSH 源代码管理常规操作 1.idea配置git 2.常规操作 Git安装 安装Git是进行源代码管理的基本步骤之一。以下是在本地安装Git的通用步骤&#xff0c;适用于Windows系统&#xff1a; 下载Git安装程序: 访问Git官网的下载页面&#xff1a;Git官网下载地…