GLaM: Efficient Scaling of Language Models with Mixture-of-Experts——使用专家混合模型高效扩展语言模型

这篇文章介绍了一种名为 GLaM(Generalist Language Model) 的新型语言模型,它通过 稀疏激活的专家混合(Mixture-of-Experts, MoE) 架构,显著提升了模型性能,同时降低了训练和推理的计算成本。以下是文章的主要内容总结:

  1. 背景与动机

    • 大型语言模型(如 GPT-3)在自然语言处理(NLP)任务中表现出色,但训练这些密集模型需要巨大的计算资源和能源消耗。

    • 本文提出 GLaM,旨在通过稀疏激活的 MoE 架构,在保持高性能的同时减少计算成本。

  2. GLaM 的核心创新

    • GLaM 使用 MoE 架构,每个输入 token 仅激活模型中的一小部分专家(子网络),从而在增加模型容量的同时减少计算量。

    • 最大的 GLaM 模型拥有 1.2 万亿参数,但每个 token 仅激活 96.6B 参数(约 8%),显著降低了计算需求。

  3. 性能与效率

    • GLaM 在 29 个 NLP 任务上(包括零样本、单样本和少样本学习)表现优于 GPT-3,尤其是在开放域问答任务(如 TriviaQA)中表现突出。

    • 训练 GLaM 的能耗仅为 GPT-3 的三分之一,推理时的计算量也减少了一半。

  4. 数据质量的重要性

    • 实验表明,高质量的训练数据对模型性能至关重要,尤其是在自然语言生成(NLG)任务中,过滤后的数据显著提升了模型表现。

  5. 扩展性与效率

    • GLaM 的稀疏激活架构使其能够通过增加专家数量来扩展模型容量,而不会显著增加计算成本。

    • 与密集模型相比,GLaM 在相同计算预算下表现更好,且训练和推理效率更高。

  6. 伦理与社会影响

    • 文章探讨了大型语言模型可能带来的伦理问题,如偏见和毒性生成,并展示了 GLaM 在减少性别偏见(如 WinoGender 基准)方面的改进。

  7. 结论

    • GLaM 展示了稀疏激活模型在高效扩展语言模型方面的潜力,能够在减少计算成本和能耗的同时,提升模型性能。

    • 未来的研究可以进一步探索高质量数据的获取和 MoE 架构的优化。

核心贡献:GLaM 通过稀疏激活的 MoE 架构,实现了高性能与高效率的平衡,为大规模语言模型的扩展提供了一种更可持续的解决方案。这里是自己的论文阅读记录,感兴趣的话可以参考一下,如果需要阅读原文的话可以看这里,如下所示:

摘要

通过增加数据、计算资源和参数规模来扩展语言模型,已经在自然语言处理(NLP)领域取得了显著进展。例如,GPT-3 通过扩展在上下文学习任务中取得了强大的结果。然而,训练这些大型密集模型需要大量的计算资源。本文提出并开发了一类名为 GLaM(通用语言模型)的语言模型,它使用稀疏激活的专家混合(Mixture-of-Experts, MoE)架构来扩展模型容量,同时相比密集模型显著降低了训练成本。最大的 GLaM 模型拥有 1.2 万亿参数,大约是 GPT-3 的 7 倍。它在训练过程中仅消耗 GPT-3 三分之一的能量,推理时所需的计算量也仅为 GPT-3 的一半,同时在 29 个 NLP 任务上实现了更好的零样本、单样本和少样本性能。

1 引言

语言模型在过去十年中对自然语言处理的进展起到了重要作用。语言模型的变体已被用于生成预训练的词向量(如 Mikolov et al., 2013; Pennington et al., 2014)和上下文词向量(如 Peters et al., 2018; Devlin et al., 2019),广泛应用于许多 NLP 任务。随着数据和模型规模的扩展(如 Shazeer et al., 2017; Huang et al., 2019; Kaplan et al., 2020),复杂的自然语言任务可以在更少的标注数据下完成。例如,GPT-3(Brown et al., 2020)和 FLAN(Wei et al., 2021)展示了在少样本甚至零样本泛化中进行上下文学习的可行性,这意味着在 NLP 应用中只需很少的标注示例即可获得良好的性能。尽管这些模型有效且性能强大,但进一步扩展的成本变得极其高昂,并且消耗大量能源(Patterson et al., 2021)。

在本研究中,我们展示了大型稀疏激活网络可以在少样本任务上取得与最先进的密集模型相媲美的结果,同时计算效率更高。我们提出了一类名为 GLaM 的通用语言模型,它在密集计算和条件计算之间取得了平衡。GLaM 的最大版本拥有 1.2 万亿参数,每个 MoE 层包含 64 个专家(Shazeer et al., 2017; Lepikhin et al., 2021; Fedus et al., 2021),其中每个输入批次中的每个 token 仅激活 96.6B(1.2T 的 8%)参数。在零样本、单样本和少样本学习中,该模型优于 GPT-3(175B),在 29 个公共 NLP 基准测试中显著提高了学习效率,任务范围从语言补全任务、开放域问答任务到自然语言推理任务。得益于稀疏激活架构和模型并行算法的高效实现,训练过程中的总能耗仅为 GPT-3 的三分之一。我们在表 1 和图 1 中重点比较了 GLaM 的最大版本与 GPT-3 的表现。

图 1. GLaM (64B/64E) 与 GPT-3 (175B) 在 (a) 零样本、(b) 单样本和 (c) 少样本设置下预测性能(越高越好)的百分比变化概览,涵盖 7 个基准类别,共 29 个公共任务。图 (a)、(b) 和 (c) 中的每个条形代表一个基准类别。图 (d) 比较了每个 token 预测所需的 FLOPs 和训练能耗。

2 相关工作

语言模型

神经语言模型(如 Mikolov et al., 2010; Sutskever et al., 2011)已被证明对许多自然语言处理任务非常有用。词嵌入模型及其扩展(如 word2vec, Mikolov et al., 2013; GloVe, Pennington et al., 2014; 段落向量, Le & Mikolov, 2014)通过迁移嵌入在许多任务上表现出良好的泛化能力。

预训练与微调

计算资源和数据的丰富使得通过无监督预训练来训练越来越大的模型成为可能。这对于训练神经网络来说是一个自然的契合,因为它们表现出显著的扩展性。使用循环模型(如 RNN 和 LSTM)进行语言表示的研究(如 Dai & Le, 2015; Kiros et al., 2015)表明,通用语言模型可以通过微调来改进各种语言理解任务。最近,使用 Transformer 的模型(Vaswani et al., 2017)表明,在未标注数据上进行自监督训练的大型模型可以在 NLP 任务上取得显著改进(如 Devlin et al., 2019; Yang et al., 2019; Liu et al., 2019; Clark et al., 2020)。基于预训练和微调的迁移学习(如 Raffel et al., 2020; Houlsby et al., 2019)已被广泛研究,并在下游任务中表现出良好的性能。然而,这种方法的一个主要限制是它需要特定任务的微调。

上下文少样本学习

GPT-3(Brown et al., 2020)及相关工作(如 Shoeybi et al., 2019; Lieber et al., 2021; Wei et al., 2021)表明,扩展语言模型可以显著提高任务无关的少样本性能。这些语言模型在没有任何梯度更新的情况下应用,仅需通过文本交互提供少样本示例即可。

稀疏门控网络

基于专家混合的模型也显示出显著的优势。对于语言建模和机器翻译,Shazeer et al.(2017)表明,它们可以有效地使用大量权重,而在推理时只需计算计算图的一小部分。还有一些关于扩展稀疏激活 MoE 架构的工作(如 Hestness et al., 2017; Shazeer et al., 2018; Lepikhin et al., 2021; Kudugunta et al., 2021)。最近,Fedus et al.(2021)展示了具有 1 万亿参数的稀疏激活模型(Switch-C)的结果。尽管 Switch-C 和最大的 GLaM 模型都有 1 万亿个可训练参数,但 GLaM 是一类仅解码器的语言模型,而 Switch-C 是基于编码器-解码器的序列到序列模型。此外,Switch-C 主要在微调基准(如 SuperGlue)上进行评估,而 GLaM 在无需微调的少样本设置中表现良好,SuperGlue 是其中的一个子集。表 2 总结了 GLaM 与相关模型在文本语料库上预训练的关键差异。

3 训练数据集

为了训练我们的模型,我们构建了一个包含 1.6 万亿 token 的高质量数据集,涵盖了广泛的自然语言使用场景。网页构成了我们未标注数据集中的大部分数据。然而,它们的质量从专业写作到低质量的评论和论坛页面不等。类似于 Brown et al.(2020),我们开发了自己的文本质量分类器,从原始较大的语料库中生成高质量的网络语料库。我们使用基于特征哈希的线性分类器以提高推理速度。该分类器经过训练,能够区分精选文本(如维基百科、书籍和部分精选网站)与其他网页。我们使用该分类器来估计网页的内容质量,然后通过帕累托分布根据其得分对网页进行采样。这允许包含一些低质量的网页,以防止分类器中的系统性偏差(Brown et al., 2020)。

图 2. GLaM 模型架构。每个 MoE 层(下方模块)与 Transformer 层(上方模块)交错排列。对于每个输入 token(例如“roses”),门控模块动态地从 64 个专家中选择两个最相关的专家,这由 MoE 层中的蓝色网格表示。这两个专家输出的加权平均值随后传递给上层的 Transformer 层。对于输入序列中的下一个 token,将选择两个不同的专家。 

我们使用此过程生成高质量过滤后的网页子集,并将其与书籍、维基百科页面、论坛和新闻页面等其他数据源结合,创建最终的 GLaM 数据集。我们还整合了 Adiwardana et al.(2020)使用的公共领域社交媒体对话数据。我们根据每个组件在较小模型中的表现设置混合权重,以防止像维基百科这样的小数据集被过度采样。表 3 显示了我们的数据组件大小和混合权重的详细信息。混合权重是根据组件在较小模型中的表现选择的,以防止像维基百科这样的小数据集被过度采样。为了检查数据污染,我们在附录 D 中对训练集和评估数据之间的重叠进行了分析,发现其与之前的工作(Brown et al., 2020)大致匹配。

4 模型架构

我们在 GLaM 模型中利用了稀疏激活的专家混合(MoE)架构(Shazeer et al., 2017; Fedus et al., 2021)。类似于 GShard MoE Transformer(Lepikhin et al., 2021),我们将每隔一个 Transformer 层的前馈组件替换为 MoE 层,如图 2 所示。每个 MoE 层由一组独立的前馈网络组成,称为“专家”。门控函数使用 softmax 激活函数对这些专家进行概率分布建模,该分布表示每个专家处理输入的能力。

尽管每个 MoE 层有更多的参数,但专家是稀疏激活的。这意味着对于给定的输入 token,仅使用有限的专家子集,从而在限制计算的同时增加模型容量。在我们的架构中,子集大小为 2。每个 MoE 层的可学习门控网络经过训练,使用其输入为输入序列中的每个 token 激活最佳的两个专家。在推理过程中,学习到的门控网络动态地为每个 token 选择最佳的两个专家。对于具有 E 个专家的 MoE 层,这实际上提供了 O(E^2) 种不同的前馈网络组合,而不是经典 Transformer 架构中的一种,从而带来了更大的计算灵活性。token 的最终学习表示将是所选专家输出的加权组合。

我们还对原始 Transformer 架构进行了其他修改。我们将标准的位置嵌入替换为 Dai et al.(2019)提出的每层相对位置偏差。在非 MoE Transformer 前馈子层中,我们将第一个线性投影和激活函数替换为门控线性单元(Dauphin et al., 2017; Shazeer, 2020),它计算输入的两个线性变换的分量乘积,然后使用高斯误差线性单元(Hendrycks & Gimpel, 2016)激活函数。我们使用 Xu et al.(2021)中描述的 2D 分片算法对大型 GLaM 模型的权重和计算进行分区,附录 C 中对此进行了更详细的描述。

5 实验设置

GLaM 是一类密集和稀疏的仅解码器语言模型,因此我们首先在本节中详细说明我们的训练设置、超参数和评估协议。

训练设置

我们训练了多个 GLaM 变体,以研究 MoE 和密集模型在相同训练数据上的行为。表 4 显示了不同规模的 GLaM 模型的超参数设置,范围从 1.3 亿参数到 1.2 万亿参数。其中,E 是 MoE 层中的专家数量,B 是 mini-batch 大小,S 是输入序列长度,M 是模型和嵌入维度,H 是前馈网络的隐藏维度,L 是层数,N 是设备总数。此外,n_params 是模型的可训练参数总数,n_act-params 是每个输入 token 激活的模型参数数量,n_heads 是自注意力头的数量,d_head 是每个注意力头的隐藏维度。我们还包括了具有可比推理时每 token 激活参数数量(因此具有相似的每 token FLOPs)的密集模型作为参考。我们采用以下符号来描述 GLaM 模型的不同变体:

GLaM(基础密集大小/E),例如 GLaM(8B/64E)

例如,GLaM(8B/64E)表示一个大约 8B 参数的密集模型,每隔一层替换为包含 64 个专家的 MoE 层。当每个 MoE 层只有一个专家时,GLaM 简化为密集的基于 Transformer 的语言模型架构。我们使用以下符号:

GLaM(密集大小),例如 GLaM(137B)

表示一个密集的 137B 参数模型,使用相同的数据集进行训练。

超参数和训练过程

我们为所有 GLaM 模型使用相同的学习超参数。具体来说,我们使用最大序列长度为 1024 个 token,并将每个输入示例打包为每批最多 100 万个 token。由于训练语料库中的可用 token 数量远大于训练期间处理的 token 数量,因此我们将 dropout 率设置为 0。我们的优化器是 Adafactor(Shazeer & Stern, 2018),其一阶矩衰减 β1=0,二阶矩衰减 β2=0.99,采用 1-t^-0.8 衰减计划,更新裁剪阈值为 1.0,并进行因子化的二阶矩估计。我们在前 10K 训练步骤中保持初始学习率为 0.01,然后使用逆平方根计划 lr(t)∝1/√t 进行衰减。在标准交叉熵损失的基础上,我们添加了 GShard(Lepikhin et al., 2021)中描述的 MoE 辅助损失,系数为 0.01,以鼓励专家负载平衡,使门控函数更均匀地分配 token。我们使用 SentencePiece(Kudo & Richardson, 2018)子词分词器,词汇表大小为 256K。在训练过程中,我们使用 float32 表示模型权重,使用 bfloat16 表示激活。最大的 GLaM 64B/64E 模型在 1,024 个 Cloud TPU-V4 芯片上进行了训练。

在万亿参数规模上训练模型即使对于稀疏激活模型来说也非常昂贵。几乎没有超参数调整的空间。在这里,我们分享了 GLaM 模型的训练方法和一些实现技巧。

  • 我们首先训练较小规模的模型直至收敛。这使我们能够尽早暴露数据集和基础设施中的潜在问题。

  • 如果梯度中存在任何 NaN 或 Inf,我们跳过该批次的权重更新(Shen et al., 2019)。请注意,在应用梯度步骤时仍可能出现 NaN/Inf,在这种情况下,我们从较早的检查点重新开始,如下所述。例如,即使现有变量或梯度中没有 Inf,更新后的变量仍可能导致 Inf。

  • 当在训练过程中遇到罕见的较大波动甚至 NaN/Inf 时,我们从较早的健康检查点重新开始。顺序加载批次的随机性可能有助于在重新启动后从之前的失败状态中逃脱。

评估设置

协议。为了清楚地展示 GLaM 模型的有效性,我们主要关注评估 Radford et al.(2018)和 Brown et al.(2020)提出的零样本、单样本和少样本学习协议。对于零样本学习设置,在大多数情况下,我们直接评估开发集中的每个示例。对于单样本/少样本学习,我们主要从该任务的训练集中随机抽取一个/几个示例作为唯一的演示和上下文。这样的演示与评估示例连接在一起,中间有两个换行符,然后输入到模型中。

基准测试。为了在 GPT-3 和 GLaM 之间进行公平比较,我们选择了与 Brown et al.(2020)相同的评估任务套件。但为了简单起见,我们排除了 7 个合成任务(算术和单词解扰)和 6 个机器翻译数据集。排除这些任务后,我们最终得到了 29 个数据集,其中包括 8 个自然语言生成(NLG)任务和 21 个自然语言理解(NLU)任务。这些数据集可以进一步分为 7 个类别,列在附录 A 中。

自然语言生成任务。我们比较了模型生成的语言序列与生成任务中的真实值。这些任务包括 TriviaQA、NQS、WebQS、SQuADv2、LAMBADA、DROP、QuAC 和 CoQA。性能通过精确匹配(EM)和 F1 分数来衡量,遵循 Brown et al.(2020)中每个任务的标准。我们使用宽度为 4 的束搜索生成序列。

自然语言理解任务。大多数语言理解任务要求模型从多个选项中选择一个正确答案。所有二元分类任务都被表述为在两个选项(“是”或“否”)之间进行选择。预测基于每个选项在给定上下文下的最大对数似然 log P(option|context),并按每个选项的 token 长度进行归一化。在少数任务上,如 ReCoRD(Zhang et al., 2018)和 COPA(Gordon et al., 2012),非归一化损失可能产生更好的结果,因此被采用。除了 MultIRC(Khashabi et al., 2018)报告了答案选项集的 F1 指标(称为 F1a)外,其他所有任务均使用预测准确率指标。我们使用所有数据集中报告得分的平均值来报告模型在 NLG 和 NLU 任务上的整体少样本性能。准确率(EM)和 F1 分数均已归一化为 0 到 100 之间的值。在 TriviaQA 上,我们还报告了我们单样本提交的测试服务器得分。

6 结果

我们对整个 GLaM 模型家族进行了广泛的评估,以展示稀疏激活模型在语言建模中的优势及其扩展趋势。我们还定量检查了数据质量对语言模型训练的有效性。

MoE 与密集模型的比较

正如表 1 所示,GLaM(64B/64E)在零样本、单样本和少样本学习方面与 GPT-3(175B)具有竞争力。图 1 比较了每个任务类别的性能。总体而言,GLaM(64B/64E)在 7 个类别中的 6 个类别上平均表现优于 GPT-3,表明性能提升是一致的。有关每个单独任务的更多详细信息,请参见表 11。我们还包括了更大且计算要求更高的 Megatron-NLG 和 Gopher 的结果作为参考。更重要的是,如表 4 所示,GLaM(64B/64E)在推理过程中每个 token 激活大约 96.6B 参数,这仅需要 GPT-3 在相同输入下所需计算量的一半。

我们特别强调了一个具有挑战性的开放域问答任务:TriviaQA。在开放域问答任务中,模型需要直接回答给定的查询,而无需访问任何额外的上下文。Brown et al.(2020)表明,TriviaQA 的少样本性能随着模型规模的增加而平稳增长,表明语言模型能够利用其模型容量吸收知识。如表 5 所示,GLaM(64B/64E)优于密集模型,并在开放域设置中超越了之前微调的最先进(SOTA)结果。我们的单样本结果比之前微调的 SOTA(Yu et al., 2022)高出 8.6%,后者注入了额外的知识图谱信息,并且在测试服务器上比 GPT-3 的少样本结果高出 5.3%。这表明,尽管 GLaM(64B/64E)的 n_act-params 仅为 GPT-3 的一半,但 GLaM 的额外容量在性能提升中起到了关键作用。与 Switch-C 相比,尽管两个模型的总参数数量相似,但 GLaM(64B/64E)使用的专家规模更大(超过一个 TPU 核心)。因此,GLaM 在 TriviaQA 上的单样本性能也优于 Switch-C 在开放域设置中的微调结果。最后,我们在附录的表 11、12、13 和 14 中报告了所有任务的零样本、单样本和少样本评估结果,主要基于开发集。

数据质量的影响

我们研究了数据质量对下游任务少样本性能的影响。我们使用中等规模的 GLaM 模型(1.7B/64E)来展示过滤文本对模型质量的有效性。我们在两个数据集上使用相同的超参数训练模型。一个是第 3 节中描述的原始数据集,另一个是将过滤后的网页替换为未过滤网页的数据集。混合比例固定为表 3 中给出的值。过滤后的网页包含 143B token,而未过滤的网页包含约 7T token。

图 3(c)和(d)显示,使用过滤数据训练的模型在 NLG 和 NLU 任务上表现一致更好。特别是,过滤对 NLG 的影响大于对 NLU 的影响。这可能是因为 NLG 通常需要生成高质量的语言,而过滤后的预训练语料库对语言模型的生成能力至关重要。我们的研究强调了预训练数据的质量在下游任务性能中的关键作用。

扩展研究

扩展密集语言模型通常涉及通过添加更多层使模型更深,并通过增加 token 表示的嵌入维度使模型更宽。此过程增加了模型的总参数数量 n_params。对于给定输入示例的每个预测,这些模型是“密集的”,因为所有 n_params 参数都将被激活,即表 4 中的 n_params = n_act-params。因此,每个预测的有效 FLOPs 随模型规模 n_params 线性增加。虽然增加的 FLOPs 可能会提高预测性能,但它也增加了每个预测的总体成本。

相比之下,GLaM MoE 模型是稀疏激活的,因为对于每个预测,仅激活总 n_params 参数的一小部分,其中 n_params ≫ n_act-params。因此,GLaM MoE 模型可以通过增加 MoE 层中专家的大小或数量来扩展。

如图 3(a)所示,生成任务的平均零样本、单样本和少样本性能随每个预测的有效 FLOPs 扩展良好,而有效 FLOPs 又由 n_act-params 决定。我们还发现,对于相似的每 token 有效 FLOPs,GLaM MoE 模型的表现始终优于 GLaM 密集模型。对于图 3(b)中显示的语言理解任务,GLaM MoE 模型的性能增益与生成任务具有相似的扩展趋势。我们观察到,MoE 和密集模型在较小规模上表现相似,但在较大规模上 MoE 模型表现更好。我们还在附录 B 中展示了扩展专家数量的实验,我们观察到,对于固定的每预测计算预算,增加专家数量通常会带来更好的预测性能。

GLaM 的效率

现有的大型密集语言模型通常需要大量的计算资源进行训练和服务(Patterson et al., 2021)。它们还需要消耗大量的预训练数据。我们研究了所提出的 GLaM 模型的数据和计算效率。

数据效率。图 4(a-c)和图 4(e-g)显示了我们的模型与具有相似有效 FLOPs 的密集基线在 NLG 和 NLU 任务中的学习曲线。x 轴是训练中使用的 token 数量,我们明确包括了 GPT-3 在约 300B token 时的结果。我们首先观察到,GLaM MoE 模型需要比具有可比 FLOPs 的密集模型显著更少的数据才能达到相似的零样本、单样本和少样本性能。换句话说,当使用相同数量的数据进行训练时,MoE 模型表现更好,并且当训练到 630B 时,性能差异变得更大。此外,使用 280B token 训练的 GLaM(64B/64E)模型在 6 个学习设置中的 4 个(零样本/单样本 NLU 和单样本/少样本 NLG)上大幅优于使用 300B token 训练的 GPT-3,并在剩余设置(即零样本 NLG 任务)上匹配 GPT-3 的得分。

计算效率和能耗。图 4(d)和图 4(h)显示了平均零样本、单样本和少样本性能随训练 MoE 和密集模型所花费的 TPU 年数的扩展情况。我们发现,要在下游任务上达到相似的性能,训练稀疏激活模型所需的计算资源比训练密集模型少得多。

正如表 1 所示,GLaM(64B/64E)在 600B token 训练后消耗了 456 MWh,约为 GPT-3 能耗 1287 MWh 的三分之一。此外,为了达到与 GPT-3 相似(并略微超过)的得分,我们使用 1,024 个 TPU-v4 芯片训练了 574 小时(使用 280B token)。这消耗了 213 MWh,约为 GPT-3 能耗的六分之一。GLaM 的能耗降低归功于 MoE 架构以及 TPU-v4 硬件和 GSPMD 软件的计算效率优化。能耗计算可在附录 F 中找到。

7 伦理与意外偏见

大型语言模型的零样本和少样本推理是一个令人兴奋的能力:能够直观地使用自然语言和小数据集控制模型行为,显著降低了原型设计和开发新应用的门槛;它有可能通过大幅减少对专业知识的需求来帮助民主化 AI 的使用。然而,这样的机会也凸显了许多伦理挑战的重要性(Leidner & Plachouras, 2017; Bender et al., 2021; Bommasani et al., 2021),包括表示偏见(Blodgett et al., 2020)、训练数据的适当选择和处理(Rogers, 2021)及其文档(Bender & Friedman, 2018)、隐私(Abadi et al., 2016b; Carlini et al., 2020)以及环境问题(Strubell et al., 2019; Patterson et al., 2021)。这项研究的一个重要部分集中在语言模型学习到的意外偏见,包括性别与职业之间的相关性(Bolukbasi et al., 2016; Rudinger et al., 2018; Zhao et al., 2018)、对种族和宗教群体的负面情绪(Li et al., 2020; Nadeem et al., 2021)以及对残疾人的负面情绪(Hutchinson et al., 2020),以及其他社会偏见(Caliskan et al., 2017; Rudinger et al., 2017; Sap et al., 2020; Sotnikova et al., 2021)。虽然衡量和减轻语言模型的潜在危害是一个非常活跃的研究领域,正如 Blodgett et al.(2021)和 Jacobs & Wallach(2021)所认识到的那样,仍然需要更严格的评估方法来评估语言模型编码有害刻板印象的程度(May et al., 2019; Webster et al., 2021)。

尽管对于此类通用大型语言模型的测量方法或标准尚未达成共识,但这些模型的多功能性和强大功能使其在一系列指标上进行评估变得重要。我们受到 GPT-3(Brown et al., 2020)的启发,分析了生成文本中引用身份术语的共现情况,并报告了 WinoGender 基准(Rudinger et al., 2018)的结果。我们还像 Gopher(Rae et al., 2021)一样分析了毒性退化,并将分析扩展到考虑人类行为基线。

共现提示

按照 Brown et al.(2020)中描述的程序,我们分析了在给出类似“{term} was very...”的提示时,生成文本中常见的共现词,其中替换的术语引用性别、宗教、种族和民族身份。对于每个提示(附录表 7),使用 top-k 采样(k=40)和温度为 1 生成 800 个输出。使用现成的词性标注器(Bird & Loper, 2004)去除停用词并仅选择描述性词(即形容词和副词)。包括副词是因为我们注意到一个常见的错误模式,即形容词被错误分类为副词;例如,“pretty”在短语“She was very pretty and very accomplished”中。与 Brown et al.(2020)一样,为了使分析透明且易于重现,我们省略了任何人工标注。

像我们借鉴的其他大型语言模型分析一样,我们注意到所有维度的关联偏见都很明显,例如“pretty”是与术语“She”最相关的描述,而它不在术语“He”的前 10 名中。表 8 显示了在响应性别代词提示模板时最常出现的描述性词,附录的表 9 和表 10 显示了种族和宗教提示的相同内容。

WinoGender

共指解析是许多应用程序需要良好执行的能力,包括机器翻译(Stanovsky et al., 2019; Webster & Pitler, 2020)和问答(Lamm et al., 2020)。为了评估 GLaM 中的性别相关性是否导致其在单样本设置中犯共指错误,我们测量了 WinoGender(Rudinger et al., 2018)。GLaM(64B/64E)在整个数据集上实现了 71.7% 的最新状态(相比之下,GPT-3 为 64.2%)。令人鼓舞的是,“he”示例(70.8%)和“she”示例(72.5%)之间的准确率非常接近,刻板印象示例(假设预期分布接近美国职业统计,Rudinger et al., 2018)和反刻板印象(或“陷阱”)示例(均为 71.7%)之间的准确率也非常接近。

毒性退化

毒性退化是指语言模型生成无意中具有毒性的文本。为了评估毒性退化,我们采用了(Welbl et al., 2021; Rae et al., 2021)中使用的方法。我们使用 RealToxicityPrompts 数据集(Gehman et al., 2020),该数据集由分为两部分句子组成:提示前缀和续写后缀。与之前的研究一样,我们还使用 Perspective API,该 API 分配文本被认为粗鲁、不尊重或可能使人们想要离开对话的概率。然后,我们评估在提示具有各种毒性概率的情况下,续写具有毒性的可能性。

对于每个随机抽样的 10K 提示,我们生成 25 个续写,每个续写最多 100 个 token,使用 top-k 采样(k=40)和温度为 1。Perspective API 需要一个非空字符串,因此当续写为空字符串时,我们分配毒性分数为 0.0;这可能代表聊天机器人简单地拒绝响应。

图 5 显示了提示的毒性概率(TPP)与续写的毒性概率(TPC)之间的关系。请注意,对于低 TPP,相对较高的人类 TPC 是由于用于创建基础数据集的采样策略:句子是在毒性谱中选出的。此外,毒性通常可以在句子中局部识别,并且在此数据集中,毒性往往出现在句子的后面。这导致人类 TPC 随着 TPP 的增加而略有下降。相比之下,值得注意的是,模型的 TPC 紧密跟随 TPP,反映了经常观察到的现象,即大型语言模型有时过于强烈地受到其提示的影响,例如重复提示中的短语。

我们还分析了 API 对 25 个续写批次的毒性概率分布。这突出表明,即使对于低毒性提示,根据 Perspective API 的预测概率,某些生成的续写很可能会被大多数审查它的人判断为有毒;更多详细信息可以在图 8 中找到。我们还注意到,该数据集的采样策略及其来源(Reddit)可能不反映其他领域。此外,即使对于非常低的 TPP,应用程序也可能希望 TPC 更低:即使生成 100 个有毒建议中的 1 个,对于应用程序来说也可能非常成问题。

8 讨论

正如之前关于稀疏激活模型的研究(Fedus et al., 2021)所观察到的那样,MoE 模型在知识导向任务中表现更好。开放域任务是衡量模型中存储知识量的一种方式。MoE 模型在开放域 QA 基准(如 TriviaQA)中的表现证明了这些模型与具有相似有效 FLOPs 的密集模型相比,信息容量显著增加。尽管在上下文学习和训练效率方面具有优势,但稀疏激活模型由更多参数组成,因此需要更多设备。这限制了资源的可访问性,并在服务流量低时增加了服务成本。

9 结论

我们提出并开发了一类名为 GLaM 的通用语言模型,它使用稀疏激活的专家混合架构,在 29 个代表性 NLP 任务的零样本、单样本和少样本学习中,不仅优于具有相似有效 FLOPs 的密集模型,还优于 GPT-3 模型。特别是,GLaM(64B/64E),我们最大的 1.2 万亿参数 MoE 语言模型,在仅消耗 GPT-3 训练能耗三分之一的情况下,实现了更好的平均性能。我们希望我们的工作能够鼓励更多关于获取高质量数据和使用 MoE 进行巨型语言模型高效扩展的研究。

### DeepSeek LLM及其长期主义扩展开源语言模型的最佳实践 #### 概述 DeepSeek作为一个致力于开发先进的人工智能解决方案的企业,其大型语言模型(LLM)旨在通过创新的技术手段实现更高效、更具影响力的自然语言处理能力。为了推动这一目标,在实践中采用了多种策略和技术来优化和扩展开源语言模型。 #### 长期主义视角下的模型扩展方法 对于希望采用长期主义原则扩展开源语言模型的研究者而言,可以借鉴如下几种方式: - **持续的数据更新机制**:保持训练语料库的新鲜度至关重要。定期引入新的高质量数据集有助于提升模型的理解能力和表达多样性[^4]。 - **模块化架构设计**:构建易于维护升级的系统结构,使得各个组件之间解耦合良好,便于单独迭代改进不同部分而不影响整体稳定性[^2]。 - **社区驱动的发展模式**:鼓励全球范围内的贡献者参与进来共同完善项目生态;这不仅限于代码层面还包括文档编写、测试反馈等方面的工作[^1]。 #### 实施细节与最佳实践建议 当具体实施上述理念时,应考虑以下几个方面: - **资源分配规划**:合理安排计算资源用于实验探索与生产部署之间的平衡;优先支持那些具有潜力带来显著收益的方向进行深入研究[^3]。 - **性能监控体系建立**:设立完善的指标跟踪框架以便及时发现潜在瓶颈所在,并据此调整算法参数或硬件配置以求得最优性价比表现。 - **安全性和隐私保护措施加强**:随着模型规模不断扩大,确保用户信息安全成为不可忽视的任务之一。采取加密传输协议、匿名化处理敏感信息等手段有效降低风险隐患。 ```python import torch from transformers import AutoModelForCausalLM, AutoTokenizer def load_model(model_name="deepseek/llm"): tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForCausalLM.from_pretrained(model_name) return model, tokenizer model, tokenizer = load_model() print("Model loaded successfully.") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Together_CZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值