自然语言处理中的常见大规模预训练语言模型

1. 预训练模型简介   

 

过去这三年,对自然语言是大放异彩的三年,它的一个标志就是基于注意力机制的神经网络在自然语言理解任务中大量应用。从大规模的语料数据到强有力的算力支持,加上深度学习算法模型,把自然语言带到一个全新的阶段。

预训练模型,则是使自然语言处理由原来的手工调参、依靠算法专家深度参与的阶段,进入到可以大规模、可复制的工业化实施的阶段。而且预训练模型从单语言、扩展到多语言、多模态任务。一路锐气正盛,所向披靡。

预训练模型把迁移学习很好地用起来了,让我们感到眼前一亮。这和小孩子读书一样,一开始语文、数学、化学都学,读书、网上游戏等,在脑子里积攒了很多。当他学习计算机时,实际上把他以前学到的所有知识都带进去了。如果他以前没上过中学,没上过小学,突然学计算机就不懂这里有什么道理。这和我们预训练模型一样,预训练模型就意味着把人类的语言知识,先学了一个东西,然后再代入到某个具体任务,就顺手了,就是这么一个简单的道理。

2. 为什么需要预训练语言模型?

自然语言处理(NLP),目的是使得计算机具备人类的听、说、读、写、译、问、答、搜索、摘要、对话和聊天等能力,并可利用知识和常识进行推理和决策,并支持客服、诊断、法律、教学等场景。自然语言理解,被认为是 AI 皇冠上的明珠。一旦有突破,则会大幅度推动 AI 在很多重要场景落地。

预训练首先通过自监督学习从大规模数据中获得与具体任务无关的预训练模型,从而体现某一个词在一个特定上下文中的语义表征。第二个步骤是微调,针对具体的任务修正网络。训练数据可以是文本、文本-图像对、文本-视频对。预训练模型的训练方法可使用自监督学习技术(如自回归的语言模型和自编码技术)。可训练单语言、多语言和多模态的模型。此类模型可经过微调之后,用于支持分类、序列标记、结构预测和序列生成等各项技术,并构建文摘、机器翻译、图片检索、视频注释等应用。

为什么我们要做预训练模型?首先,预训练模型是一种迁移学习的应用,利用几乎无限的文本,学习输入句子的每一个成员的上下文相关的表示,它隐式地学习到了通用的语法语义知识。第二,它可以将从开放领域学到的知识迁移到下游任务,以改善低资源任务,对低资源语言处理也非常有利。第三,预训练模型在几乎所有 NLP 任务中都取得了目前最佳的成果。最后,这个预训练模型+微调机制具备很好的可扩展性,在支持一个新任务时,只需要利用该任务的标注数据进行微调即可,一般工程师就可以实现。

3. 预训练语言模型的SOTA进展

自 2018 年谷歌发布 BERT 以来,预训练语言模型(Pre-trained Language Models,PLMs)逐渐成为自然语言处理(NLP)领域的主流模型。实践表明,预训练语言模型(plm)对各种下游NLP任务(如文本分类、语义相似度、语义角色标注、机器阅读理解、对话生成)是有益的。

在 GPU 多机多卡并行算力和海量无标注文本数据的双重支持下,预训练模型实现了参数规模与性能齐飞的局面,取得了人工智能和深度学习领域的革命性突破。国际著名互联网企业和研究机构互相竞争,将模型规模和性能不断推向新的高度。

2020年,OpenAI 公司发布的 GPT-3 模型更是一炮而红,将预训练模型在文本处理领域的应用推向了一个极致。它可以促进几个下游的中文自然语言处理任务,如对话、文章生成、完形填空和语言理解。大量实验表明, GPT-3 在小样本(甚至是零样本)学习的情况下,对许多NLP任务都有很好的处理效果。

在人工智能与深度学习领域围绕超大规模预训练模型展开的“军备竞赛”日益白热化,成为对海量数据、并行计算、模型学习能力的全方位考验。


自然语言处理中的常见大规模预训练语言模型_第1张图片

预训练模型规模以平均每年10倍的速度增长

(最后一列计算时间为使用单块NVIDIA V100 GPU训练的估计时间。M-百万,B-十亿)


自然语言处理中的常见大规模预训练语言模型_第2张图片

预训练模型研究发展图

4. GPT-3的特点

海量训练数据

GPT-3的与众不同之处在于它的运行规模和完成一系列令人难以置信的任务。第一版GPT于2018年发布,包含1.17亿个参数。2019年发布的GPT-2包含15亿个参数。相比之下,GPT-3拥有1750亿个参数,比其前身多100倍,比之前最大的同类NLP模型要多10倍。

GPT-3的训练数据集也十分庞大,包含近1万亿单词量的CommonCrawl数据集、网络文本、数据、维基百科等数据,数据量达到了45TB,整个英语维基百科(约600万个词条)仅占其训练数据的0.6%。训练数据的其他部分来自数字化书籍和各种网页链接。不仅包括新闻文章、食谱和诗歌之类的内容,还包括程序代码、科幻小说、宗教预言等各种你可以想象到的任何文字。上传到互联网的文本类型都可能成为其训练数据,其中还包括不良内容。比如伪科学、阴谋论、种族主义等等,这些内容也会投喂给AI。

模型使用代价高

GPT-3的模型参数量达到了惊人的1750亿个,据官方介绍,训练费用已经达到了惊人的1200万美元。但由于OpenAI并没有公布详细的训练费用明细,GPT-3模型的训练费用到底是多少依然是个谜。不过就算按市场上最便宜的GPU云服务的价格计算,模型的训练费用也超过460万美元,再加上模型迭代和调优的过程,耗费千万美元以上看来也所言非虚。

看到这里,可能大部分同学就要问了,我训练不起模型,难道我还用不起吗?不好意思,一般人还真用不起。

因为,OpenAI公司并没有开源GPT-3,甚至没有放出模型的下载链接,而是采用了开放API的方式供用户使用,OpenAI提供了4种收费模式:

        1)自由探索Explore版 (我等):可以免费使用3个月,或者10万token,哪个先到按哪个算,占着不用可不行。

        2)Create版(普通用户): 100美元一个月,200万token每月,超出的部分1k token按8美分计算;

        3)Build版(VIP): 400美元一个月,1000万token每月,超出的部分1k token按6美分计算;

        4)Scale版(尊享版):如果你是也就是生产级的大规模用户,联系官方就好,有专人服务。

按照这个定价策略,也就是说低于100美元/月基本就别想使用该服务了。如果你对模型效果不满意,想要微调,不好意思,那是大客户专享功能,微调目前只向 Scale 定价层的客户开放。

5.  GPT-3 到底有多牛?

虽然OpenAI公司在GPT-3的开源方面的态度不太友好,但毕竟人家的模型自己说了算,且从效果来看,有骄傲的资本。那么相较于之前的GPT-2,这次GPT-3有哪些明显的进步呢?

从训练方式来说,与之前版本并没有什么不同,GPT-3依旧延续之前的单向语言模型训练方式,只不过就是训练数据和参数有了几个数量级的提升。但从实际的效果来看,GPT-3的尝试至少验证了一点,就是将一个深度神经网络不断增大,它确实可以变得更加的聪明。

相较于当前的BERT模型,GPT-3主要能够解决两个问题,一个是避免对各领域内的标注数据的过分依赖,一个是避免对各领域数据分布的过度拟合,从而调教出一个更通用、更泛化的NLP模型。GPT-3的主要目标是用更少的领域数据,还有去掉微调步骤去解决问题。

自然语言处理中的常见大规模预训练语言模型_第3张图片

(图源:李宏毅《深度学习人类语言处理》)

直观来理解就是如图所示,GPT-3就是要拿掉Fine-tune(微调)这个环节,也拿到Task-Specific的示例资料,来直接对特殊的领域问题进行回答。

基于此,研究者们使用GPT-3在不同形式下进行了推理效果的测试,包括Zero-shot、One-shot、Few-shot三种,但是这三种形式都是不需要经过Fine-tuning的。因为GPT-3选择的是单向transformer,所以它在预测新的token时,会对之前的examples进行编码。

自然语言处理中的常见大规模预训练语言模型_第4张图片

那么,测试结果如何呢?

从各领域的42项基准测试中的平均表现来看,随着参数量的不断加大,其正确率在不断提升(当然有人会质疑,模型提升了10倍参数量,正确率才提升不到1倍),其中Few Shot的表现是最好的。

自然语言处理中的常见大规模预训练语言模型_第5张图片

而在封闭式的Trivia QA问答中,GPT-3的Few-Shot的表现已经可以好过经过Fine-tuned SOTA的成绩。此外在SuperGLUE测试上面也能达到超过当前SOTA的表现,以及生成非常逼真的文章,甚至能达到人类难以分辨是机器还是人类协作的程度。

自然语言处理中的常见大规模预训练语言模型_第6张图片

那么,在当前人们调用OpenAI开放的API接口之后,我们已经可以看到GPT-3的一系列的有趣案例了。

GPT-3现在能够出色地完成翻译、问答和完形填空任务,能够很好执行两位、三位的数学加减运算。还可以基于文本的描述生成代码、网站。

自然语言处理中的常见大规模预训练语言模型_第7张图片

(GPT-3将自然语言生成了代码和图形按钮)

可以为文本转换不同文体样式,比如把口语化变为书面语,把日常语言变为法律文书。或者把繁荣的法律语言变成日常语言,比如那些长长的“用户协议”。

自然语言处理中的常见大规模预训练语言模型_第8张图片

(GPT-3将日常语言转换为法律文书)

当然,GPT-3的主业更在于生成文本内容,比如段子、新闻、小说,甚至给出主题和关键词,都可以有模有样地编出一篇完整的论文。

自然语言处理中的常见大规模预训练语言模型_第9张图片

(仅给出标题和开头,GPT-3就完成了论文)

在和人类的多轮对话中,GPT-3表现也相当出色。比如下面这个名为Kosmopol的程序员和GPT-3展开了一段关于人类、AI与神的存在关系的“神秘”讨论。

自然语言处理中的常见大规模预训练语言模型_第10张图片

(聊到最后程序员表示,“我现在已经没有任何疑问”)

从现在网络上所发布出来的GPT-3的各项表现来看,GPT-3似乎在任何文本生成相关的领域都能发挥作用了。

6. 中文预训练模型简介

ERNIE

基于 Transformers 的双向编码表示(BERT)在多个自然语言处理任务中取得了广泛的性能提升。在预训练语言模型时,需要对语料进行 mask 操作,使模型在看不见 token 的情况下对 mask 的词语进行预测。

BERT 模型主要是聚焦在针对字或者英文word粒度的完形填空学习上面,没有充分利用训练数据当中词法结构,语法结构,以及语义信息去学习建模。比如 “我要买苹果手机”,BERT 模型 将 “我”,“要”, “买”,“苹”, “果”,“手”, “机” 每个字都统一对待,随机mask,丢失了“苹果手机” 是一个很火的名词这一信息,这个是词法信息的缺失。同时 我 + 买 + 名词 是一个非常明显的购物意图的句式,BERT 没有对此类语法结构进行专门的建模,如果预训练的语料中只有“我要买苹果手机”,“我要买华为手机”,哪一天出现了一个新的手机牌子比如栗子手机,而这个手机牌子在预训练的语料当中并不存在,没有基于词法结构以及句法结构的建模,对于这种新出来的词是很难给出一个很好的向量表示的。

为了利用这种思想提升预训练模型在中文的表现,百度发布了知识增强的表示模型 ERNIE,ERNIE 通过对训练数据中的词法结构,语法结构,语义信息进行统一建模,极大地增强了通用语义表示能力,在多项任务中均取得了大幅度超越BERT的效果。

CPM

北京智源人工智能研究院和清华大学研究团队合作开展大规模预训练模型开源计划,清源 CPM(Chinese Pretrained Models)是该计划下的以中文为核心的大规模预训练模型。首期开源内容包括26 亿参数规模的中文语言模型 (CPM-LM) 和217亿参数规模的结构化知识表示模型 (CPM-KM),可应用于中文自然语言理解、生成任务以及知识计算应用,所有模型免费向学术界和产业界开放下载,供研究使用。

与已有的中文预训练模型相比,本次发布的清源 CPM 大规模预训练模型具有以下特点:

1)学习能力强:能够在多种自然语言处理任务上,进行零次学习或少次学习达到较好的效果。

2)语料丰富多样:收集大量丰富多样的中文语料,包括百科、小说、对话、问答、新闻等类型。

3)行文自然流畅:基于给定上文,模型可以续写出一致性高、可读性强的文本,达到现有中文生成模型的领先效果。

4)模型规模大:本次发布的 CPM-LM 的参数规模为 26 亿,预训练中文数据规模100 GB,使用了 64 块 V100 GPU 训练时间约为 3 周。CPM-KG 的参数规模分别为217亿,预训练结构化知识图谱为 WikiData 全量数据,包含近 1300 个关系、8500万实体、4.8 亿个事实三元组,使用了 8 块 V100 GPU 训练时间约为 2 周。

7. 清源CPM效果

在“故事生成”演示中,用户可以任意填写一段初始文本,让模型去预测后续内容。这些初始文本可以是任意文体:例如小说、说明文、议论文、天气预报、体育报道、新闻报道,甚至是对话、知识问答以及数字推理,清源 CPM 都能仿照前文的风格和规律行文如流。在此举几个例子验证此单一预训语言练模型的多功能性。

CPM 预训练语言模型只需要对一个常识性问题的学习,就能依照规律提问和正确回答:

自然语言处理中的常见大规模预训练语言模型_第11张图片

能够根据前文真实的天气预报,像模像样地继续报道天气预报(不保证正确性):

自然语言处理中的常见大规模预训练语言模型_第12张图片

还能做一定的数理推理,模型的自动推理特性完全可以应用在电子表格软件中:

自然语言处理中的常见大规模预训练语言模型_第13张图片

甚至可以续写红楼梦片段:

自然语言处理中的常见大规模预训练语言模型_第14张图片


8. 小结

通过以上对预训练模型的初步分析,我们可以看到该领域的发展其实才刚刚起步,随着基于预训练模型的不断增多,对预训练模型的需求会越来越多,要求也会越来越高,相信在不久的将来,我们会迎来预训练模型及其应用的春天。特别是中文领域预训练模型的发展,会在工业界和学术界双向推动下,将迎来百花齐放的局面。

你可能感兴趣的:(自然语言处理中的常见大规模预训练语言模型)