


- 340M 参数






BERT
自监督学习的目标跟目标越接近越好。

一个任务:预测句子中被mask的词:
BERT通过Masking Input来获得训练数据

mask有两种做法:
-
将某个字token换成一个特殊符号(代表盖住)
-
随机把某个字换成另外一个字

盖住的部分输出的向量作为Linear层的输入,然后送入softmax得到所有感兴趣词的概率分数。
盖住的字就能作为标签

另外一个任务:预测下一句 -
cls
-
sep

两个句子应不应该接到一起,这项任务太简单了。改进的方法:RoBERTa,SOP(前后句子都能互相组队)

使用BERT
- 填空题
- 预测下一句
基于上面功能可以做一些downstream任务

用Pre-train训练,fine-tune Bert模型
模型评估

九个任务上的平均分是多少表示模型的好坏。

基于Bert模型,自然语言处理能力有比较大的提升。
使用
- case1: 输入是序列,输出是类别。
bert提取特征,加线性层+softmax分类,仍然需要一些标注数据


主要是学线性层的参数,bert得到的权重比随机初始化的要好。

- case2: 输入是序列,输出也是序列,类似于输入,比如词性标注

- case3: 输入两个句子,输出一个类别,比如推理(基于输入能否推出某个论点)


- case4: 问答系统(有点限制的问答,答案一定出现在文章里面)

输入一个问题,输出两个正整数,表示第s个字到第e个字作为答案。



正确答案在文章中的起始位置和结束位置。
把文章截成一小段一小段作为训练数据。

- BERT
- ALBERT
时间:
- TPU V3 花费8天


将句子弄坏,看看后续能不能还原出来。


- T5 训练,公开数据1PB
BERT工作原理
将字转成embeeding后,相近的字特征空间里比较接近

计算特征之间的相似性:


BERT的输出,每个向量代表那个对应的输入的字。一个词汇的意思取决于上下文:

早期的cbow技术的思想与BERT的想法一样,word embedding, 两层线性层。Bert就是深度学习版本的cbow,还考虑上下问:



DNA转成对应的文字,然后再做分类:


Multi-lingual BERT



用多种语言混合的训练填空题,结果在QA时候用英文训练,能够比较好的回答中文的QA;

不同语种之间相同意思在特征空间比较


两天没有变,一周突然就变了:

资料变多,训练效果就变好。

矛盾点:英文输出英文,中文输出中文,假如BERT能够学习不同语言的embedding,假如是英文句子空着的地方,为什么不推理出来的是中文呢?说明BERT还是能够识别出语种的差距:

加上差距后就能英文输入,中文输出:

GPT
任务是预测接下来后出现的token是什么

应用的是Transformer的decoder,不会看到之后的词:

有生成文字的能力:

使用


- few shot learning
- one-shot learning
- zero-shot learning


第3代GPT在42个任务上进行测试,效果还不是很好,但是在3.5及以后,效果基本上达到人类水平。
GTP3的细节:

其他方面




语音mask版本的bert和gpt,预测接下来出现的内容。缺评测的benchmark,文本类的有GLUE,语音上有superb



















