你刷我,我刷你,霸榜CLUE甜蜜蜜

视学算法

共 2857字,需浏览 6分钟

 · 2021-07-04

点击上方视学算法”,选择加"星标"或“置顶

重磅干货,第一时间送达

卷友们好,我是rumor。

其实我这个卷都不配叫卷,真正的NLP极卷之地,乃是GLUE与CLUE这两个榜单

GLUE
CLUE

两年多前BERT刚出来的时候,每每GLUE江山易主我都跟着激动一把,但慢慢刺激久了就麻木了,再看到新闻反而不关注技术,而是佩服同学们的毅力。尤其是达摩院的StructBERT老哥,不管我隔多久去看一眼GLUE,它都稳稳在上面,给人一种说不出的安全感。我还专门去打听过,据说作者老哥刷榜只是顺带,主要还在做业务,真真卷出了我的想象力。

GLUE无法触及大家的G点之后,又开始了CLUE之旅。去年刚正式发布,今年就被卷爆了

记得今年年初的时候我们旁边MT-BERTs组也在刷,恰好前一天腾讯LICHEE模型刚发稿登上了榜首,第二天MT-BERTs就登顶了,我们小群里还看热闹,想着别人看到腾讯的文章,结果打开CLUE是美团第一,不知道LICHEE的心理阴影面积有多大。

更刺激的是4月份,阿里刚发稿公布PLUG模型登顶分类榜单,过两天就看到了华为Pangu发稿说又给刷了,这年头不仅刷榜卷,发稿也卷,不快的话过两天SOTA就又换人了。

而老牌NLP厂商搜狗也不肝示弱,BERTSG在4月份被Pangu刷下去之后,5月份又刷了回来。

直到昨天又出现了新的榜首,来自QQ浏览器搜索的Motian同学。

所以目前中国选手的战况是,百度ERNIE同学仍然在玩GLUE,处于世界级霸主的地位,阿里、华为双管齐下,派出StructBERT、PLUG、NEZHA、Pangu两路夹击,腾讯依旧主张赛马机制,派出LICHEE、BERTSG、Motian多位健将。其他厂如平安、我团、OPPO、创新工场(TBH)采取游击战术,打完了就撤。

其实我最佩服大家的是不光分数卷,名字也卷的不行

国际化的思路是围绕芝麻街起名,国内则是充分发挥了想象力。

从华为哪吒开始就一发不可收拾,荔枝、盘古、孟子、摩天相继出世,还有智源的悟道、文汇。

一个比一个恢弘磅礴,起名的时间可能比预训练的时间都长

看着大佬们这么卷,我不禁关掉B站,开始学习如何提升预训练模型。

下面就让我们从有限的公开博客里,看看各位大体量选手都进行了哪些优化,迎面走来的分别是:

  • 腾讯Motian[1]:总榜第一、十亿参数、1TB训练数据、encoder架构
  • 搜狗BERTSG[2]:总榜第二、百亿参数、2TB训练数据、encoder架构
  • 华为Pangu[3]:总榜第四、千亿参数、40TB训练数据、encoder-decoder架构
  • 阿里PLUG[4]:分类榜第三、百亿参数、1TB训练数据、encoder-decoder架构

预训练优化

第一个公认的提分方法是把单纯的MLM改成WWM,融入更多中文词汇、短语的知识,Motian和BERTSG都有采用。

其次除了MLM外,各位选手还采用了多任务方式,比如Motian加入了搜索点击曝光任务;BERTSG参考了Cross thought和对比学习,学到更多句子级别特征,同时加入了文章标题生成和段落顺序预测任务;Pangu的encoder则是基于StructBERT,其中分别加入了WSO(打乱词序)以及改进的NSP任务。

在模型参数量提升后,收敛速度也成了问题,可以用分阶段预训练解决。Motian参考BERT使用两阶段预训练,先训128长度,再512长度;对于encoder-decoder架构,Pangu采取的方法是先训练基于StructBERT的encoder,之后加上decoder进行生成模型训练,前90%的时间保留MLM,后10%去掉。

Motian的博客中还提到了一个消除MLM预训练-精调不一致的方法,不进行Mask,而是采用随机词/同义词替换,也获得了一些提升。

位置编码

绝对位置编码存在以下问题:

  1. 预训练数据足够多时,可学习的位置编码比sinusoidal更好,但可延展性差,长度不能超出范围
  2. 通过对Attention计算的分解可以发现,位置编码相乘之前还会经过参数矩阵的变化,之后不一定能保存位置信息
  3. 在文本中,term之间的相对位置其实比绝对位置重要(比如北京到深圳vs深圳到北京,更重要的其实是谁在前面)

因此NEZHA、XLNET、T5、DeBERTa等模型都采用了相对位置编码的方案,Motian也使用了相对位置编码,发现可以有1个百分点的提升。

模型结构优化

虽然对于Transformer结构的改进已经很多了,但实际在大模型刷榜时用的并不多,比较有效的策略是把Post-LN改为Pre-LN,实际发现Post-LN在训练超大模型时,若没有设置好warmup,会导致收敛效果变差。

训练速度优化

大模型不可避免需要并行优化,不然一张卡根本放不下。

加速方法可以参考这篇文章,总结下来就是数据并行、重计算、Tensor并行、Pipeline模型并行、优化器模型并行。

速度优化对于算法工程师的挑战还是很大的,经常会出很莫名的bug,或者好不容易搞好了但是效果莫名下降。刚一点的厂干脆自己做框架,比如百度Paddle和华为MindSpore,阿里也和自家云计算平台进行了合作。

总结

其实博客看下来,真正的干货不算多,很多特定任务的trick都没有公开,比如GLUE上做匹配任务之前都会先在MNLI、SNLI上精调,CLUE上估计也会针对不同任务和数据集有特殊的策略。

Anyway,虽然刷榜有时候被认为是人力过剩的出口,但对于这种热榜来说,真正有提升是很难的,每次都是千分位上的前进,大部分的novelty有限,但也正是一小步一小步的改进才能迸发出更大的提升。

但一个不好的现象是榜单对模型体量没有限制,纯粹变成了大厂之间的游戏,即使有小模型榜单,刷出来也没有总榜的影响力大,大家觉得性价比低也就不去刷了,只能通过论文来对比单模型方法上的提升。

最后,我发现起名是真的难,英文的套路是围绕芝麻街,而国内则不甘心延续别人的套路,历史名人、神话故事、水果、抽象词汇一起上,搞得我想了一会儿也没想到更好的。

参考资料

[1]

Motian: https://mp.weixin.qq.com/s/HQL0Hk49UR6kVNtrvcXEGA

[2]

BERTSG: https://pcedu.pconline.com.cn/1410/14101830.html

[3]

Pangu: https://www.sohu.com/a/463292432_491575

[4]

PLUG: https://finance.sina.com.cn/tech/2021-04-19/doc-ikmyaawc0523891.shtml



点个在看 paper不断!

浏览 28
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报