前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >中文预训练模型泛化能力挑战赛Baseline

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

作者头像
听城
发布2021-03-02 14:54:10
7340
发布2021-03-02 14:54:10
举报
文章被收录于专栏:杂七杂八

赛题背景

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

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

赛题数据

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

数据说明

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

数据格式

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

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

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

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

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

代码语言:javascript
复制
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/数据集名字/ 下面:

文件目录样例:

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

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

  1. 用训练好的模型 ./saved_best.pt 生成结果:
代码语言:javascript
复制
python ./inference.py
  1. 打包预测结果。
代码语言:javascript
复制
zip -r ./result.zip ./*.json
  1. 生成Docker并进行提交,参考:https://tianchi.aliyun.com/competition/entrance/231759/tab/174
  • 创建云端镜像仓库:https://cr.console.aliyun.com/
  • 创建命名空间和镜像仓库;
  • 然后切换到submission文件夹下,执行下面命令;
代码语言:javascript
复制
# 用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。
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 .

输出构建过程:

代码语言:javascript
复制
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
代码语言:javascript
复制
# 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
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 赛题背景
  • 赛题数据
  • Baseline
    • 运行过程
      • 比赛改进思路
      • 最终结果
      相关产品与服务
      NLP 服务
      NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档