如果你是一名自然语言处理从业者,那你一定听说过大名鼎鼎的 BERT 模型。
BERT(Bidirectional Encoder Representations From Transformers)模型的“荣耀时刻”是2018年:称霸机器理解测试SQuAD,横扫其他10项NLP测试,达成“全面超过人类”成就。
BERT模型使用预训练和微调的方式来完成自然语言处理(Natural Language Processing,NLP)任务。这些任务包括问答系统、情感分析和语言推理等。
01
为什么BERT模型这么强?
BERT模型通过预测屏蔽子词(先将句子中的部分子词屏蔽,再令模型去预测被屏蔽的子词)进行训练的这种方式在语句级的语义分析中取得了极好的效果。
BERT模型还使用了一种特别的训练方式(先预训练,再微调),这种方式可以使一个模型适用于多个应用场景。这使得BERT模型刷新了11项NLP任务处理的纪录。
这11项NLP任务处理的纪录涵盖了如下4种场景,这4种场景也是BERT模型所适用的主要场景。
场景一:处理类似阅读理解的任务。
场景二:处理句子与段落间的匹配任务。
场景三:提取句子深层语义特征的任务。
场景四:基于句子或段落级别的短文本(长度小于512个子词的文本)处理任务。
目前,BERT模型已成为语言分析和挖掘,以及机器学习等领域中最流行的模型。它具有易于使用、稳定性强等诸多优点。
02
BERT模型与BERTology系列模型
BERT模型的出色表现,引起了业界广泛而强烈的反响。BERT模型的横空出世,仿佛是打开了处理NLP任务的“潘多拉魔盒”。随后涌现了一大批类似于BERT模型的预训练模型,它们被统称为BERTology系列模型。例如:
引入了BERT模型中的双向上下文信息的广义自回归模型——XLNet模型;
引入了BERT模型训练方式和目标的RoBERTa和SpanBERT模型;
结合了多任务及知识蒸馏(Knowledge Distillation)、强化BERT模型功能的MT-DNN模型。
BERTology系列模型一般都基于BERT模型改造而来,代码量不大,逻辑也不复杂。
但是,其极大规模的数据量、训练强度和模型容量,以及利用无监督模型的训练方式,使得其能力空前强大,在某些领域甚至已超过人类。但在日常中,常用BERT模型来代指本来的BERT模型和BERTology系列模型。这里的的BERT模型就是这样一种泛指。
例如,在不同类型的文章(包括散文、小说、新闻、科技文章等)数据集上训练出的GPT-3模型,可以写出不同风格的文章。它可以写出诗集、散文,甚至“金庸风格”的小说、新闻稿等。
03
学好自然语言处理的4件套
要想弄懂、学透BERT模型,需要脚踏实地从BERT模型的技术体系来了解其内部所涉及的技术栈,再根据技术栈中的内容一步步地进行了解和掌握。
BERT模型是由“Transformer模型中的编码器(Encoder)+双向(正向序列和反向序列)结构”组成的。因此,一定要熟练掌握Transformer模型的Encoder。这属于神经网络部分的知识。
另外,BERT模型的主要创新点是其独特的预训练方法,这种方法使用Masked Language Model和Next Sentence Prediction两种方法分别捕捉“词语”和“句子”级别的表示。这部分知识涵盖深度学习的训练模型知识和NLP领域的部分知识。
学好自然语言处理需要“4件套”:
神经网络的基础知识。
NLP的基础知识。
编程框架的使用。
BERT模型的原理及应用。
其中,前3部分是基础,这部分内容可以帮助读者“吃透”BERT模型;最后1部分是升华,这部分内容可以帮助读者开阔思路、增长见识,使读者能够真正驾驭BERT模型,活学活用,完成NLP任务。
04
学好自然语言处理的前提条件
学习本书,要求读者具有Python基础,并熟悉Matplotlib和Numpy库的使用。
读者不用担心自己数学基础不足、不懂神经网络原理等问题,PyTorch已经将这些底层算法统统封装成了高级接口,用户可以非常方便、快捷地利用它们进行开发。本书重点介绍如何快速使用PyTorch的这些接口来实现深度学习模型。
05
自然语言处理的技术趋势
早先人们常使用卷积神经网络、循环神经网络来处理自然语言任务,但Transformer模型的诞生改变了这个情况。
Transformer模型使用的是全新的注意力机制,达到了比卷积神经网络和循环神经网络更好的效果。而BERT模型则是在Transformer模型基础上的又一次优化,直接使NLP模型的性能达到前所未有的高度。
BERT模型已经成为自然语言处理的主流技术。
BERT模型是一种无监督的预训练语言模型。人们以BERT模型为基础,对其进行了结构调整、性能优化、再训练等,产生了许多在专业领域中表现更佳的模型。这些模型被统一称为BERTology系列模型。
BERTology系列模型在NLP的多种场景中都发挥了惊人的效果。从某种角度讲,BERTology系列模型所涉及的技术是当今NLP领域的主流技术。
从BERT模型到RoBERTa模型、GPT模型,再到GPT-2模型、GPT-3模型,模型效果的提升已经证明了——用更多的数据可以“跑”出更强大、更通用的预训练模型。
近年来,英伟达、谷歌、Open-AI相继放出的“巨无霸”模型有MegatronLM(含83亿个参数)、T5(含110亿个参数)、GPT-3(含1500亿个参数)。
当然,“巨无霸”模型的能力并不仅仅停留在精度上,它们甚至可以通过语义交互的方式直接完成NLP任务。
快速发展的深层神经网络,在过去的十年中彻底改变了NLP领域。
另外,诸如保护用户隐私、消除网络延迟、启用离线功能、降低运营成本等问题,要求模型能运行在设备终端,而不是数据中心。这种需求推动了小规模NLP模型的迅速发展。
BERT模型逐渐在往“大规模”和“小规模”两个极端发展。如何用尽可能少的参数取得和“大模型”接近的效果,同时让训练速度和预测速度翻倍,是一个很实际、很有价值的课题。
华为诺亚方舟实验室发布的TinyBERT模型、北京大学的FastBERT模型,在这方面都取得了瞩目的成绩。
在实际业务场景中,中小AI企业往往容易出现数据量不足的问题。
例如,用户需要订制一个客服机器人,但只有100个标准问题,这么小的数据集不足以支撑模型的训练。
对于这类问题,除花费高成本找标注团队制造数据外,还可以通过迁移学习、小样本学习的方法来让模型通过少量样本进行学习,从而获得较强的泛化能力。这些学习已经成为近年的研究热点之一。
▼
本内容摘自《基于BERT模型的自然语言处理实战》,想了解更多关于BERT模型的内容,欢迎阅读此书。
▊《基于BERT模型的自然语言处理实战》
李金洪 著
全彩印刷
清晰的学习主线
通过本书,读者可以熟练地在PyTorch框架中开发并训练神经网络模型,快速地使用BERT模型完成各种主流的自然语言处理任务,独立地设计并训练出针对特定需求的BERT模型,轻松地将BERT模型封装成Web服务部署到云端。
本书结构清晰、案例丰富、通俗易懂、实用性强,适合对自然语言处理、BERT模型感兴趣的读者作为自学教程。另外,本书也适合社会培训学校作为培训教材,还适合计算机相关专业作为教学参考书。
(京东满100减50,快快扫码抢购吧!)