Pre-Trained Models: Past, Present and Future综述总结(1)
总体介绍:
非神经模型****:****
人工设计的特征和统计手段
人工设计的特征和统计手段
神经模型:
通过数据中的过程自主提取低维连续向量表示(也可称为分布式表示),充当任务相关的特征指标。
关键挑战之一是数据匮乏********data hungry ,导致:
深度神经网络往往包含大量参数;易导致过拟合问题;其泛化能力欠佳
但是手动构建高质量数据集,手动注释大规模数据,昂贵又耗时。
在研究领域中探讨如何利用少量人工标注的数据为特定任务训练出高效深度神经网络。
解决data hungry里程碑迁移学习:
迁移学习两个阶段的学习框架:
- 通过一个或多个源任务获取知识的预培训阶段(pre-training phase)。
- 此外,在微调阶段(fine-tuning),即利用有限数量的样本来完成目标任务。
首先,在计算机视觉领域(CV),预设文本标记(PTM)被广泛应用于多种计算机视觉任务中(包括图像分类、目标检测以及图像分割等)。
在NLP领域中,我们致力于最大限度地利用大规模未标记语料库,并基于自监督学习方法(通过数据间的内部关联性来遮蔽部分预测任务)。
难点:梯度消失或爆炸的问题
早期研究主要关注预训练浅层网络以学习词嵌入模型(其局限性在于无法捕捉词语在不同语境下的多义性)。
Transformer使非常深度的神经模型成为可能
基于transformer架构的GPT(Radford2018)与BERT(Devlin2019)被认为是大型语言模型中的重要代表。(算是large-scale)。这些大规模预训练语言模型通过其内部复杂的机制从海量文本数据中提取多义消歧、丰富的词汇表、复杂的语法关系以及广泛的事实知识。(捕捉多义消歧、词汇和句法结构以及事实知识)。通过大量样本训练后的大型预训练语言模型系统累积了丰富的语义知识与语用能力,在推动现代自然语言处理技术的发展方面发挥了显著作用。(通过对大量样本的大规模PTMs进行微调),丰富的PTMs语言知识为下游NLP带来了惊人的性能
借助分布式计算架构和方法的应用与创新性实践, 我们能够进一步实现PTM参数规模从百万量级提升至十亿量级. 这种增长甚至会扩展至万亿量级.
但是,关于PTM的一些未解之谜:不清楚隐藏在大量模型参数中的本质
四条线路:包括
设计有效的体系结构
利用丰富的上下文
提高计算效率
进行解释和理论分析。
Transfer Learning and Supervised********Pre-Training
迁移学习技术旨在通过整合多个来源的任务所获得的核心知识,并将其应用于目标任务的过程中。在这一技术框架下,虽然不同领域中的源任务与目标任务可能涉及不同的数据类型和应用场景(如图像识别与自然语言处理),但它们都基于相同的认知基础(即所需的知识体系)。实现这一转移对于提升整体性能具有重要意义。
两种迁移学习预训练方法:feature/ parameter transfer
- 特征转移策略 采用预先训练的优质特征表示,在跨领域和任务层次上预设知识结构,并将其融入目标任务模型中以提升性能。(词嵌入)
- 参数迁移方法 基于一个直观的前提:源任务与目标任务之间存在共享模型参数或超参数的知识储备。这些方法通过将知识编码为共享参数的形式,并基于目标任务数据进行微调来实现知识的有效传递。
ELMo(Peters等人,2018)和BERT分别应用表示转移和参数转移。
架构变深的后果network depth gets deeper
从AlexNet之后的VGG(2015)和GoogleNet(2015),这些架构逐渐变得更加深邃,并带动了其性能也随之得到显著提升,然而,在网络深度不断递增的过程中,由于梯度消失或爆炸的问题限制了其性能的进一步提升
解决这些问题,通过
在参数初始化(2013)以及隐层状态(I2015)中融入了归一化机制,
并加入跨层的简捷连接,
ResNet网络于2016年成功地实现了这一目标。
在自然语言处理领域内,研究人员致力于有监督的预培训研究。CoVE方法基于机器翻译技术进行开发。经过系统的预训练过程后,在源语言编码器能够有效地成为 downstream NLP tasks的核心组件的情况下。
Self-Supervised Learning and********Self-Supervised Pre-Training
该领域主要包含四个主要子领域:包括归纳迁移学习(2007)、转换迁移学习(2007)以及自学学习(2008),还有无监督迁移学习(Wang et al., 2014)。其中归纳与转换的学习机制最为关键;它们的主要目标是从有监督的学习任务向目标任务转移知识。
然而无标签数据的数量显著超过了人工标注数据的数量。自监督学习则基于输入数据自身作为监督信号,在海量无标签数据中获取知识。
自监督学习与无监督学习的区别:
无监督学习主要侧重于检测数据模式 (如聚类、社区发现和异常检测),
自监督学习仍处于有监督设置(如分类和生成)的范例中 (Liu等人,2020b)。
NLP的自监督:
早期基于词嵌入的NLP技术(2008)通过自监督学习方法将每个单词映射到一种分布式向量表示中,并能够有效提取文本中的语法结构和语义含义。这些嵌入常被用作构建NLP模型时的输入向量以及初始化模型参数的基础,并且相较于随机初始化的方法而言,这种嵌入方式带来了明显的性能提升
然而受词义歧义polysemy影响(2018)随后提出了一种基于序列级神经网络的新方法以识别不同语言环境中复杂词项的深层语义特征从而生成基于语境的语义表示
使用单词嵌入作为神经模型的输入几乎已经成为NLP任务的常见模式。
通过Transformer架构处理序列数据 sequential data之后
最近PTMs取得显著成效的核心原因在于将自我监督学习与transformer进行融合因此接下来将详细阐述transformer的相关内容
Transformer and Representative PTMs
Transformer与RNN对比:
基于Transformer架构之前,在序列数据处理方面长期被视为主要模型之一的RNN(Recurrent Neural Networks)具有其固有的顺序特性。这种机制使得它们能够在每个时间步依次读取输入单词,并结合前一个时间步隐藏状态的信息来进行处理。然而这种处理方式被认为不利于发挥GPU和TPU等高性能计算资源的优势
相较于RNN而言, Transformer采用了encoder-decoder architecture这一独特的结构特点,它通过自注意力机制能够并行地模拟输入序列中各字符之间的相互关联关系.这种架构设计使得得益于其内部自注意力机制能够进行并行处理, Transformer不仅具备高效的特征提取能力,还能够有效利用高性能计算资源来进行大规模模型的训练.在Transformer的工作流程中涉及编码与解码两个阶段时,其内部自注意力机制负责对整个输入序列中的每个字符进行表示学习.
自我注意机制
在编码阶段中对每一个给定的单词Transformer会通过与其他输入序列中的每个单词进行比较来评估它们对该单词表现的影响程度这一过程被称作注意力机制的应用通过这一机制系统能够识别出其他各个位置上的词对该词后续生成过程所做出的重要贡献这样的贡献程度被量化为注意力分数随后将这些注意力分数作为权重系数应用于所有输入序列中的词其加权后的结果即构成了该特定词的表现向量这一向量则可通过全连接层对其进行进一步处理从而获得最终表达信息在整个编码过程中系统会依次对每一个词执行上述操作最终生成完整的表示向量组这一过程本质上实现了整个输入序列信息特征的有效提取并将其应用于后续的所有词汇生成工作其中每一个词都会经历类似的处理流程在解码环节系统则采用与编码相似的方式只不过它一次仅从左到右地处理单个表达向量在此基础上系统会逐步参考已解码的信息并对后续结果进行更新最终完成整个目标文本的理解与生成任务
基于transformer,GPT 和 BERT
GPT擅长自然语言生成,而BERT更关注自然语言理解。
GPT
该模型采用生成预训练与鉴别微调相结合的方式构建主干网络3
BERT
与GPT相比,BERT基于双向transformer作为其核心架构展开设计。在预训练模型构建方面,则采用了自动编码autoencoding语言建模技术而非GPT所使用的自回归auto-regressing方法。
目标掩蔽语言建模(MLM),引入一个特殊的遮蔽标记[MASK]来随机遮蔽标记,并通过上下文信息来预测并恢复被遮蔽的位置。相较于传统的单向自回归语言建模方法,在MLM中所有tokens将获得深度双向表示的能力。
下一句预测(NSP)的目标还被用于识别自然语言推理和问答等具有多个句子的下游任务中的句子间关系。对于这项任务而言,该二元分类器被用来判断两个句子是否连贯。
在预训练阶段(pretraining stage),通过MLM(masked language modeling)与NSP(next sentence prediction)协同优化BERT模型参数。(经过预训练过程后),BERT能够获得适用于 downstream tasks的鲁棒模型参数。(利用下游任务的数据对输入与输出进行相应调整),从而实现对BERT模型的任意NLP子任务适应性微调。)
输入遵循一种模式,在其中两个句子通过特殊标记[SEP]连接,并且这种连接可以被用来表示以下几种情况:第一种情况是一个转述形式中的句面对应;第二种情况是在蕴涵关系下的一种假设与前提配对;第三种情况是在问答情境下的一个问题段落配对;此外还包括一种单独用于文本分类或序列标记的情况。
在输出层中,BERT会将每个输入转化为特定维度的空间向量,并基于这些向量构建相应的识别模型以便于后续的任务处理。这些向量不仅能够捕捉到词性和语法关系还能通过线性变换进一步优化分类性能。此外,在此过程中还引入了一个特殊的[CLS]标记符,在其引导下模型能够学习到更深层的语义信息。
之后:
在GPT和BERT之后,他们提出了一些改进,如RoBERTa和ALBERT。
RoBERTa (020d)是BERT的成功变体之一,主要有四个简单有效的变化:
- 移除NSP任务;在BERT的训练过程中,NSP任务的作用较为有限。
- 随着培训步骤的增加以及批量规模的扩大,并行处理的数据量也随之提升。
- 在训练阶段中采用较长的句子结构。
- 动态调整mask掩码模式。
ALBERT (Lan et al. ,2019)是BERT的一个重要变体,并展示了关于减少参数的值得注意的参数缩减发现。
该方法通过将输入字嵌入矩阵并分解为两个较小的矩阵。
该技术通过强制要求所有transformer层共享参数来大幅降低参数数量。
该模型提出了一种基于(SOP)的任务来替代BERT的NSP任务。
为了空间效率,ALBERT的微调和推理速度较慢。
若干项研究致力于优化模型结构并开发了一系列新型基础预训练任务
Designing Effective Architecture
通常情况下,任何一种用于语言预训练的after-bert架构都可以基于两大动机进行划分:以统一序列建模为基础和以认知驱动架构为特征。
统一序列建模
NLP问题确实非常具有挑战性?其中一个根本原因在于它具备多样化的下游任务与应用,并且通常可划分为三大类:
自然语言处理(NLP)涵盖了语法分析、语序分析、词类/短语/段落分类、问答以及基于事实和常识的知识推理。
•开放式语言生成 :包括对话生成、故事生成、数据文本生成等。
非开放性语言生成:涵盖机器翻译、摘要汇总以及空白填充等多种技术。事实上,在现有技术中,并未发现这些方法存在本质区别
在处理理解基准时, GPT的表现与其BERT竞争对手不相上下, 并且略胜一筹. 从区分度角度来看, 在理解和生成之间并不存在明确的界线. 在这种情况下, 在无法准确理解内容的情况下进行流畅生成变得不可能. 另一方面我们能够轻易地将这一类的理解任务转变为对应的生成任务.
XLNet(2019年)开创性研究借鉴GPT架构,在单向生成与BERT风格双向理解方面取得了突破性进展。该研究提出了一种新的语言建模机制,并在此基础上实现了基于BERT的双向理解和生成能力。值得注意的是,在输入语句中未采用[mask]标记的情况下,在传统模型设计中实现这一功能存在内在矛盾。通过预训练阶段对tokens顺序进行优化,并采用自回归预测模型来解决这一问题后发现,在此过程中XLNet不仅具备强大的生成能力而且能够有效理解和处理复杂语义关系
除了置换语言建模外的另一种方法是采用多任务训练策略。UniLM(2019年)提出了一种联合训练不同语言建模目标的方法,并特别关注了单向、双向以及序列到序列(如seq2seq)的多种目标类型。通过调整transformer架构中的注意力掩码机制即可实现这一过程。该模型在生成性问答任务及抽象摘要性能方面均表现出色。
GLM(2021年) 在语言处理领域取得了重要进展。基于可变遮蔽窗口的技术框架下,在可变遮蔽窗口下发展出一种整合自回归机制与自动编码技术的新方法。该模型让transformer块根据需要生成遮蔽标记而不是像BERT和SpanBERT那样固定提供[MASK]数量。为了保留[MASK]的编号信息这一关键特征 GLM 采用了一种二维位置编码方案。作为首个在多种任务类型中均表现出色的架构 GLM成功应用了广义编译码器技术。在GLM之前 编码器结构(例如BERT)或解码器结构(例如GPT)都无法解决一个关键问题:如何实现可变长度填充空白(2021;)。
原因在于基于解码器的模型无法成功执行任务, 因为它们只能在序列末尾生成目标内容, 而基于编码器的模型也无法完成任务, 因为[MASK]的数量会泄露信息. 一个自然的想法是转向最初为机器翻译设计目的的编码器-解码架构系统, 该架构将根据源生成可变长度的目标序列.
MASS(2019年)引入了一种称为mask prediction预测策略的新机制到编码器-解码器架构中。T5(2020)仅利用一个mask token遮蔽了文本中的可变长度片段,并要求解码器能够恢复整个遮蔽序列。BART(2020a)提出了一种新颖的方法论框架,在实现数据破坏方面采用了截断、删除、替换、洗牌以及mask等多重破坏手段,并非仅仅依赖于简单的mask机制
然而,编码器-解码器体系结构面临一些挑战。
首先,在单独使用一个编码器/解码器的基础上,使用双层编码器带来了额外的参数数量。尽管通过共享编码器和解码器的参数来一定程度上缓解了这一问题(即减少了总参数量),但这种额外引入的参数所带来的效率提升仍需进一步验证
其次,编码器-解码器结构在自然语言理解方面 通常表现得不太好。
