热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

2021CCFBDCI千言-问题匹配鲁棒性评测-baseline

本文主要介绍关于paddlepaddle,nlp,自然语言处理的知识点,对【2021CCFBDCI千言-问题匹配鲁棒性评测-baseline】和【肖秀荣1000题有必要买新的吗】有兴趣的朋友可以

本文主要介绍关于paddlepaddle,nlp,自然语言处理的知识点,对【2021 CCF BDCI 千言-问题匹配鲁棒性评测-baseline】和【肖秀荣1000题有必要买新的吗】有兴趣的朋友可以看下由【AI Studio】投稿的技术文章,希望该技术和经验能帮到你解决你所遇的【】相关技术问题。

肖秀荣1000题有必要买新的吗

〇、简介 1.比赛地址

2021 CCF BDCI 千言-问题匹配鲁棒性评测

2.赛题背景

问题匹配(Question Matching)任务旨在判断两个自然问句之间的语义是否等价,是自然语言处理领域一个重要研究方向。问题匹配同时也具有很高的商业价值,在信息检索、智能客服等领域发挥重要作用。

近年来,神经网络模型虽然在一些标准的问题匹配评测集合上已经取得与人类相仿甚至超越人类的准确性,但在处理真实应用场景问题时,性能大幅下降,在简单(人类很容易判断)的问题上无法做出正确判断(如下图),影响产品体验的同时也会造成相应的经济损失。

问题1问题2标签(Label)Model婴儿吃什么蔬菜好婴儿吃什么 绿色蔬菜好01关于 牢房的电视剧关于 监狱的电视剧10心率过 有什么问题心率过 有什么问题01黑色 裤子配什么 上衣黑色 上衣配什么 裤子01

当前大多数问题匹配任务采用单一指标,在同分布的测试集上评测模型的好坏,这种评测方式可能夸大了模型能力,并且缺乏对模型鲁棒性的细粒度优劣势评估。本次评测关注问题匹配模型在真实应用场景中的鲁棒性,从词汇理解、句法结构、错别字、口语化、对话理解五个维度检测模型的能力,从而发现模型的不足之处,推动语义匹配技术的发展。本次竞赛主要基于千言数据集,采用的数据集包括哈尔滨工业大学(深圳)的LCQMC和BQ数据集、OPPO的小布对话短文本数据集以及百度的DuQM数据集,期望从多维度、多领域出发,全面评价模型的鲁棒性,进一步提升问题匹配技术的研究水平。本次竞赛将在第九届“CCF大数据与计算智能大赛”举办技术交流论坛和颁奖仪式,诚邀学术界和工业界的研究者和开发者参加本次竞赛!

3.基线评测效果

本项目分别基于ERNIE-1.0、Bert-base-chinese、ERNIE-Gram 3 个中文预训练模型训练了单塔 Point-wise 的匹配模型, 基于 ERNIE-Gram 的模型效果显着优于其它 2 个预训练模型。

此外,在 ERNIE-Gram 模型基础上我们也对最新的正则化策略 R-Drop 进行了相关评测, R-Drop 策略的核心思想是针对同 1 个训练样本过多次前向网络得到的输出加上正则化的 Loss 约束。

我们开源了效果最好的 2 个策略对应模型的 checkpoint 作为本次比赛的基线方案: 基于 ERNIE-Gram 预训练模型 R-Drop 系数分别为 0.0 和 0.1 的 2 个模型, 用户可以下载相应的模型来复现我们的评测结果。

模型rdrop_coefdev acctest-A acctest-B accernie-1.0-base0.086.9676.2077.50bert-base-chinese0.086.9376.9077.60ernie-gram-zh0.087.66 80.80 81.20ernie-gram-zh0.187.9180.2080.80ernie-gram-zh0.287.4780.1081.00 4.最终结果

最终得分: 79.788,可能和batch size等等设置有关,如下图。

一、建立项目

所有解压缩只进行一起,以后注释掉即可

1.解压缩基线
%cd ~
/home/aistudio
# !git clone https://gitee.com/paddlepaddle/PaddleNLP.git --depth=1
2.解压缩训练集
# !unzip -qoa data/data104940/train.zip
!head train/BQ/train
用微信都6年,微信没有微粒贷功能	4。  号码来微粒贷	0
微信消费算吗	还有多少钱没还	0
交易密码忘记了找回密码绑定的手机卡也掉了	怎么最近安全老是要改密码呢好麻烦	0
你好 我昨天晚上申请的没有打电话给我 今天之内一定会打吗?	什么时候可以到账	0
“微粒贷开通"	你好,我的微粒贷怎么没有开通呢	0
为什么借款后一直没有给我回拨电话	怎么申请借款后没有打电话过来呢!	1
为什么我每次都提前还款了最后却不给我贷款了	30号我一次性还清可以不	0
请问一天是否都是限定只能转入或转出都是五万。	微众多少可以赎回短期理财	0
微粒咨询电话号码多少	你们的人工客服电话是多少	1
已经在银行换了新预留号码。	我现在换了电话号码,这个需要更换吗	1
!head train/LCQMC/train
喜欢打篮球的男生喜欢什么样的女生	爱打篮球的男生喜欢什么样的女生	1
我手机丢了,我想换个手机	我想买个新手机,求推荐	1
大家觉得她好看吗	大家觉得跑男好看吗?	0
求秋色之空漫画全集	求秋色之空全集漫画	1
晚上睡觉带着耳机听音乐有什么害处吗?	孕妇可以戴耳机听音乐吗?	0
学日语软件手机上的	手机学日语的软件	1
打印机和电脑怎样连接,该如何设置	如何把带无线的电脑连接到打印机上	0
侠盗飞车罪恶都市怎样改车	侠盗飞车罪恶都市怎么改车	1
什么花一年四季都开	什么花一年四季都是开的	1
看图猜一电影名	看图猜电影!	1
!head train/OPPO/train
充电提示音	开启充电提示音	0
那叫你帮我找在这里香肠派对吗	那麻烦帮我定下位好吗	0
导航去大理	导航去观音桥	0
oppo手环怎么连接手机	如何连接oppo 手环	1
我也没感觉	我也没感触	1
咱们游戏里那个问道是那个版本啊	我不知道那是什么啊我是一个小学生诶	0
你应该就是不男不女的	那你就是不男不女	1
梦泪在哪直播	虎牙直播	0
小布下载万能钥匙	小布打开万能钥匙	0
手机密码忘	查找手机密码忘记了	0
3.查看testA
!head data/data104941/test_A
今天会不会下大雨哦	今天的天气很好哦
怎么退出微博会员续费	怎么退出微博会员
企业帐户怎么开通	企业账户怎么开通
农历多少今天	还有多少天到冬天
你今年应该过第多少个生日了呢	那你今年多大了
明天有雨吗明天	你明天,明天走一天
十字路口用英文怎么说	十字路口英文
梦见死去的亲人还有猫	梦见去世的亲人还有猫
2020广东放假	2020浙江放假
敦煌莫高窟的历史	敦煌莫高窟的文物
4.训练集合并

注意事项:

仅执行一次没有表头遇到读不进来得设置error_bad_lines=False分隔符设置 sep=’\t’
%cd  ~
/home/aistudio
import pandas as pd
# 读取3个数据集的训练集
LCQMC_train = pd.read_csv('train/LCQMC/train', sep = '\t',   header=None)
OPPO_train = pd.read_csv('train/OPPO/train', sep = '\t',  header=None)
BQ_train = pd.read_csv('train/BQ/train', sep="\t", header=None,  error_bad_lines=False)
b'Skipping line 20746: expected 3 fields, saw 4\nSkipping line 54107: expected 3 fields, saw 4\nSkipping line 65083: expected 3 fields, saw 4\nSkipping line 69869: expected 3 fields, saw 4\n'
LCQMC_train=LCQMC_train.dropna()
LCQMC_train.head()
0120喜欢打篮球的男生喜欢什么样的女生爱打篮球的男生喜欢什么样的女生11我手机丢了,我想换个手机我想买个新手机,求推荐12大家觉得她好看吗大家觉得跑男好看吗?03求秋色之空漫画全集求秋色之空全集漫画14晚上睡觉带着耳机听音乐有什么害处吗?孕妇可以戴耳机听音乐吗?0
OPPO_train=OPPO_train.dropna()
OPPO_train.head()
0120充电提示音开启充电提示音01那叫你帮我找在这里香肠派对吗那麻烦帮我定下位好吗02导航去大理导航去观音桥03oppo手环怎么连接手机如何连接oppo 手环14我也没感觉我也没感触1
BQ_train.head()
0120用微信都6年,微信没有微粒贷功能4。 号码来微粒贷0.01微信消费算吗还有多少钱没还0.02交易密码忘记了找回密码绑定的手机卡也掉了怎么最近安全老是要改密码呢好麻烦0.03你好 我昨天晚上申请的没有打电话给我 今天之内一定会打吗?什么时候可以到账0.04“微粒贷开通"你好,我的微粒贷怎么没有开通呢0.0
BQ_train=BQ_train.dropna()
BQ_train[2]=BQ_train[2].astype(int)
BQ_train.head(10)
0120用微信都6年,微信没有微粒贷功能4。 号码来微粒贷01微信消费算吗还有多少钱没还02交易密码忘记了找回密码绑定的手机卡也掉了怎么最近安全老是要改密码呢好麻烦03你好 我昨天晚上申请的没有打电话给我 今天之内一定会打吗?什么时候可以到账04“微粒贷开通"你好,我的微粒贷怎么没有开通呢05为什么借款后一直没有给我回拨电话怎么申请借款后没有打电话过来呢!16为什么我每次都提前还款了最后却不给我贷款了30号我一次性还清可以不07请问一天是否都是限定只能转入或转出都是五万。微众多少可以赎回短期理财08微粒咨询电话号码多少你们的人工客服电话是多少19已经在银行换了新预留号码。我现在换了电话号码,这个需要更换吗1
# 合并3个数据集的训练集
df_tmp = LCQMC_train.append(OPPO_train)
all_train = df_tmp.append(BQ_train)
all_train.info

   
  
all_train_2=all_train
all_train_2[0]=all_train_2[1]
all_train_2[1]=all_train[0]
all_train_2.head()
0120爱打篮球的男生喜欢什么样的女生爱打篮球的男生喜欢什么样的女生11我想买个新手机,求推荐我想买个新手机,求推荐12大家觉得跑男好看吗?大家觉得跑男好看吗?03求秋色之空全集漫画求秋色之空全集漫画14孕妇可以戴耳机听音乐吗?孕妇可以戴耳机听音乐吗?0
all_train=all_train.append(all_train_2)
# 另存
all_train.to_csv('all_train.csv', sep = '\t', index=None, header=None)
!head all_train.csv
爱打篮球的男生喜欢什么样的女生	爱打篮球的男生喜欢什么样的女生	1
我想买个新手机,求推荐	我想买个新手机,求推荐	1
大家觉得跑男好看吗?	大家觉得跑男好看吗?	0
求秋色之空全集漫画	求秋色之空全集漫画	1
孕妇可以戴耳机听音乐吗?	孕妇可以戴耳机听音乐吗?	0
手机学日语的软件	手机学日语的软件	1
如何把带无线的电脑连接到打印机上	如何把带无线的电脑连接到打印机上	0
侠盗飞车罪恶都市怎么改车	侠盗飞车罪恶都市怎么改车	1
什么花一年四季都是开的	什么花一年四季都是开的	1
看图猜电影!	看图猜电影!	1
5.合并测试集

仅执行一次

# 读取3个数据集的测试集
LCQMC_dev = pd.read_csv('train/LCQMC/dev', sep = '\t', header=None)
OPPO_dev = pd.read_csv('train/OPPO/dev', sep = '\t', header=None)
BQ_dev = pd.read_csv('train/BQ/dev', sep="\t", header=None, error_bad_lines=False)
# 合并3个数据集的测试集
df_tmp = LCQMC_dev.append(OPPO_dev)
all_dev = df_tmp.append(BQ_dev)
all_dev.dropna()
0120开初婚未育证明怎么弄?初婚未育情况证明怎么开?11谁知道她是网络美女吗?爱情这杯酒谁喝都会醉是什么歌02人和畜生的区别是什么?人与畜生的区别是什么!13男孩喝女孩的尿的故事怎样才知道是生男孩还是女孩04这种图片是用什么软件制作的?这种图片制作是用什么软件呢?1............9995您好,我还款了怎么还没扣款今天一直没有扣款19996有联系方式吗?电话号码是多少19997昨天打的电话我没接到我开通却总是接不到你们的电话199980.05%是日利率如何借款,利息如何计算09999不使用可以关闭吗?额度申请成功后会短信通知吗0

28802 rows × 3 columns

all_dev.info

   
  
all_dev_2=all_dev
all_dev_2[0]=all_dev_2[1]
all_dev_2[1]=all_dev[0]
all_dev_2.head()
0120初婚未育情况证明怎么开?初婚未育情况证明怎么开?11爱情这杯酒谁喝都会醉是什么歌爱情这杯酒谁喝都会醉是什么歌02人与畜生的区别是什么!人与畜生的区别是什么!13怎样才知道是生男孩还是女孩怎样才知道是生男孩还是女孩04这种图片制作是用什么软件呢?这种图片制作是用什么软件呢?1
all_dev=all_dev.append(all_dev_2)
# 另存
all_dev.to_csv('all_dev.csv', sep = '\t', index=None, header=None)
! tail all_dev.csv
怎么成为微粒贷 怎么开通微粒贷	怎么成为微粒贷 怎么开通微粒贷	1
我如果今天借4000什么时候到还款日,还多少钱	我如果今天借4000什么时候到还款日,还多少钱	0
借一万,有没有多久开始计算利息	借一万,有没有多久开始计算利息	1
财付通怎么绑定银行卡	财付通怎么绑定银行卡	1
电话确认需要等待多久?	电话确认需要等待多久?	1
今天一直没有扣款	今天一直没有扣款	1
电话号码是多少	电话号码是多少	1
我开通却总是接不到你们的电话	我开通却总是接不到你们的电话	1
如何借款,利息如何计算	如何借款,利息如何计算	0
额度申请成功后会短信通知吗	额度申请成功后会短信通知吗	0
二、训练 1.更新paddlenlp至2.0.8版本

注意:一定要更新,不更新会出问题。

!pip install -U paddlenlp
2.修改train相关参数

据悉这个效果好,精度高,我来试试

45行
parser.add_argument("--epochs", default=30, type=int, help="Total number of training epochs to perform.")
47行
parser.add_argument('--save_step', default=500, type=int, help="Step interval for saving checkpoint.")
202行
            if global_step % args.eval_step == 0 and rank == 0 and global_step>5000:
3.开始训练
%cd ~/PaddleNLP/examples/text_matching/question_matching
/home/aistudio/PaddleNLP/examples/text_matching/question_matching
!python -u -m paddle.distributed.launch --gpus "0" train.py        --train_set /home/aistudio/all_train.csv        --dev_set /home/aistudio/all_dev.csv        --device gpu        --eval_step 1000        --save_dir ./checkpoints        --train_batch_size 50        --rdrop_coef 0.0        --seed 1024        --epochs 1
三、预测 1.A TEST

修改PaddleNLP/examples/text_matching/ernie_matching/predict_pointwise.py,让结果输出到 ccf_qianyan_qm_result_A.csv

    with open('ccf_qianyan_qm_result_A.csv','w') as f:
        for idx, y_pred in enumerate(y_preds):
            text_pair = valid_ds[idx]
            text_pair["pred_label"] = y_pred
            print(text_pair)
            f.writelines(str(y_pred)+'\n')
%cd ~/PaddleNLP/examples/text_matching/question_matching
!python -u     predict.py     --device     --params_path "./checkpoints/model_10000/model_state.pdparams"     --batch_size 128     --input_file "${test_set}"     --result_file "predict_result"
2.查看
!head ccf_qianyan_qm_result_A.csv
3. 下载并提交即可

本文《2021 CCF BDCI 千言-问题匹配鲁棒性评测-baseline》版权归AI Studio所有,引用2021 CCF BDCI 千言-问题匹配鲁棒性评测-baseline需遵循CC 4.0 BY-SA版权协议。


推荐阅读
  • 本文深入探讨了 MXOTDLL.dll 在 C# 环境中的应用与优化策略。针对近期公司从某生物技术供应商采购的指纹识别设备,该设备提供的 DLL 文件是用 C 语言编写的。为了更好地集成到现有的 C# 系统中,我们对原生的 C 语言 DLL 进行了封装,并利用 C# 的互操作性功能实现了高效调用。此外,文章还详细分析了在实际应用中可能遇到的性能瓶颈,并提出了一系列优化措施,以确保系统的稳定性和高效运行。 ... [详细]
  • 本题库精选了Java核心知识点的练习题,旨在帮助学习者巩固和检验对Java理论基础的掌握。其中,选择题部分涵盖了访问控制权限等关键概念,例如,Java语言中仅允许子类或同一包内的类访问的访问权限为protected。此外,题库还包括其他重要知识点,如异常处理、多线程、集合框架等,全面覆盖Java编程的核心内容。 ... [详细]
  • 如何利用Python脚本实现钉钉自动化考勤打卡
    本文详细探讨了利用Python脚本实现钉钉自动化考勤打卡的方法。通过具体实例操作,解决了很多用户在实际应用中遇到的难题,帮助读者高效掌握这一实用技能。 ... [详细]
  • Python网络爬虫入门:利用urllib库进行数据抓取
    Python网络爬虫入门:利用urllib库进行数据抓取在数据科学和Web开发领域,Python凭借其简洁高效的特性成为首选语言。本文主要介绍了如何在Windows环境下使用Python的urllib库进行基本的网络数据抓取。考虑到命令行操作的不便,作者选择了Jupyter Notebook作为开发环境,不仅简化了配置过程,还提供了直观的数据处理和可视化功能。通过实例演示,读者可以轻松掌握urllib的基本用法,为深入学习网络爬虫技术打下坚实基础。 ... [详细]
  • 进程(Process)是指计算机中程序对特定数据集的一次运行活动,是系统资源分配与调度的核心单元,构成了操作系统架构的基础。在早期以进程为中心的计算机体系结构中,进程被视为程序的执行实例,其状态和控制信息通过任务描述符(task_struct)进行管理和维护。本文将深入探讨进程的概念及其关键数据结构task_struct,解析其在操作系统中的作用和实现机制。 ... [详细]
  • 成功实现Asp.Net MVC3网站与MongoDB数据库的高效集成
    我们成功地构建了一个基于Asp.NET MVC3框架的网站,并实现了与MongoDB数据库的高效集成。此次更新不仅完善了基本的创建和显示功能,还全面实现了数据的增删改查操作。在创建功能方面,我们修复了之前代码中的错误,确保每个属性都能正确生成。此外,我们还对数据模型进行了优化,以提高系统的性能和稳定性。 ... [详细]
  • 利用 Python 实现 Facebook 账号登录功能 ... [详细]
  • 步入人工智能新时代,掌握这些关键知识点至关重要。AI技术将成为人类的重要辅助工具,不仅能够扩展和增强人类的智能,还能帮助我们实现更加卓越的成就。新一代人工智能技术的发展将为各行各业带来深远的影响,推动社会进步与创新。 ... [详细]
  • 深入解析Spring框架中的双亲委派机制突破方法
    在探讨Spring框架中突破双亲委派机制的方法之前,首先需要了解类加载器的基本概念。类加载器负责将类的全限定名转换为对应的二进制字节流。每个类在被特定的类加载器加载后,其唯一性得到保证。然而,这种机制在某些场景下可能会限制灵活性,因此Spring框架提供了一些策略来突破这一限制,以实现更加动态和灵活的类加载。这些策略不仅能够提升系统的可扩展性,还能在复杂的运行环境中确保类的正确加载和管理。 ... [详细]
  • 深入解析:使用C++实现Python字节数组(struct)的高效处理方法 ... [详细]
  • 可转债数据智能抓取与分析平台优化
    本项目旨在优化可转债数据的智能抓取与分析平台。通过爬取集思录上的可转债信息(排除已发布赎回的债券),并结合安道全教授提出的三条安全线投资策略,新增了建仓线、加仓线和重仓线,以提供更精准的投资建议。 ... [详细]
  • 六个接私活的平台,技术在手,财富自由!值得推荐给每一位专业人士!
    本文将介绍六个适合专业人士接私活的平台,帮助技术人才实现财富自由。这些平台不仅提供了丰富的项目机会,还为用户搭建了高效的合作桥梁,是每位技术人士不容错过的资源。 ... [详细]
  • 在探讨SpringCloud环境中实现跨标签页或新窗口的单点登录机制时,重点分析了localStorage与sessionStorage的应用。通过使用localStorage存储token,可以确保其在浏览器关闭后仍有效,但需手动设置过期时间以增强安全性。相比之下,sessionStorage仅在当前会话期间有效,适用于临时数据存储。文中详细讨论了两种存储方式的技术细节及其在实际开发中的应用策略。 ... [详细]
  • HTML5大文件传输技术深度解析与实践分享
    本文深入探讨了HTML5在Web前端开发中实现大文件上传的技术细节与实践方法。通过实例分析,详细讲解了如何利用HTML5的相关特性高效、稳定地处理大文件传输问题,并提供了可供参考的代码示例和解决方案。此外,文章还讨论了常见的技术挑战及优化策略,旨在帮助开发者更好地理解和应用HTML5大文件上传技术。 ... [详细]
  • Django框架进阶教程:掌握Ajax请求的基础知识与应用技巧
    本教程深入探讨了Django框架中Ajax请求的核心概念与实用技巧,帮助开发者掌握异步数据交互的方法,提升Web应用的响应速度和用户体验。通过实例解析,详细介绍了如何在Django项目中高效实现Ajax请求,涵盖从基础配置到复杂场景的应用。 ... [详细]
author-avatar
手机用户2502881415
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有