预训练思考与基于预训练模型的应用例子

介绍

本篇文章主要讲基于bert预训练模型的一些例子,希望可以从不同角度理解与应用基于bert的一些应用。

nlp发展了这么多年,经历了规则,统计,模型等阶段,目前预训练模型基本算是一统天下了。

大公司有更多资源,可以联合一些科研机构与组织搞一些事情,比如微软和nvidia利用更多的资源来探测模型的边界。
这个就很有意思,思考一个问题,什么叫意识?什么情况下产生了意识?

什么是意识,这个可以尝试用两个词来理解,计算算计。计算很好理解,比如计算机,计算器,本质来讲是人输入指令,获得一个预期结果,不会产生任何歧义。而算计呢,它是一个综合体,它的输出是多样的,有可能不可预知的。它具有自己的思考。

那什么情况下产生了意识?这个问题就是这些大佬们所想要尝试认知的东西。比如人类有30亿碱基对,蚊子才几千万,单细胞生物可能更少可能就被认为不具备意识?如此看来的话,那我可以尝试扩充网络容量,更多的训练数据集,等到了某个程度下,突然机器就具备了某种智能。

这是个有意思的研究!

不过扯了这么多,小公司的话,更多是基于预训练模型的微调。

为什么要基于预训练模型微调呢,严格意义来讲就是预训练模型已经学习到了语义,一个认知大脑。基于此,给定一个具体任务,来对其进行微调,使其具备更快的收敛能力和更好的泛化能力。

所以掌握下还是很重要滴。

下面介绍四个应用示例,每一种大致介绍下,更具体的实现可以自行实现。

不过作者在这里使用了Trainer,这是transformers出的一套工具,可以让你更快的训练,但是封装太高,懒得折腾了,不如自己从头写。

命名实体任务

代码.

这个是个ner任务,不知道ner的自行百度,模型后面接了一个linear,如果想要更深入,可以看看crf。

不过这个任务如果用于分词,词性标注还是很nice的。

句子对相似度

代码.

这个任务还是蛮有意思的,之前也有类似的比赛。比如天池 疫情相似句对判定大赛 线上第一名方案。

整体实现思路基本一致,不过作者加入了对抗训练这些东西,感兴趣可以看看。

句子分类

代码.

这个就是多分类任务,也是比较常见的场景。

阅读理解

代码.

这个我没看。

总结

好吧,这本书快让我水了一波,感兴趣的需要基础的老铁们可以多翻翻。

你可能感兴趣的:(自然语言处理,人工智能,nlp)