BERT 模型为什么这么强?
如果你是一名自然语言处理从业者,那你一定听说过大名鼎鼎的 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 领域的主流技术。
1. 基于超大规模的高精度模型
从 BERT 模型到 RoBERTa 模型、GPT 模型,再到 GPT-2 模型、GPT-3 模型,模型效果的提升已经证明了——用更多的数据可以“跑”出更强大、更通用的预训练模型。
近年来,英伟达、谷歌、Open-AI 相继放出的“巨无霸”模型有 MegatronLM(含 83 亿个参数)、T5(含 110 亿个参数)、GPT-3(含 1500 亿个参数)。
当然,“巨无霸”模型的能力并不仅仅停留在精度上,它们甚至可以通过语义交互的方式直接完成 NLP 任务。
2. 基于超小规模的高精度模型
快速发展的深层神经网络,在过去的十年中彻底改变了 NLP 领域。
另外,诸如保护用户隐私、消除网络延迟、启用离线功能、降低运营成本等问题,要求模型能运行在设备终端,而不是数据中心。这种需求推动了小规模 NLP 模型的迅速发展。
BERT 模型逐渐在往“大规模”和“小规模”两个极端发展。如何用尽可能少的参数取得和“大模型”接近的效果,同时让训练速度和预测速度翻倍,是一个很实际、很有价值的课题。
华为诺亚方舟实验室发布的 TinyBERT 模型、北京大学的 FastBERT 模型,在这方面都取得了瞩目的成绩。
3. 基于小样本训练的模型
在实际业务场景中,中小 AI 企业往往容易出现数据量不足的问题。
例如,用户需要订制一个客服机器人,但只有 100 个标准问题,这么小的数据集不足以支撑模型的训练。
对于这类问题,除花费高成本找标注团队制造数据外,还可以通过迁移学习、小样本学习的方法来让模型通过少量样本进行学习,从而获得较强的泛化能力。这些学习已经成为近年的研究热点之一。
▼
本内容摘自《基于 BERT 模型的自然语言处理实战》,想了解更多关于 BERT 模型的内容,欢迎阅读此书。
▊《基于 BERT 模型的自然语言处理实战》
李金洪 著
全彩印刷
清晰的学习主线
通过本书,读者可以熟练地在 PyTorch 框架中开发并训练神经网络模型,快速地使用 BERT 模型完成各种主流的自然语言处理任务,独立地设计并训练出针对特定需求的 BERT 模型,轻松地将 BERT 模型封装成 Web 服务部署到云端。
本书结构清晰、案例丰富、通俗易懂、实用性强,适合对自然语言处理、BERT 模型感兴趣的读者作为自学教程。另外,本书也适合社会培训学校作为培训教材,还适合计算机相关专业作为教学参考书。
(京东满 100 减 50,快快扫码抢购吧!)
评论