中文预训练模型泛化能力挑战赛Baseline

比赛地址https://tianchi.aliyun.com/competition/entrance/531865/introduction

赛题背景

自从2017年具有划时代意义的Transformer模型问世以来,短短两年多的时间内,如雨后春笋般的出现了大量的预训练模型,比如:Bert,Albert,ELECTRA,RoBERta,T5,GPT3等等。然而之前的基准评测体系存在两个缺陷:评测强度不够,模型不通用。评测强度不够指的是选手只提交结果,不提交inference的代码。模型不通用指的是预训练模型不能保证在相同超参数情况下在所有任务上都获得比较好的性能。以上两点极大限制了预训练技术的应用和发展。如果我们能通过算法实现泛化能力强的中文预训练模型,这将提高下游业务的准确性,从而提升企业的核心竞争力,并为企业创造更多的价值。

本赛题数据集来自中文语言理解测评基准(CLUE), www.CLUEbenchmarks.com。为提供更好的比赛体验,我们同时为本赛题定制了系列工具教程,其中包括EasyTransfer、多任务baseline教程等,具体见参考资料

赛题数据

本赛题精选了以下3个具有代表性的任务,要求选手提交的模型能够同时预测每个任务对应的标签:

数据说明

OCNLI:是第一个非翻译的、使用原生汉语的大型中文自然语言推理数据集;�
OCEMOTION:是包含7个分类的细粒度情感性分析数据集;
TNEWS:来源于今日头条的新闻版块,共包含15个类别的新闻;

数据格式

任务1:OCNLI–中文原版自然语言推理

0 一月份跟二月份肯定有一个月份有. 肯定有一个月份有 0  
1 一月份跟二月份肯定有一个月份有. 一月份有 1  
2 一月份跟二月份肯定有一个月份有. 一月二月都没有 2  
3 一点来钟时,张永红却来了 一点多钟,张永红来了 0  
4 不讲社会效果,信口开河,对任何事情都随意发议论,甚至信谣传谣,以讹传讹,那是会涣散队伍、贻误事业的 以讹传讹是有害的 0  
(注:id 句子1 句子2 标签)
(注:标签集合:[蕴含,中性,不相关])

任务2:OCEMOTION–中文情感分类

0 你知道多伦多附近有什么吗?哈哈有破布耶...真的书上写的你听哦...你家那块破布是世界上最大的破布,哈哈,骗你的啦它是说尼加拉瓜瀑布是世界上最大的瀑布啦...哈哈哈''爸爸,她的头发耶!我们大扫除椅子都要翻上来我看到木头缝里有头发...一定是xx以前夹到的,你说是不是?[生病] sadness  
1 平安夜,圣诞节,都过了,我很难过,和妈妈吵了两天,以死相逼才终止战争,现在还处于冷战中。sadness  
2 我只是自私了一点,做自己想做的事情! sadness  
3 让感动的不仅仅是雨过天晴,还有泪水流下来的迷人眼神。happiness  
4 好日子 happiness  
(注:id 句子 标签)

任务3:TNEWS–今日头条新闻标题分类

0 上课时学生手机响个不停,老师一怒之下把手机摔了,家长拿发票让老师赔,大家怎么看待这种事? 108  
1 商赢环球股份有限公司关于延期回复上海证券交易所对公司2017年年度报告的事后审核问询函的公告 104  
2 通过中介公司买了二手房,首付都付了,现在卖家不想卖了。怎么处理? 106  
3 2018年去俄罗斯看世界杯得花多少钱? 112  
4 剃须刀的个性革新,雷明登天猫定制版新品首发 109  
(注:id 句子 标签)

Baseline

https://github.com/datawhalechina/team-learning-nlp/tree/master/PretrainModelsGeneralization 44
https://github.com/finlay-liu/tianchi-multi-task-nlp/blob/main/README.md

运行过程

  1. 下载Bert全权重,下载 https://huggingface.co/bert-base-chinese/tree/main 下载config.json vocab.txt pytorch_model.bin,把这三个文件放进tianchi-multi-task-nlp/bert_pretrain_model文件夹下。
  2. 下载比赛数据集,把三个数据集分别放进 tianchi-multi-task-nlp/tianchi_datasets/数据集名字/ 下面:

文件目录样例:

tianchi-multi-task-nlp/tianchi_datasets/OCNLI/total.csv
tianchi-multi-task-nlp/tianchi_datasets/OCNLI/test.csv
  1. 分开训练集和验证集,默认验证集是各3000条数据,参数可以自己修改:
python ./generate_data.py
  1. 训练模型,一个epoch:
python ./train.py

会保存验证集上平均f1分数最高的模型到 ./saved_best.pt

  1. 用训练好的模型 ./saved_best.pt 生成结果:
python ./inference.py
  1. 打包预测结果。
zip -r ./result.zip ./*.json
  1. 生成Docker并进行提交,参考:https://tianchi.aliyun.com/competition/entrance/231759/tab/174
  • 创建云端镜像仓库:https://cr.console.aliyun.com/
  • 创建命名空间和镜像仓库;
  • 然后切换到submission文件夹下,执行下面命令;
# 用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。
sudo docker login --username=xxx@mail.com registry.cn-hangzhou.aliyuncs.com

# 使用本地Dockefile进行构建,使用创建仓库的【公网地址】
# 如 docker build -t registry.cn-shenzhen.aliyuncs.com/test_for_tianchi/test_for_tianchi_submit:1.0 .
docker build -t registry.cn-shenzhen.aliyuncs.com/test_for_tianchi/test_for_tianchi_submit:1.0 .

输出构建过程:

Sending build context to Docker daemon  18.94kB
Step 1/4 : FROM registry.cn-shanghai.aliyuncs.com/tcc-public/python:3
---> a4cc999cf2aa
Step 2/4 : ADD . /
---> Using cache
---> b18fbb4425ef
Step 3/4 : WORKDIR /
---> Using cache
---> f5fcc4ca5eca
Step 4/4 : CMD ["sh", "run.sh"]
---> Using cache
---> ed0c4b0e545f
Successfully built ed0c4b0e545f
# ed0c4b0e545f 为镜像id,上面构建过程最后一行
sudo docker taged0c4b0e545f registry.cn-shenzhen.aliyuncs.com/test_for_tianchi/test_for_tianchi_submit:1.0

# 提交镜像到云端
docker push registry.cn-shenzhen.aliyuncs.com/test_for_tianchi/test_for_tianchi_submit:1.0
  1. 比赛提交页面,填写镜像路径+版本号,以及用户名和密码则可以完成提交。

比赛改进思路

  1. 修改 calculate_loss.py 改变loss的计算方式,从平衡子任务难度以及各子任务类别样本不均匀入手;
  2. 修改 net.py 改变模型的结构,加入attention层,或者其他层;
  3. 使用 cleanlab 等工具对训练文本进行清洗;
  4. 做文本数据增强,或者在预训练时候用其他数据集pretrain;
  5. 对训练好的模型再在完整数据集(包括验证集和训练集)上用小的学习率训练一个epoch;
  6. 调整bathSize和a_step,变更梯度累计的程度,当前是batchSize=16,a_step=16;
  7. 用 chinese-roberta-wwm-ext 作为预训练模型;

最终结果

  • 第一次提交结果


  • 第二次提交结果
  • 修改内容
    • 用 chinese-roberta-wwm-ext 作为预训练模型
    • 修改batchSize=32


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,013评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,205评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,370评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,168评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,153评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,954评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,271评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,916评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,382评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,877评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,989评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,624评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,209评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,199评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,418评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,401评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,700评论 2 345

推荐阅读更多精彩内容