卷友们好,我是rumor。
没想到啊没想到。
最近中文大模型在CLUE的内卷之战轰轰烈烈,就是不见百度的身影,我就猜它肯定在憋什么大招,结果没想到大招来的这么快,也没想到这个大招还会波及到我。
前两天机器之心的新闻出来之后,各种技术群里都在刷3.0的效果,我leader给我发过来几张图,让负责KBQA的我直接好家伙:
当然,我的工作肯定不只是解决高频简单query,我还会解带约束问题,没想到它也会:
我还会解多跳问题,结果???
卷卷我这个小渣渣就算了,还去卷国际巨佬们:
霸一个榜就算了,2.0还稳稳在GLUE上,真是旱的旱死(我),涝的涝死:
同时,霸英文榜已经不能满足卷王了,ERNIE3.0还一下刷了几十个中文NLP任务,卷破天际:
不同于前两代,ERNIE3.0扩张到了百亿级参数量,并且增加了NLG预训练任务,具备了生成能力,在我发出灵魂拷问之后,它似乎还很有性格:
真是一个让人回味无穷的答案。
百度坐拥中文数据宝库,每次的ERNIE迭代都会有新任务出现,下面就让我们来回顾一下ERNIE的卷王养成之路,以及为什么这次格外强悍。
论文:https://arxiv.org/pdf/2107.02137.pdf
Demo:https://wenxin.baidu.com/wenxin/ernie
ERNIE1.0
1.0版本首先对原始的MLM任务进行改进,引入了Entity-level masking和Phrase-level masking,帮助模型学习更多的词汇短语知识,这个任务也成为了后续中文预训练模型的标配:
同时,1.0引入了DLM(Dialogue Language Model)对NSP任务进行了优化,在预测Mask token的同时判断输入的多轮对话(QRQ、QRR、QQR三种模式)是否真实,与基本的MLM任务交替训练,提升了大概1%:
ERNIE2.0
2.0版本首先是框架上的闭环化,把各种下游任务持续加入模型中提升效果:
其次引入了更多预训练任务,可谓是预训练大礼包。
Word-aware
Knowledge Masking:延续了1.0的实体/短语 masking
Capitalization Prediction:BERT模型分为cased和uncased两个版本,cased模型在NER等任务表现较好,uncased则更适合其他任务,为了融合这两个差距,加入了token大小写预测的任务
Token-Document Relation Prediction:预测句子中的词是否出现在了segment原始文档中,约等于预测token是否为关键词
Structure-aware
Sentence Reordering:打乱k个句子,预测原始顺序(给每个句子做k分类)
Sentence Distance:3分类任务,预测两个句子是相连、出现在同一个文档还是在不同文档
Semantic-aware
Discourse Relation:判断句子的语义关系,例如logical relationship (is a, has a, contract)
IR Relevance:3分类任务,强相关、弱相关和无关
ERNIE3.0
数据多真是可以为所欲为。
3.0版本依旧延续了之前的几个有效任务。
Word-aware
Knowledge Masking:同ERNIE1.0
Document Language Modeling:参考ERNIE-Doc,进行了更长文本的单向语言模型预训练,主要用于提升文本生成能力
Structure-aware
Sentence Reordering:同ERNIE2.0
Sentence Distance:同ERNIE2.0
Knowledge-aware
3.0版本这次提出了海量无监督文本与大规模知识图谱的平行预训练方法 (Universal Knowledge-Text Prediction)。将5千万知识图谱三元组与4TB大规模语料中相关的文本组成pair,同时输入到预训练模型之中进行联合掩码训练:
具体的数据梳理参考了关系抽取任务中的远程监督方式:
给定一篇文档,先找到出现在title中的候选实体三元组
如果头尾实体都出现在句子中,则算作一个pair
这种平行语料处理方式的假设是,如果两个实体间存在某种关系且出现在了同一句中,那么该句话则有可能包含了它们的关系。
该方式促进了结构化知识和无结构文本之间的信息共享,从而提升模型对于知识的记忆和推理能力。
训练数据共4TB,是迄今最大的中文语料库,CLUECorpus2020有100G,WuDaoCorpus2.0有2.3T,Pangu则有1.1T。
通过消融实验可以看到,知识与训练任务大概带来了1.5PP以上的提升,这在大模型预训练中是很难得的:
在结构上,3.0依旧采用持续学习的理念,同时为了适配更多下游任务,增加了自编码、自回归形式的多个任务网络:
同时,为了加快大模型在训练初期的收敛,3.0采用了progressive的训练策略,会逐渐增加序列长度、batch size、学习率和dropout rate等超参数。比如在训练base时,将batch size从8加到了2048、序列长度从128加到了512、学习率线性从0增加到1e-4、在warmup阶段让dropout为0,通过这个策略让base的训练提速了7个半小时:
最终,有了海量语料、多任务的加持以及底层丰富的共享知识,3.0在Zero-Shot场景也可以有很强的理解能力(求Pangu老哥的心理阴影面积):
Demo
下面就是玩Demo环节,我一定要玩坏它。
不得不说,3.0的知识问答真的强:
再看看自由创作模式:
好家伙,高度突然就上去了,学习就像一场游戏,不上线就被卸载了,不学就忘掉了。
Anyway,生成结果还是避免不了一些说着说着就飘了的情况,但知识问答的效果还是不错的,可能来自于海量参数的记忆力,也可能来自于知识增强的预训练方法,辛苦那个对齐数据的老哥了。
总结
之前有不少模型做过知识融合的探索,比如融合知识表示的清华ERNIE、也有根据实体直接加入相关三元组文本的K-BERT,像ERNIE3.0这种直接把三元组和对应句子一起输入的还是有很大挑战的,需要有丰富的语料来对齐三元组。这些实体和关系本身都有很强的先验知识,致使zero-shot场景下的问答、完形填空任务都有十几个点的提升。精调后在关系抽取、事件抽取上也比本身就很强的ERNIE2.0有着1个多点的提升。
都说人工智能的下一个阶段就是具备知识以及感知能力,BERT这波预训练模型已经证明了上下文理解,并在一定领域内的benchmark上超越了人类,而最近的谷歌LaMDA、百度ERNIE3.0也展现了越来越强的知识记忆效果,虽然随着计算量的增加即将面临一些瓶颈,但我还是相信科学的进步一定会逐渐累加,由量变产生质变。
毕竟,卷王出场,金玉满堂(下联来自ERNIE3.0)。
大家好我是rumor
一个热爱技术,有一点点幽默的妹子
欢迎关注我
带你学习带你肝
一起在人工智能时代旋转跳跃眨巴眼
「期待ERNIE4.0」