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

P粉084495128
发布: 2025-07-25 10:32:27
原创
318人浏览过
本文介绍2021 CCF BDCI千言-问题匹配鲁棒性评测。赛题关注问题匹配模型在真实场景的鲁棒性,基于多个数据集从多维度评估。基线评测显示ERNIE-Gram模型效果佳,还提及R-Drop策略。文中还讲述了项目建立中训练集和测试集的合并过程,以及训练、预测的相关操作,最终得分79.788。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

2021 ccf bdci 千言-问题匹配鲁棒性评测-baseline - php中文网

〇、简介

1.比赛地址

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

2.赛题背景

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

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

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

当前大多数问题匹配任务采用单一指标,在同分布的测试集上评测模型的好坏,这种评测方式可能夸大了模型能力,并且缺乏对模型鲁棒性的细粒度优劣势评估。本次评测关注问题匹配模型在真实应用场景中的鲁棒性,从词汇理解、句法结构、错别字、口语化、对话理解五个维度检测模型的能力,从而发现模型的不足之处,推动语义匹配技术的发展。本次竞赛主要基于千言数据集,采用的数据集包括哈尔滨工业大学(深圳)的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_coef dev acc test-A acc test-B acc
ernie-1.0-base 0.0 86.96 76.20 77.50
bert-base-chinese 0.0 86.93 76.90 77.60
ernie-gram-zh 0.0 87.66 80.80 81.20
ernie-gram-zh 0.1 87.91 80.20 80.80
ernie-gram-zh 0.2 87.47 80.10 81.00

4.最终结果

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

AGI-Eval评测社区
AGI-Eval评测社区

AI大模型评测社区

AGI-Eval评测社区 63
查看详情 AGI-Eval评测社区

2021 CCF BDCI 千言-问题匹配鲁棒性评测-baseline - php中文网        

一、建立项目

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

1.解压缩基线

In [1]
%cd ~
登录后复制
       
/home/aistudio
登录后复制
       
In [2]
# !git clone https://gitee.com/paddlepaddle/PaddleNLP.git --depth=1
登录后复制
   

2.解压缩训练集

In [3]
# !unzip -qoa data/data104940/train.zip
登录后复制
   
In [4]
!head train/BQ/train
登录后复制
       
用微信都6年,微信没有微粒贷功能	4。  号码来微粒贷	0
微信消费算吗	还有多少钱没还	0
交易密码忘记了找回密码绑定的手机卡也掉了	怎么最近安全老是要改密码呢好麻烦	0
你好 我昨天晚上申请的没有打电话给我 今天之内一定会打吗?	什么时候可以到账	0
“微粒贷开通"	你好,我的微粒贷怎么没有开通呢	0
为什么借款后一直没有给我回拨电话	怎么申请借款后没有打电话过来呢!	1
为什么我每次都提前还款了最后却不给我贷款了	30号我一次性还清可以不	0
请问一天是否都是限定只能转入或转出都是五万。	微众多少可以赎回短期理财	0
微粒zi询电话号码多少	你们的人工客服电话是多少	1
已经在银行换了新预留号码。	我现在换了电话号码,这个需要更换吗	1
登录后复制
       
In [5]
!head train/LCQMC/train
登录后复制
       
喜欢打篮球的男生喜欢什么样的女生	爱打篮球的男生喜欢什么样的女生	1
我手机丢了,我想换个手机	我想买个新手机,求推荐	1
大家觉得她好看吗	大家觉得跑男好看吗?	0
求秋色之空漫画全集	求秋色之空全集漫画	1
晚上睡觉带着耳机听音乐有什么害处吗?	孕妇可以戴耳机听音乐吗?	0
学日语软件手机上的	手机学日语的软件	1
打印机和电脑怎样连接,该如何设置	如何把带无线的电脑连接到打印机上	0
侠盗飞车罪恶都市怎样改车	侠盗飞车罪恶都市怎么改车	1
什么花一年四季都开	什么花一年四季都是开的	1
看图猜一电影名	看图猜电影!	1
登录后复制
       
In [6]
!head train/OPPO/train
登录后复制
       
充电提示音	开启充电提示音	0
那叫你帮我找在这里香肠派对吗	那麻烦帮我定下位好吗	0
导航去大理	导航去观音桥	0
oppo手环怎么连接手机	如何连接oppo 手环	1
我也没感觉	我也没感触	1
咱们游戏里那个问道是那个版本啊	我不知道那是什么啊我是一个小学生诶	0
你应该就是不男不女的	那你就是不男不女	1
梦泪在哪直播	虎牙直播	0
小布下载万能钥匙	小布打开万能钥匙	0
手机密码忘	查找手机密码忘记了	0
登录后复制
       

3.查看testA

In [7]
!head data/data104941/test_A
登录后复制
       
今天会不会下大雨哦	今天的天气很好哦
怎么退出微博会员续费	怎么退出微博会员
企业帐户怎么开通	企业账户怎么开通
农历多少今天	还有多少天到冬天
你今年应该过第多少个生日了呢	那你今年多大了
明天有雨吗明天	你明天,明天走一天
十字路口用英文怎么说	十字路口英文
梦见死去的亲人还有猫	梦见去世的亲人还有猫
2020广东放假	2020浙江放假
敦煌莫高窟的历史	敦煌莫高窟的文物
登录后复制
       

4.训练集合并

注意事项:

  • 仅执行一次
  • 没有表头
  • 遇到读不进来得设置error_bad_lines=False
  • 分隔符设置 sep='\t'
In [8]
%cd  ~
登录后复制
       
/home/aistudio
登录后复制
       
In [9]
import pandas as pd
登录后复制
   
In [10]
# 读取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'
登录后复制
       
In [11]
LCQMC_train=LCQMC_train.dropna()
LCQMC_train.head()
登录后复制
       
                    0                1  2
0    喜欢打篮球的男生喜欢什么样的女生  爱打篮球的男生喜欢什么样的女生  1
1        我手机丢了,我想换个手机      我想买个新手机,求推荐  1
2            大家觉得她好看吗       大家觉得跑男好看吗?  0
3           求秋色之空漫画全集        求秋色之空全集漫画  1
4  晚上睡觉带着耳机听音乐有什么害处吗?     孕妇可以戴耳机听音乐吗?  0
登录后复制
               
In [12]
OPPO_train=OPPO_train.dropna()
OPPO_train.head()
登录后复制
       
                0            1  2
0           充电提示音      开启充电提示音  0
1  那叫你帮我找在这里香肠派对吗   那麻烦帮我定下位好吗  0
2           导航去大理       导航去观音桥  0
3    oppo手环怎么连接手机  如何连接oppo 手环  1
4           我也没感觉        我也没感触  1
登录后复制
               
In [13]
BQ_train.head()
登录后复制
       
                               0                 1    2
0               用微信都6年,微信没有微粒贷功能        4。  号码来微粒贷  0.0
1                         微信消费算吗           还有多少钱没还  0.0
2           交易密码忘记了找回密码绑定的手机卡也掉了  怎么最近安全老是要改密码呢好麻烦  0.0
3  你好 我昨天晚上申请的没有打电话给我 今天之内一定会打吗?          什么时候可以到账  0.0
4                        “微粒贷开通"   你好,我的微粒贷怎么没有开通呢  0.0
登录后复制
               
In [14]
BQ_train=BQ_train.dropna()
BQ_train[2]=BQ_train[2].astype(int)
登录后复制
   
In [15]
BQ_train.head(10)
登录后复制
       
                               0                  1  2
0               用微信都6年,微信没有微粒贷功能         4。  号码来微粒贷  0
1                         微信消费算吗            还有多少钱没还  0
2           交易密码忘记了找回密码绑定的手机卡也掉了   怎么最近安全老是要改密码呢好麻烦  0
3  你好 我昨天晚上申请的没有打电话给我 今天之内一定会打吗?           什么时候可以到账  0
4                        “微粒贷开通"    你好,我的微粒贷怎么没有开通呢  0
5               为什么借款后一直没有给我回拨电话   怎么申请借款后没有打电话过来呢!  1
6          为什么我每次都提前还款了最后却不给我贷款了       30号我一次性还清可以不  0
7         请问一天是否都是限定只能转入或转出都是五万。       微众多少可以赎回短期理财  0
8                     微粒zi询电话号码多少       你们的人工客服电话是多少  1
9                  已经在银行换了新预留号码。  我现在换了电话号码,这个需要更换吗  1
登录后复制
               
In [16]
# 合并3个数据集的训练集df_tmp = LCQMC_train.append(OPPO_train)
all_train = df_tmp.append(BQ_train)
登录后复制
   
In [17]
all_train.info
登录后复制
       
<bound method DataFrame.info of                         0                1  2
0        喜欢打篮球的男生喜欢什么样的女生  爱打篮球的男生喜欢什么样的女生  1
1            我手机丢了,我想换个手机      我想买个新手机,求推荐  1
2                大家觉得她好看吗       大家觉得跑男好看吗?  0
3               求秋色之空漫画全集        求秋色之空全集漫画  1
4      晚上睡觉带着耳机听音乐有什么害处吗?     孕妇可以戴耳机听音乐吗?  0
...                   ...              ... ..
86191           申请的额度能取现吗       取现一次性取完可以吗  0
86192           利息与罚息如何计算         咱这个利息多高啊  1
86193              如何申请货款         怎样开通我微粒贷  1
86194              多久才有贷款      凌晨以后的申请何时到账  1
86195     你好 我要换卡怎么换 我卡掉了             换卡失败  0

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

5.合并测试集

仅执行一次

In [22]
# 读取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)
登录后复制
   
In [23]
# 合并3个数据集的测试集df_tmp = LCQMC_dev.append(OPPO_dev)
all_dev = df_tmp.append(BQ_dev)
all_dev.dropna()
登录后复制
       
                   0               1  2
0        开初婚未育证明怎么弄?    初婚未育情况证明怎么开?  1
1        谁知道她是网络美女吗?  爱情这杯酒谁喝都会醉是什么歌  0
2        人和畜生的区别是什么?     人与畜生的区别是什么!  1
3         男孩喝女孩的尿的故事   怎样才知道是生男孩还是女孩  0
4     这种图片是用什么软件制作的?  这种图片制作是用什么软件呢?  1
...              ...             ... ..
9995   您好,我还款了怎么还没扣款        今天一直没有扣款  1
9996         有联系方式吗?         电话号码是多少  1
9997      昨天打的电话我没接到  我开通却总是接不到你们的电话  1
9998       0.05%是日利率     如何借款,利息如何计算  0
9999       不使用可以关闭吗?   额度申请成功后会短信通知吗  0

[28802 rows x 3 columns]
登录后复制
               
In [24]
all_dev.info
登录后复制
       
<bound method DataFrame.info of                    0               1  2
0        开初婚未育证明怎么弄?    初婚未育情况证明怎么开?  1
1        谁知道她是网络美女吗?  爱情这杯酒谁喝都会醉是什么歌  0
2        人和畜生的区别是什么?     人与畜生的区别是什么!  1
3         男孩喝女孩的尿的故事   怎样才知道是生男孩还是女孩  0
4     这种图片是用什么软件制作的?  这种图片制作是用什么软件呢?  1
...              ...             ... ..
9995   您好,我还款了怎么还没扣款        今天一直没有扣款  1
9996         有联系方式吗?         电话号码是多少  1
9997      昨天打的电话我没接到  我开通却总是接不到你们的电话  1
9998       0.05%是日利率     如何借款,利息如何计算  0
9999       不使用可以关闭吗?   额度申请成功后会短信通知吗  0

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

二、训练

1.更新paddlenlp至2.0.8版本

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

In [ ]
!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.开始训练

In [30]
%cd ~/PaddleNLP/examples/text_matching/question_matching
登录后复制
       
/home/aistudio/PaddleNLP/examples/text_matching/question_matching
登录后复制
       
In [ ]
!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')
登录后复制
   
In [ ]
%cd ~/PaddleNLP/examples/text_matching/question_matching
登录后复制
   
In [ ]
!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.查看

In [ ]
!head ccf_qianyan_qm_result_A.csv
登录后复制
   

3. 下载并提交即可

以上就是2021 CCF BDCI 千言-问题匹配鲁棒性评测-baseline的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号