首页 > 手机 > 配件 > 从大炼模型到炼大模型,预训练模型

从大炼模型到炼大模型,预训练模型

来源:整理 时间:2022-04-01 05:21:36 编辑:华为40 手机版

不同于Radford等人(2018)使用单向语言模型进行预训练,BERT使用MLM预训练深度双向表征。代码和预训练模型将发布在goo.gl/language/bert。与从左到右的语言模型预训练不同,MLM目标允许表征融合左右两侧的语境,从而预训练一个深度双向Transformer。

自然语言处理有预训练好的模型么?

自然语言处理有预训练好的模型么

在计算机视觉领域,我们知道有很多预训练权重,例如vgg、resnet、densenet、mobilenet、shufflenet等等。在NLP领域,这方面的预训练模型目前并不是很多,不过很多NLP领域的开发人员也正在尝试完善该方向。目前也取得了一些成果,例如ELMo、ULMFiT 和 OpenAI Transformer,它们通过预训练语言模型在很多NLP的任务中取得了很不错的效果。

下面依次介绍这几个模型。ELMoELMo是一种深度语境化的词汇表征模型,它既对词所使用的复杂特征(例如语法和语义)进行建模,也建模了当这些词使用在不同的上下文(即模型一词多义)时的情形。这些词向量是深度双向语言模型(biLM)内部状态的学习函数,该模型在大型文本语料库上进行预训练。它们可以很容易地添加到现有的模型中,并且显著地提高了NLP在实际中的效果,包括问题回答、文本蕴含和文本情感分析。

ELMo官方网站:https://allennlp.org/elmoELMo github地址:https://github.com/allenai/allennlpOpenAI Transformer在OpenAI Transformer中也用到了预训练模型,他们通过无监督学习提高语言理解能力,已经在一系列不同的语言任务中获得了很不错的结果。

方法是两种现有思想的结合:transformers和无监督的预训练。研究人员在大量数据上训练一个transformer模型,利用语言建模作为训练信号,然后在稍小的监督数据集上对模型进行微调,以帮助解决特殊任务。OpenAI Transformer github地址:https://github.com/openai/finetune-transformer-lmOpenAI Transformer论文介绍地址:https://blog.openai.com/language-unsupervised/#contentULMFiTULMFiT认为可以在大型的语料库上预训练语言模型(例如维基百科),然后创建分类器。

但是我们的文本数据可能跟模型训练的文本数据有着一些差异,所以我们需要对其中的参数进行一些微调,将这些差异能够加入到模型中。然后,在语言模型的顶层添加一个分类图层,并且只训练这个图层。项目地址:http://nlp.fast.ai/category/classification.html论文介绍地址:http://nlp.fast.ai/classification/2018/05/15/introducting-ulmfit.html。

NLP预训练模型的研究进展有哪些

NLP预训练模型的研究进展有哪些

本文介绍了一种新的语言表征模型 BERT——来自 Transformer 的双向编码器表征。与最近的语言表征模型不同,BERT 旨在基于所有层的左、右语境来预训练深度双向表征。BERT 是首个在大批句子层面和 token 层面任务中取得当前最优性能的基于微调的表征模型,其性能超越许多使用任务特定架构的系统,刷新了 11 项 NLP 任务的当前最优性能记录。

近日,谷歌 AI 的一篇NLP论文引起了社区极大的关注与讨论,被认为是 NLP 领域的极大突破。如谷歌大脑研究科学家 Thang Luong Twitter 表示这是 NLP 领域的新时代。Twitter 上也有众多研究者参与讨论、转发了这篇论文:这篇刷新了 11 项 NLP 任务的论文不久之前已经上线,让我们一睹为快:研究证明语言模型预训练可以有效改进许多自然语言处理任务,包括自然语言推断、复述(paraphrasing)等句子层面的任务,以及命名实体识别、SQuAD 问答等 token 层面的任务。

前者通过对句子进行整体分析来预测句子之间的关系,后者则要生成 token 级别的细粒度输出。目前将预训练语言表征应用于下游任务存在两种策略:基于特征的策略和微调策略(fine-tuning)。基于特征的策略(如 ELMo)使用将预训练表征作为额外特征的任务专用架构。微调策略(如生成预训练 Transformer (OpenAI GPT))引入了任务特定最小参数,通过简单地微调预训练参数在下游任务中进行训练。

在之前的研究中,两种策略在预训练期间使用相同的目标函数,利用单向语言模型来学习通用语言表征。本论文作者(即 Google AI Language 团队的研究人员)认为现有的技术严重制约了预训练表征的能力,微调策略尤其如此。其主要局限在于标准语言模型是单向的,这限制了可以在预训练期间使用的架构类型。例如,OpenAI GPT 使用的是从左到右的架构,其中每个 token 只能注意 Transformer 自注意力层中的先前 token。

这些局限对于句子层面的任务而言不是最佳选择,对于 token 级任务(如 SQuAD 问答)则可能是毁灭性的,因为在这种任务中,结合两个方向的语境至关重要。本文通过 BERT(Bidirectional Encoder Representations from Transformers)改进了基于微调的策略。

BERT 提出一种新的预训练目标——遮蔽语言模型(masked language model,MLM),来克服上文提到的单向局限。MLM 的灵感来自 Cloze 任务(Taylor, 1953)。MLM 随机遮蔽输入中的一些 token,,目标在于仅基于遮蔽词的语境来预测其原始词汇 id。与从左到右的语言模型预训练不同,MLM 目标允许表征融合左右两侧的语境,从而预训练一个深度双向 Transformer。

除了 MLM,我们还引入了一个「下一句预测」(next sentence prediction)任务,该任务联合预训练文本对表征。本文贡献如下:展示了双向预训练语言表征的重要性。不同于 Radford 等人(2018)使用单向语言模型进行预训练,BERT 使用 MLM 预训练深度双向表征。本研究与 Peters 等人(2018)的研究也不同,后者使用的是独立训练的从左到右和从右到左 LM 的浅层级联。

证明了预训练表征可以消除对许多精心设计的任务特定架构的需求。BERT 是首个在大批句子层面和 token 层面任务中取得当前最优性能的基于微调的表征模型,其性能超越许多使用任务特定架构的系统。BERT 刷新了 11 项 NLP 任务的当前最优性能记录。本论文还报告了 BERT 的模型简化测试(ablation study),证明该模型的双向特性是最重要的一项新贡献。

代码和预训练模型将发布在 goo.gl/language/bert。论文:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding论文地址:https://arxiv.org/pdf/1810.04805.pdf摘要:本文介绍了一种新的语言表征模型 BERT,意为来自 Transformer 的双向编码器表征(Bidirectional Encoder Representations from Transformers)。

与最近的语言表征模型(Peters et al., 2018; Radford et al., 2018)不同,BERT 旨在基于所有层的左、右语境来预训练深度双向表征。因此,预训练的 BERT 表征可以仅用一个额外的输出层进行微调,进而为很多任务(如问答和语言推断任务)创建当前最优模型,无需对任务特定架构做出大量修改。

BERT 的概念很简单,但实验效果很强大。它刷新了 11 个 NLP 任务的当前最优结果,包括将 GLUE 基准提升至 80.4%(7.6% 的绝对改进)、将 MultiNLI 的准确率提高到 86.7%(5.6% 的绝对改进),以及将 SQuAD v1.1 的问答测试 F1 得分提高至 93.2 分(提高 1.5 分)——比人类表现还高出 2 分。

BERT本节介绍 BERT 及其实现细节。模型架构BERT 的模型架构是一个多层双向 Transformer 编码器,基于 Vaswani 等人 (2017) 描述的原始实现,在 tensor2tensor 库中发布。由于 Transformer 的使用最近变得很普遍,而且我们的实现与原始版本实际相同,我们将不再赘述模型架构的背景。

在本文中,我们将层数(即 Transformer 块)表示为 L,将隐藏尺寸表示为 H、自注意力头数表示为 A。在所有实验中,我们将前馈/滤波器尺寸设置为 4H,即 H=768 时为 3072,H=1024 时为 4096。我们主要报告在两种模型尺寸上的结果:BERTBASE: L=12, H=768, A=12, 总参数=110M BERTLARGE: L=24, H=1024, A=16, 总参数=340M为了比较,BERTBASE 的模型尺寸与 OpenAI GPT 相当。

然而,BERT Transformer 使用双向自注意力机制,而 GPT Transformer 使用受限的自注意力机制,导致每个 token 只能关注其左侧的语境。我们注意到,双向 Transformer 在文献中通常称为「Transformer 编码器」,而只关注左侧语境的版本则因能用于文本生成而被称为「Transformer 解码器」。

图 1 直观显示了 BERT、OpenAI GPT 和 ELMo 的比较结果。图 1:预训练模型架构之间的区别。BERT 使用双向 Transformer,OpenAI GPT 使用从左到右的 Transformer,ELMo 使用独立训练的从左到右和从右到左 LSTM 的级联来生成下游任务的特征。三种模型中,只有 BERT 表征会基于所有层中的左右两侧语境。

预训练任务与 Peters 等人 (2018) 和 Radford 等人 (2018) 不同,我们不使用传统的从左到右或从右到左的语言模型来预训练 BERT,而是使用两个新型无监督预测任务。任务 #1:Masked LM为了训练深度双向表征,我们采取了一个直接的方法,随机遮蔽输入 token 的某些部分,然后预测被遮住的 token。

我们将这一步骤称为「masked LM」(MLM),不过它在文献中通常被称为 Cloze 任务 (Taylor, 1953)。在这种情况下,对应遮蔽 token 的最终隐藏向量会输入到 softmax 函数中,并如标准 LM 中那样预测所有词汇的概率。在所做的所有实验中,我们随机遮住了每个序列中 15% 的 WordPiece token。

与去噪自编码器 (Vincent et al., 2008) 相反,我们仅预测遮蔽单词而非重建整个输入。任务 #2:下一句预测很多重要的下游任务(如问答(QA)和自然语言推断(NLI))基于对两个文本句子之间关系的理解,这种关系并非通过语言建模直接获得。为了训练一个理解句子关系的模型,我们预训练了一个二值化下一句预测任务,该任务可以从任意单语语料库中轻松生成。

具体来说,选择句子 A 和 B 作为预训练样本:B 有 50% 的可能是 A 的下一句,也有 50% 的可能是来自语料库的随机句子。实验这部分,我们将展示 BERT 在 11 个 NLP 任务上的微调结果。图 3:我们的任务特定模型是由向 BERT 添加了一个额外的输出层而形成的,因此一小部分参数需要从头开始学习。

在众多任务中,(a) 和 (b) 任务是序列级任务,(c) 和 (d) 是 token 级任务,图中 E 表示输入嵌入,T_i 表示 token i 的语境表征,[CLS] 是分类输出的特殊符号,[SEP] 是分割非连续 token 序列的特殊符号。表 1:GLUE 测试结果,评分由 GLUE 评估服务器得到。

每个任务下面的数字表示训练样本的数量。「Average」列与 GLUE 官方分数略微不同,因为我们排除了有问题的 WNLI 集。OpenAI GPT = (L=12, H=768, A=12);BERT_BASE = (L=12, H=768, A=12);BERT_LARGE = (L=24, H=1024, A=16)。

BERT 和 OpenAI GPT 是单个模型、单个任务。所有结果来自于以下地址:https://gluebenchmark.com/leaderboard 和 https://blog.openai. com/language-unsupervised/。表 2:SQuAD 结果。BERT 集成是使用不同预训练检查点和微调种子(fine-tuning seed)的 7x 系统。

飞行员手拿飞机模型在地面“比划”是干啥呢?

飞行员手拿飞机模型在地面“比划”是干啥呢

兔哥回答:我们经常从电视画面中看到飞行员手持小飞机模型,三三两两聚在一起模拟飞行动作进行地面训练,时而伴飞,时而追逐,时而多机编队……。这是飞行员相互交流飞行中的机动动作,是熟悉了解空中飞行时相互配合的地面预演。这种训练方式也是飞行员的主要工作任务之一,各国的飞行员都采用这种传统的训练手段。“地面苦练,空中精飞”是我军的优良传统,这个传统统被一代代飞行员传承至今,很多优秀的飞行员就是通过这样的地面模拟演练逐步成长为翱翔蓝天的空中骄子。

不要小看飞行员手持小飞机的这种举动,包含的内容可多去了,飞行员的成长路径就是天上一分钟,地下十年功,只有不厌其烦的协同,探讨,训练才能提高飞行技能,战术配合,才是完成任务,安全飞行的保证。那么,这样的模拟训练都有哪些方面的内容呢?(一)掌握飞行要领,作到烂熟于心:飞行员驾驶战机翱翔天空,需要有属练的飞行技能,飞机是高科技的产物,速度快,空中作战需要做出很复杂的机动动作,对飞行员的头脑也是一种考验,如何转弯,翻滚,加速,减速都要做到心中有数,通过地面模拟飞行训练,能使飞行员全面了解飞行要领,天上怎么飞地面就怎么练,把飞行中的每一个操作动作都捋清摸透,这样在天上就能从容应对。

(二)战术配合:飞行员在空中并非单打独斗,而是配合作战,最简单的形式也需要双机编队作战,这也是我们熟悉的“长机”“僚机”配合作战。“长机”该怎么飞,“僚机”如何配合,是需要有个相互协调预案的,通过两人地面模拟飞行训练,能达成意见统一,能制定出相互配合的作战方案,特别是总结出紧急状态下的应急措施。(三)多机编队飞行的配合战术:通过飞行员们利用手中的飞机模型,模拟空中多机编队的飞机队形,展开队形等等空中飞行战术动作。

这种训练在飞行表演队中更是家常便饭,有许多的空中飞行动作都是由地面的模拟演练探讨出来的,进而再通过飞行模拟器进行论证,然后拿到天上去试飞,最后才能成为向人们展示的精彩飞行表演。所以,飞行员手中这个小飞机模型并不简单。(四)优点:通过地面飞行模型模拟飞机在天上飞的动作,能提高飞行员对技能的熟悉,编队的相互配合,战术的演练,同时还有安全,省钱的优势,开飞机可不同于开车,每一架飞机的起飞降落需要大量的人员设备为其做保障,从塔台指挥,地勤备机,机场保障,就连鸟都有专门的部队负责驱离,因此,动用的资源非常大,费用极高,一切都放到天上去练即不科学也不实际。

只有通过地面模拟训练,把要领牢记于心,才能达到事半功倍的作用。即保障了飞行安全,又能起到良好的效果。地面飞行模拟训练是经过时间考虑的有效方式,所以才被各国采用,是飞行员地面探讨飞行经验,技术,战术的理想方式,这种方式会永远陪伴飞行员走下去。以上内容属于兔哥本人的观点,欢迎欢关注兔哥。(图片来源网络,一并谢过!)。

文章TAG:模型从大炼炼大训练

最近更新