返回介绍

数学基础

统计学习

深度学习

工具

Scala

十三、ERNIE 3.0 [2021]

发布于 2023-07-17 23:38:25 字数 43253 浏览 0 评论 0 收藏 0

  1. 预训练的语言模型(如 ELMoGPTBERTERNIE),已被证明能有效提高各种自然语言处理任务的性能,包括情感分类、自然语言推理、文本摘要、命名实体识别等。一般而言,预训练的语言模型是以自监督的方式在大量的文本数据上学习的,然后在下游任务上进行微调,或者通过 zero-shot/few-shot learning 直接部署而无需针对具体任务进行微调。这种预训练语言模型已经成为自然语言处理任务的新范式。

    在过去的一两年中,预训练语言模型的一个重要趋势是它们的模型规模越来越大,这导致了预训练中更低的 perplexity ,以及在下游任务中表现更好。

    • 人们提出了具有 10 亿个参数的Megatron-LM 用于语言理解,Megatron-LM 使用简单但高效的层内模型并行 intra-layer model parallel 的方法,在几个数据集上取得了 SOTA 的结果。
    • 100 亿个参数的T5 探索了预训练模型的极限,但很快这个记录就被拥有 1750 亿个参数的 GPT-3 模型所打破。GPT-3 模型在 few-shot 甚至 zero-shotsetting 下具有良好的性能。
    • 不久之后,Switch-Transformer 作为世界上第一个万亿参数的预训练语言模型被提出。

    然而,这些拥有数千亿参数的大型预训练语言模型是在纯文本上训练的。例如,1750 亿参数的 GPT-3 是在具有 570GB 过滤后的文本(这些文本来自 Common Crawl )的语料库中训练的。这样的原始文本缺乏对语言知识 linguistic knowledge 和世界知识 world knowledge 等知识的 explicit representation 。此外,大多数大型模型是以自回归的方式进行训练的,但 BERT 原始论文显示,这类模型在适配下游语言理解任务时表现出较差的微调性能。

    在论文 《ERNIE 3.0: LARGE-SCALE KNOWLEDGE ENHANCED PRE-TRAINING FOR LANGUAGE UNDERSTANDING AND GENERATION》中,为了解决单一的自回归框架带来的问题,并探索知识增强 knowledge enhanced 的大型预训练模型的性能,作者提出了一个名为 ERNIE 3.0 的统一框架。ERNIE 3.0 融合自回归网络 auto-regressive network 和自编码网络 auto-encoding network ,在一个由纯文本和大型知识图谱组成的 4TB 语料库上训练大型的知识增强模型。ERNIE 3.0 可以通过 zero-shot learningfew-shot learningfine-tuning 来同时处理自然语言理解任务和自然语言生成任务。此外,ERNIE 3.0 支持在任何时候引入各种定制化的任务。这些定制化的任务共享相同的编码网络,并通过多任务学习进行训练。这种方法使词法信息、句法信息和语义信息的encoding 跨不同任务成为可能。此外,当给定一个新的任务时,ERNIE 3.0 框架可以根据它所掌握的先前的训练参数来增量地训练 distributed representation

    总而言之,论文贡献如下:

    • 作者提出了一个统一的框架 ERNIE 3.0 ,它结合了自回归网络和自编码网络,这样训练出来的模型就可以通过 zero-shot learningfew-shot learningfine-tuning 来同时处理自然语言理解任务和自然语言生成任务。
    • 作者用 100 亿个参数对大型知识增强模型进行预训练,并在自然语言理解和自然语言生成任务上进行了一系列的实验评估。实验结果表明,ERNIE 3.054benchmark 中始终以较大的优势胜过 SOTA 的模型,并在 SuperGLUE benchmark 中取得了第一名的成绩。

    相比较于 ERNIE1.0ERNIE2.0ERNIE3.0 使用了更大的模型、更大的预训练数据集、以及更多样化的预训练任务。此外,ERNIE 3.0 使用了渐进式学习,并且修改了模型架构:不同的 task 具有 task-specific network 并共享相同的 backbone network

  2. 相关工作:

    • 大型预训练模型:自从 BERT 被提出后,预训练的语言模型引起了越来越多的关注。研究趋势之一是增加模型规模从而导致更低的 perplexity 和更好的下游任务性能。因此,在过去的两年中,许多大型预训练模型被提出。

      • T5 模型有 110 亿个参数。T5 模型通过一个统一的框架将所有基于文本的语言任务转换为 text-to-text 的格式,并充分探讨了预训练目标、架构、无标记数据集、迁移方法、以及其他因素的有效性。
      • GPT-3T5 模型之后被提出,其中包括 1750 亿个参数,在 few-shot/zero-shot setting 下在各种任务上取得了惊人的表现。具体而言,GPT-3 是一个自回归的语言模型,比其前身 GPT-2 的规模大 10 倍。然而,GPT-3 在测试中显示出缺乏常识,存在偏见 bias 和隐私问题。
      • 《Switch transformers: Scaling to trillion parameter models with simple and efficient sparsity》提出了一个名为 Switch Transformer1 万亿参数模型,采用简化的MoE 路由算法,以较少的通信和计算成本改进模型。该论文还提出了一个大规模的分布式训练方案来解决训练复杂性、通信成本和训练不稳定性的问题。

      除了上面提到的模型,最近还提出了更多的非英语的大型模型。

      • 《Cpm: A large-scale generative chinese pre-trained language model》 发布了一个 26 亿参数的中文预训练语言模型 Chinese Pre-trained Language Model: CPMCPM 在大规模中文训练数据上进行了生成式预训练,模型结构受到了 GPT-3 的启发。
      • 《Cpm-2: Large-scale cost-effective pre-trained language models》 发布了 110 亿参数的模型 CPM-2
      • 《M6: A chinese multimodal pretrainer》 提出了一种名为M6Multi-Modality to Multi-Modality Multitask Mega-Transformer)的跨模态预训练方法,包括 1000 亿个参数用于多模态数据的统一预训练。
      • 《Pangu-alpha: Large-scale autoregressive pretrained chinese language models with auto-parallel computation》 提出了一个名为 PangGu-α2000 亿参数自回归语言模型。该模型在一个由 2048Ascend 910 人工智能处理器组成的集群上进行训练,其分布式训练技术包括数据并行、op-level 模型并行、pipeline 模型并行、优化器模型并行和 re-materialization
      • 除了这些中文的大规模模型,人们还提出了一个名为 HyperCLOVA 的韩语 2040 亿参数语言模型,其韩语的机器学习数据量是 GPT-36500 倍。

      从上面讨论的内容来看,现在的观察表明,大规模预训练模型已经吸引了工业界和学术界越来越多的关注。

    • 知识增强的模型:预训练的语言模型从大规模语料库中获取句法知识 syntactical knowledge 和语义知识 semantic knowledge ,但缺乏世界知识 world knowledge 。最近,一些工作试图将世界知识纳入预训练的语言模型中。

      • 世界知识的典型形式是一个知识图谱 knowledge graph 。许多工作将知识图谱中的entity embeddingrelation embedding 集成到预训练的语言模型中。
      • WKLM《Pretrained encyclopedia: Weakly supervised knowledge-pretrained language model》)用同类型的其他实体的名称替换原始文档中提到的实体,并训练模型将正确的实体与随机选择的实体区分开来。
      • KEPLER《Kepler: Aunified model for knowledge embedding and pre-trained language representation》)通过 knowledge embedding 和掩码语言模型目标来优化模型,将世界知识和 language representation 统一到同一语义空间。
      • CoLAKE《Colake: Contextualized language and knowledge embedding》)将语言上下文和知识上下文集成在一个 word-knowledge graph 中,并通过扩展的掩码语言模型目标共同为语言和知识来学习 contextualized representation

      另一种现有的世界知识形式是大规模数据的额外标注。

      • ERNIE 1.0 引入了 phrase maskingnamed entity masking ,并预测了 whole masked phrasewhole masked named entity ,以帮助模型学习局部上下文和全局上下文中的依赖信息。
      • CALM《Pretraining text-to-text transformers for concept-centric common sense》)通过两种自监督的预训练任务,教导模型检测和校正 incorrect ordering of concept 的、被破坏的句子,并将 ground-truth 句子与虚假的句子区分开来。
      • K-Adapter《K-adapter: Infusing knowledge into pre-trained models with adapters》)利用适配器 adapter 来区分知识来自哪里,其中适配器在具有额外标注信息的不同知识源上被训练得到。

13.1 模型

  1. 为了探索知识增强的大型预训练模型的有效性,我们提出了 ERNIE 3.0 框架,对包括纯文本和知识图谱在内的大规模无监督语料进行预训练模型。此外,我们采用各种类型的预训练任务,使模型能够更有效地学习由词汇信息、句法信息和语义信息组成的不同 level 的知识,其中预训练任务分布在三个任务范式中,即自然语言理解、自然语言生成、和知识提取。因此,ERNIE 3.0 创新性地设计了一个 Continual Multi-Paradigms Unified Pre-training Framework ,以实现多任务范式间的协同预训练 collaborative pre-training

13.1.1 总体框架

  1. ERNIE 3.0 的框架如下图所示,它可以广泛用于pre-trainingfine-tuningzero-shot/few-shot learning

    流行的 unified pre-training strategy 针对不同的 well-designed cloze task 共享一个 Transformer network ,然后应用 specific self-attention mask 来控制以何种上下文为条件来得到 prediction 。与普遍的统一预训练策略不同,ERNIE 3.0 设计了一个新的 Continual Multi-Paradigms Unified Pre-training Framework

    我们认为:自然语言处理的不同任务范式对相同的底层抽象特征的依赖是一致的,如词汇信息和句法信息;但对 top-level 具体特征的要求是不一致的,其中自然语言理解任务有学习语义连贯性 semantic coherence 的要求,而自然语言生成任务则期望进一步的上下文信息。因此,受多任务学习的经典模型架构的启发,即下层是所有任务共享的,而上层是特定任务的,我们提出了 ERNIE 3.0 ,使不同的任务范式能够共享在一个 shared network 中学到的底层抽象特征,并分别利用在 task-specific network 中学到的、top-level 的具体特征。

    此外,为了帮助模型有效地学习 lexical representationsyntactic representationsemantic representationERNIE 3.0 利用了ERNIE 2.0 中引入的 continual multi-task learning framework 。对不同类型的下游任务,我们首先用预训练好的 shared network 和相应的 task-specific network 的参数组合来初始化 ERNIE 3.0 ,然后利用具体任务的数据执行相应的后续程序。

    ERNIE 1.0 没有多任务结构。

    ERNIE 2.0 虽然采用了多任务,但是这些任务共享相同的底层结构和 top-level 结构,并依次训练每个任务。最终只有一个 task-specific network ,该 network 学习到所有任务的信息。

    ERNIE 3.0 也采用了多任务,但是不同的任务共享相同的底层结构、以及不同的 top-level 结构。最终有多个 task-specific network,不同 network 学到不同任务的信息。

  2. ERNIE 3.0 中,我们把 backbone shared network 称作 Universal Representation Module 、把 task-specific network 称作 Task-specific Representation Module

    具体而言,universal representation network 扮演着通用语义特征提取器的角色,其中的参数在各种任务范式中都是共享的,包括自然语言理解、自然语言生成等等。而 task-specific representation network 承担着提取 task-specific 语义特征的功能,其中的参数是由 task-specific 目标学到的。

    ERNIE 3.0 不仅使模型能够区分不同任务范式的 task-specific 语义信息,而且缓解了大型预训练模型在有限的时间和硬件资源下难以实现的困境,其中 ERNIE 3.0 允许模型只在微调阶段更新 task-specific representation network 的参数。

    具体而言,ERNIE 3.0 采用了一个 Universal Representation Module 和两个 Task-specific Representation Module 的协同架构。这两个 Task-specific Representation Module 为:natural language understanding specific representation modulenatural language generation specific representation module

  3. Universal Representation ModuleERNIE 3.0 使用多层 Transformer-XL 作为 backbone network 。显然,Transformer 模型的规模越大,其捕获和存储各种不同 level 的语义信息的能力就越强。因此,ERNIE 3.0 设置了规模较大的 universal representation module 。而需要特别注意的是,memory module 只对自然语言生成任务有效,同时控制attention mask 矩阵。

    memory module 对自然语言理解任务也有好处,为什么仅在自然语言生成任务中考虑 memory module?作者未解释。

    ERNIE 3.0 使用 Transformer-XL 作为 backbone network ,相比较而言,ERNIE 1.0ERNIE 2.0 使用 BERT_BASE

  4. Task-specific Representation Moduletask-specific representation module 也是一个多层 Transformer-XLERNIE 3.0task-specific representation module 设置为 manageable size ,相比 shared network 的规模更小(根据论文的实现,仅占 shared network 参数规模的不到 1% )。

    ERNIE 3.0 构建了两个 task-specific representation module ,即 NLU-specific representation moduleNLG-specific representation module ,其中前者是一个双向建模网络(自然语言理解),而后者是一个单向建模网络(自然语言生成)。

13.1.2 预训练任务

  1. 我们为各种任务范式构建了几个任务从而捕捉训练语料中不同方面的信息,并使预训练的模型具有理解、生成和推理的能力。

  2. word-aware 预训练任务:

    • Knowledge Masked Language ModelingERNIE 1.0 提出了一个有效的策略,通过 knowledge integration 来增强 representation ,即 Knowledge Integrated Masked Language Modeling 任务。它引入了 phrase maskingnamed entity masking ,预测 whole masked phrasewhole masked named entity ,帮助模型学习局部上下文和全局上下文中的依赖信息。

    • Document Language Modeling:生成式预训练模型通常利用传统的语言模型(如 GPTGPT-2 )或 sequence-to-sequence 的语言模型(如 BARTT5ERNIE-GEN)作为预训练任务。ERNIE 3.0 选择了传统的语言模型作为预训练任务,以降低网络的复杂性,提高 unified pre-training 的效果。此外,为了使 ERNIE 3.0NLG network 能够对较长的文本进行建模,我们引入了 ERNIE-Doc 中提出的 Enhanced Recurrence Memory Mechanism ,该机制通过将 shifting-one-layer-downwards recurrence 改为同层递归,可以对比传统recurrence Transformer 建模更大的有效上下文长度。

      ERNIE-Doc 的更新公式,l$ l $ 表示第l$ l $ 层:

      (17)h~t+1(l1)=[SG(ht(l))ht+1(l1)]qt+1(l),kt+1(l),vt+1(l)=h~t+1(l1)Wq,h~t+1(l1)Wk,h~t+1(l1)Wvh~t+1(l)=Transformer-Block(qt+1(l),kt+1(l),vt+1(l))

      和传统recurrence Transformer 的区别在于:传统recurrence Transformer 使用h~t+1(l1)=[SG(ht(l1))ht+1(l1)]$ \tilde{\mathbf{\vec h}}_{t+1}^{(l-1)} = \left[\text{SG}\left(\mathbf{\vec h}_t^{(l-1)}\right)\circ \mathbf{\vec h}_{t+1}^{(l-1)}\right] $ ,注意上标都是(l1)$ (l-1) $ 。其中$ \circ $ 表示向量拼接,SG(.) 表示 stop-gradient 操作。

      但是,这种同层依赖(类似于 LSTM )打破了 Transformer 的并行性,可能不利于训练。

  3. structure-aware 预训练任务:

    • Sentence Reordering:遵从 ERNIE2.0 ,我们增加了一个 sentence reordering 任务来学习句子之间的关系。在这个任务的预训练过程中,一个给定的段落被随机拆分成1$ 1 $ 到m$ m $ 个 segment ,然后这些 segment 被随机混洗。我们让预训练模型来重新排序这些被打乱的 segment (作为一个m!$ m! $ 的分类任务)。
    • Sentence Distance:遵从 ERNIE2.0 ,该任务被建模为一个三类分类问题:0 代表两个句子在同一个文档中是相邻的、1 代表两个句子在同一个文档中但是不相邻、2 代表两个句子来自两个不同的文档。
  4. knowledge-aware 预训练任务:

    • Universal Knowledge-Text Prediction: UKTPUKTP 任务是knowledge masked language modeling 的扩展。knowledge masked language modeling 只需要非结构化文本,而 UKTP 任务则同时需要非结构化文本和知识图谱。

      UKTP 任务如下图所示。 给出知识图谱中的三元组和百科全书中的相应句子,我们随机掩码三元组中的关系relation 或句子中的单词。

      • 为了预测三元组中的关系,模型需要检测 head entitytail entity ,并确定它们在相应句子中的语义关系。

        这个过程的本质与关系抽取任务中的 distant supervision algorithm 相似(《Distant supervision for relation extraction without labeled data》)。 distant supervision algorithm认为:如果两个实体参与了某种关系,任何包含这两个实体的句子都可能表达这种关系。

      • 为了预测相应句子中的单词,模型不仅考虑了句子中的依赖信息,还考虑了三元组中的逻辑关系。

      具体来说,获得一个三元组和这个对应句子的程序如下:给定百科全书中的一篇文档,我们首先从知识图谱中找到 head entitytail entity 是文档标题的候选三元组,然后从候选三元组中 head entitytail entity 同时在该文档的同一句子中被提及的三元组。

      注意,这里只需要 head entitytail entity 同时位于同一个句子即可,不需要 relation 也位于该句子中。

      注意,input 将知识图谱三元组和对应的文档句子拼接起来,这里把三元组也视为一个句子。

      注意,如果文档中的一个句子对应多个三元组怎么处理?作者未说明,读者猜测把每个三元组视为一个句子,然后与文档句子拼接起来。

13.1.3 预训练过程

  1. 预训练算法:渐进式训练 progressive training 最初是为了提高稳定性而提出的,它从一个高效的小模型开始并逐渐增加模型容量。最近的研究利用这一范式来加速模型训练。随着大型预训练的不断推进,其巨大的计算消耗成为进一步开发更强大模型的主要负担。渐进式训练的初步应用已经在 transformer 预训练中得到了体现。

    • BERT 设计了一个两阶段的训练,在前 90% 的更新中减少序列长度。
    • GPT-2 也线性地逐渐增加 batch size ,从一个小的值到 full value
    • Efficientnet-v2 也注意到,阶段性地改变 regularization factor 可以加快训练网络的速度。

    为了进一步提高训练过程的收敛速度,我们建议通过逐步同时增加包括输入序列长度、batch size 、学习率、dropout rate 在内的training factor ,从而来更全面、更平稳的方式调整 training regularization factor 。事实上,Transformer 模型采用 learning rate warm-up 策略来提高训练稳定性是很常见的,我们改进的渐进式学习策略与现有策略是兼容的。

  2. 预训练数据:我们构建了一个大规模、多种类、高质量的中文文本语料库,存储量达 4TB ,分 11 个不同的类别。据我们所知,与CLUECorpus2020100GB)、中文多模态预训练数据(300GB )、CPM-2 使用的 WuDaoCorpus2.02.3TB 中文数据和 300GB 英文数据)和 PanGu Corpus1.1TB)相比,这是目前最大的中文预训练语料。

    具体而言,我们为 ERNIE 3.0 建立的语料库来自ERNIE 2.0(包括百度百科、维基百科、feed 等等)、百度搜索(包括百家号、知乎、百度贴吧、百度经验)、Web textQA-longQA-shortPoetry 2&Couplet,以及来自医疗、法律和金融等领域的特定数据,以及拥有超过 5000 万条事实的百度知识图谱。

    为了提高数据质量,我们采取了以下预处理策略:

    • 数据去重:数据去重是在不同的粒度上进行的,包括字符级、段落级和文档级。

      • 在字符级,我们用单个字符替换连续的相同字符(即空格、制表符、感叹号、问号等)。
      • 在段落级,我们用单个段落替换两个相同的连续段落,其中每个段落的句子长度为N,1<N<100$ N, 1\lt N\lt 100 $ 。
      • 在文档级,我们采用 Message Digest Algorithm5: MD5 ,通过比较每个文档中最长的前三个句子的 MD5 之和来过滤重复的文档。

      字符级和段落级去重对于 ERNIE 3.0 生成不重复的内容至关重要。

    • 少于 10 个单词的句子被过滤掉,因为它们可能是有问题的或不完整的句子,包含的语义信息有限,无法用于模型预训练。

    • 我们进一步使用正则表达式进行句子分割,并基于百度的分词工具进行分词。这有助于 ERNIE 3.0 在预训练中学习更好的句子边界和命名实体知识。

    然后,每个数据集都乘以一个用户定义的乘数 user-defined multiplier number ,从而为 NLU-network 预训练来增加数据的多样性。

    这个乘数代表了数据集的重要性,即:更高质量的数据集被更多地使用、更低质量的数据集被更少地使用。

    百度分词工具、百度知识图谱、以及这个数据集都是私有的,没有这些工具和数据我们难以复现论文结果。

  3. 预训练 setting

    • ERNIE 3.0universal representation moduletask-specific representation module 都使用 Transformer-XL 架构作为 backboneuniversal representation module 具有 48 层、4096 个隐单元、64 个头,task-specific representation module 具有 12 层、768 个隐单元、12 个头。 universal representation moduletask-specific representation module 的总参数规模为 100 亿。

      可以看到, task-specific representation module 的规模远小于 universal representation module

    • 激活函数是 GeLU 。上下文的最大序列长度为 512 ,语言生成的memory 长度为 128 。所有预训练任务的 total batch size6144 。我们使用 Adam 优化器,学习率为 1e-4β1=0.9,β2=0.999$ \beta_1=0.9,\beta_2=0.999 $ ,L2 权重衰减为 0.01,学习率在前一万步中进行预热,学习率线性衰减。在前一万步中,我们也使用渐进式学习来加速预训练初始阶段的收敛。

    • 模型用 384NVDIA v100 GPU 卡上训练了总共 3750 亿个 token ,并在 PaddlePaddle 框架上实现。凭借在《Zero: Memory optimizations toward training trillion parameter models》《Zero-shot text-to-image generation》 中使用的参数分片,我们设法减少了我们模型的内存占用,并解决了模型的总参数超过单个 GPU 卡的内存的问题。

13.2 实验

  1. 我们将 ERNIE 3.0SOTA 预训练模型,通过微调,在自然语言理解任务、自然语言生成任务、以及 zero-shot learning 上进行比较。

  2. 评估任务:共 54NLP 任务:

    • 自然语言理解任务 Natural Language Understanding Task14 种自然语言理解任务,覆盖 45 个数据集。

      • 情感分析 Sentiment AnalysisNLPCC2014-SC, SE-ABSA16_PHNS, SE-ABSA16_CAME, BDCI2019
      • 观点抽取 Opinion extractionCOTE-BD, COTE-DP, COTE-MFW
      • 自然语言推理 Natural Language InferenceXNLI, OCNLI, CMNLI
      • Winograd Schema ChallengeCLUEWSC2020
      • 关系抽取 Relation ExtractionFinRE, SanWen
      • 事件抽 Event ExtractionCCKS2020
      • 语义相似度 Semantic SimilarityAFQMC, LCQMC, CSL, PAWS-X, BQ Corpus
      • 中文新闻分类 Chinese News ClassificationTNEWS, IFLYTEK, THUCNEWS, CNSE, CNSS
      • 闭卷问答 Closed-Book Question AnsweringNLPCC-DBQA, CHIP2019, cMedQA, cMedQA2, CKBQA, WebQA
      • 命名实体识别 Named Entity RecognitionCLUENER, Weibo, OntoNotes, CCKS2019
      • 机器阅读理解 Machine Reading ComprehensionCMRC 2018, CMRC2019, DRCD, DuReader, Dureader_robust, Dureader_checklist, Dureader_yesno, C^3, CHID
      • 法律文件分析 Legal Documents AnalysisCAIL2018-Task1, CAIL2018-Task2
      • Cant UnderstandingDogWhistle Insider, DogWhistle Outsider
      • 文档检索 Document RetrievalSogou-log
    • 自然语言生成任务 Natural Language Generation Task7 种自然语言理解任务,覆盖 9 个数据集。

      • 文本摘要 Text SummarizationLCSTS
      • 问题生成 Question GenerationKBQG, DuReader-QG, DuReader_robust-QG
      • 数学 MathMath23K
      • 对抗生成 Advertisement GenerationAdGen
      • 翻译 TranslationWMT20-enzh
      • 对话生成 Dialogue GenerationKdConv
  3. 自然语言理解任务上的微调结果:

  4. 自然语言生成任务上的微调结果:

  5. LUGE benchmark :我们在 Language Understanding and Generation Evaluation: LUGE 上的六个代表性任务上评估了 ERNIE 3.0 和其它方法。ERNIE 3.0ERNIE 2.0RoBERTa 等领先的预训练模型平均提高 5.36%

  6. Zero-shot Learning 评估:我们已经证明,ERNIE 3.0pretraining-then-finetuning 的范式下,在 NLUNLG 任务上都优于以前的 SOTA 方法。这里我们评估 ERNIE 3.0zero-shot setting 下的性能,此时模型没有执行任何梯度更新或微调。结果表明:与最近提出的大型语言模型如 CPM-12.6B )、PanGu-α-2.6BPanGu-α-13B 相比,ERNIE 3.0 在大多数下游任务上取得了强大的性能。 并且 ERNIE 3.0 可以产生更连贯、更自然和更准确的 response (这是在我们人工收集的、跨越 13 个不同任务的 450 个案例中评定的)。

    • 评估方法:

      • Perplexity-based Method:在从多选答案中选择一个正确答案的任务中(如 CHIDCMRC2017),我们比较了将每个答案填入上下文空白处时的 per-token perplexity 分,得分最低的那个将被预测为正确答案。

        在需要二分类或多分类的任务中,我们给每个 label 分配一个更有语义的名字,并使用一个 prompt 将上下文和 label 形式化为人类可读的文本。然后,这类任务可以被视为多选任务。我们使用的 promptCPM-1PanGu-α 中的 prompt 相似。

      • Generation-based Method:在自由形式补全 free-form completion 的任务上(如闭卷问答),我们使用 beam search ,其中 beam width8 并且没有长度惩罚。 completion 的最大生成长度由预定义数字来限制,这个数字基于数据集上答案长度的 95% 百分点来获得。我们使用 exact match: EMF1Rouge-1 等指标。

        ROUGE-N (其中 N 可以为 1/2/...)为 N-gram 召回率:

        (18)ROUGE-N=Num of co-occurrent N-gram in model-output and ground-truthnum of N-gram in ground-truth

        exact match 为预测结果与 ground-truth 完全相同的测试样本占比。

        restrained completion 的任务上(如抽取式机器阅读理解),我们使用 restrained beam search ,参数与自由形式补全任务相同。为每个样本构建一个 Trie-Tree ,以有效地限制生成空间,所生成的 completion 仅出现在给定的文本中。

    • 结果:

    • 案例研究:我们人工收集了 450 个案例,以评估当前大型预训练模型在 5 种不同类型的 13 个任务上的 zero-shot generation 能力,包括问答 Question Answering 、解释 Interpretation 、对话 Dialogue 、文本生成 Text Generation 和摘要 Summarization 。在人类评估中,标注者被要求对生成质量进行评分,评分标准为 [0, 1, 2] 。我们在 Table 6 中报告了连贯性coherence, 、流畅性 fluency 和准确性 accuracy 的平均得分。并在 Table 7 中展示了 ERNIE 3.0 的一些 zero-shot 生成。与 CPM-1PLUGPanGu-α 相比,ERNIE 3.0 平均能生成最连贯、最流畅和最准确的文本。三个评分指标的介绍如下,评分细节如 Table 8 所示。

      • 连贯性 coherence:衡量生成的内容是否与上下文相关并一致。
      • 流畅性 fluency:评价生成的文本是否自然或可读。一个流畅的文本应该在生成的文本中没有语义上的矛盾。
      • 准确性:评价生成的文本是否与 ground truth 相同。

  7. SuperGLUE 上的实验:SuperGLUE 是一个针对自然语言理解的多任务 benchmark

  8. 分析:

    • Task-specific Representation Module 的有效性:为了验证 task-specific network 的有效性,我们将我们提出的结构与那些在各种预训练任务下共享参数的网络进行比较。

      对于消融测试,我们选择自然语言理解和自然语言生成作为两种不同的训练范式,并利用前面提到的相应任务。 unified network 遵循 base model setting12 层,768 维,12 个注意力头),每个任务范式的 task-specific network 被设置为3 层、256 维、4 个注意力头。在对比模型, task-specific network 在不同的任务范式中是共享的。下图说明了预训练过程中自然语言生成任务的 perplexity 变化。可以看到:

      • 在不同任务拥有自己的task-specific network 的模型达到了较高的收敛速度。
      • 随着训练的进行,与具有 shared task-specific network 的模型相比,性能优势变得更大。

      实验结果显示了所提出的 task-specific network 的有效性,并证明了区分不同任务的必要性。

    • Universal Knowledge-Text Prediction:为了 universal knowledge-text prediction 任务的性能,我们进行了一组消融实验。

      关系抽取任务是一个典型的 knowledge-driven 任务,旨在预测给定句子中提到的两个实体之间的关系。具体来说,我们增加了四个 special token[HD], [/HD], [TL], [/TL],分别用来识别提到的头部实体和尾部实体,然后根据上述四个 special tokenfinal representation 之和进行关系分类。我们在 SanWenFinRE 数据集上构建了实验,如下表所示,knowledge enhancement 策略在关系抽取任务上取得了卓越的经验性能。

      输入为 "[HD]实体A[\HD] .... [TL]实体B[\HD]...." 。这里的前提是,一个句子中只有两个实体。

      此外,在 CKBQA 上进行的 zero-shot generation 实验也证实了 universal knowledge-text prediction 任务的有效性。具体来说,基于知识的问答任务需要一个模型基于知识图谱来搜索和推理出正确答案。用 KBQA 任务来衡量预训练语言模型的知识学习能力是合适的。我们使用 "QUESTION: $QUESTION? ANSWER:" 作为 zero-shot learningprompt ,然后在 CKBQA 数据集上比较我们提出的模型和几个 SOTA 的预训练语言模型的性能。如 Table 5 所示,ERNIE 3.0CKBQA 数据集中的表现明显优于 PanGu-αCPM-1 ,这表明 ERNIE 3.0 具有记忆和学习更多知识的能力。

    • Progressive Learning to Speed up Convergence:我们记录了两种架构配置的训练收敛速度,包括 ERNIE_BaseERNIE_1.5B 。其中, ERNIE_Base 的架构设置遵循 《Ernie: Enhanced representation through knowledge integration》ERNIE_1.5B 模型的配置为 48 层、1536 维、24 个注意力头。

      如下表所示,我们记录了模型的 loss 值收敛到与 ERNIE3.0 相同的训练时间。

      • 对于 ERNIE_Base 模型,渐进式学习的收敛时间减少了 65.21% ,从11 小时减少到4 小时。

        在渐进式预热阶段,对于 ERNIE_Base ,我们将 batch size8 增加到 2048 ,序列长度从 128 增加到 512 ,学习率从 0 线性增加到 1e-4dropout rate 保持 0

      • 对于 ERNIE_1.5B 模型,渐进式学习的收敛时间减少了 48%

        在渐进式预热阶段,对于 ERNIE_1.5B ,我们将 batch size8 增加到 8192 ,学习率从 0 线性增加到 6e-4dropout rate 保持 0

      对于这两种配置,我们在 8NVIDIA Tesla V100 GPU 上进行了预训练。其余实验设置与 《Ernie: Enhanced representation through knowledge integration》相同。对于 ERNIE_1.5B ,为了在 GPU 内存的约束下达到峰值 batch size ,在预训练中使用梯度累积策略。

      梯度累积策略相当于增大 batch size 。假设有m$ m $ 个 batch{Bi}$ \{\mathcal B_i\} $ ,每个 batch 的梯度更新为:

      (19)for1im:ΘΘη×1|Bi|jBigj

      其中gj$ \mathbf{\vec g}_j $ 为样本j$ j $ 的梯度,η$ \eta $ 为学习率。

      梯度累积策略对于这m$ m $ 个 batch 执行一次梯度更新,而不是m$ m $ 次梯度更新。即,先累加m$ m $ 个 batch 的梯度,然后一次性更新。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文