当前位置: 首页 > news >正文

如何查询一个网站的空间大小网站上线步骤 icp备案

如何查询一个网站的空间大小,网站上线步骤 icp备案,网页设计与制作学校,个人如何开发手机app这篇文章发表于2024年4月 摘要 大语言模型#xff08;LLMs#xff09;的快速发展推动了多个领域的变革#xff0c;重塑了通用人工智能的格局。然而#xff0c;这些模型不断增长的计算和内存需求带来了巨大挑战#xff0c;阻碍了学术研究和实际应用。为解决这些问题…这篇文章发表于2024年4月 摘要 大语言模型LLMs的快速发展推动了多个领域的变革重塑了通用人工智能的格局。然而这些模型不断增长的计算和内存需求带来了巨大挑战阻碍了学术研究和实际应用。为解决这些问题人们开发了包括算法和硬件解决方案在内的多种方法来提高大语言模型的效率。本综述全面回顾了旨在提高大语言模型效率的算法进展。与其他通常专注于特定领域如训练或模型压缩的综述不同本文探讨了对大语言模型端到端算法开发至关重要的多维度效率。具体而言它涵盖了与效率相关的多个主题包括缩放定律、数据利用、架构创新、训练和微调策略以及推理技术。本文旨在为研究人员和从业者提供有价值的参考为这一关键研究领域的未来创新奠定基础。我们的相关参考文献库维护在此处。 CCS概念计算数学计算机系统组织软件及其工程计算理论应用计算。 附加关键词和短语大语言模型人工智能计算效率内存效率数据利用架构设计训练微调推理软件。 1 引言 大语言模型LLMs[27, 113, 241, 308, 335]以其拥有数亿甚至数千亿参数的庞大规模为特征[12, 23, 53]已成为人工智能领域的核心焦点。以ChatGPT[201]和Claude[2]等应用为代表这些模型在多种通用任务中展现出了令人瞩目的能力如文本摘要[309]、翻译[101]、问答[224]甚至基础编码[33]这在很大程度上归因于它们在自然语言理解方面的专长。尽管其卓越性能背后的确切机制仍不明确[348]但人们普遍认为其大规模赋予了它们在较小模型中未观察到的涌现能力[286]这被视为迈向通用人工智能AGI[4, 24]的关键一步。 图 1. PaLM [53] 在不同规模80 亿、620 亿、5400 亿下的能力和性能树 [1]。每个圆形节点代表一种特定能力其大小表示相应的性能水平 —— 圆圈越大能力越强。随着模型规模的增加不仅在现有任务上的性能有所提升还展现出新的能力。  虽然大语言模型的大规模对于其能力至关重要见图1但这也带来了一个显著的缺点其部署受到高昂的计算成本和内存需求的严重限制[273, 301, 346, 349]。训练这些模型所需的资源巨大在资源分配和模型设计方面都带来了挑战。例如探索不同架构或策略的成本变得高得令人却步[335]。此外它们的大规模使其不适合边缘设备等资源受限的环境从而缩小了其应用范围[6]。这种计算负担还将大语言模型的开发局限于拥有丰富资源的大公司[23, 200, 215]。许多关键细节如数据收集流程和训练方法仍然是专有的这阻碍了学术研究并给小公司带来了挑战。此外训练这些模型对环境的影响也不容忽视引发了对碳排放和伦理问题的关注[274, 276, 291]。因此提高大语言模型的效率越来越受到重视。 受对更高效大语言模型这一迫切需求的推动本综述旨在全面、及时地阐述这一主题。在本文的背景下“效率”被定义为在不影响模型性能的前提下对计算和内存资源的优化。我们采用整体方法探索对大语言模型端到端开发至关重要的多个效率维度。这些维度包括数据利用、架构设计、训练和微调策略以及推理技术从算法和软件的角度涵盖了模型开发的整个流程。虽然已有一些综述关注大语言模型效率的特定方面如数据[322]、训练[246, 340, 349]、微调[329]或推理[301, 346]但它们往往没有提供全面的视角。其他研究如[273]对自然语言处理NLP的各种效率方面提供了有价值的见解但大语言模型领域的快速发展需要最新、全面的综述。相比之下本文旨在更全面、及时地概述有助于开发高效大语言模型的关键方法和技术。 本综述的其余部分组织如下从算法角度全面理解大语言模型效率的多个方面 - 第2节“背景”介绍大语言模型的核心概念并概述评估其效率的相关指标。 - 第3节“预算效率”探讨像缩放定律这样的预测方法在给定资源约束下优化大语言模型性能中的作用。 - 第4节“数据效率”聚焦于优化数据利用的技术从而在不影响性能的情况下减少资源消耗。 - 第5节“架构效率”回顾创新的架构设计详细探讨架构对效率的影响。 - 第6节“训练和微调效率”讨论从头开始高效训练大语言模型以及针对特定下游任务微调预训练模型的策略。 - 第7节“推理效率”探索旨在加速推理速度和减少内存占用的模型压缩技术领域。 - 第8节“结论”总结本综述的主要发现并讨论它们对推进高效大语言模型的更广泛影响。 图2展示了大语言模型效率各个维度的示意图。 2 背景 在本节中我们将概述构成大语言模型基础的核心概念以及用于评估其效率的关键指标。 2.1 大语言模型的核心概念 语言建模是自然语言处理领域的基石旨在对单词序列的生成可能性进行建模并预测后续或缺失词元的概率。在过去几十年里这一领域发生了显著的演变。最初它根植于统计语言模型[15, 29, 118, 227, 323]之后重点逐渐转移到预训练神经语言模型[130, 156, 189, 190, 207, 215]最近又发展到大语言模型LLMs[27, 113, 241, 308, 335]。虽然大语言模型没有标准化的定义但它们通常以其庞大的参数规模和非凡的学习能力为特征。在本节中我们采用[335]中概述的标准重点关注参数超过10亿的语言模型并详细讨论其核心概念。 架构基础大语言模型通常可以分为两种主要范式编码器 - 解码器模型[149, 151, 175, 207, 217, 233]以BERT[130]为代表以及仅解码器模型[12, 23, 53, 72, 107, 200, 214 - 216, 235, 269 - 271, 293, 331]如GPT系列[23, 200, 214, 215]。BERT使用掩码语言建模进行训练使其能够通过预测掩码或缺失词元在上下文理解方面表现出色。另一方面GPT模型使用自回归建模进行训练通过预测序列中的后续词元使其具备强大的生成能力。尽管存在这些差异但这两种类型的模型通常都依赖于Transformer[275]架构其自注意力机制尤为值得关注。在自注意力机制中每个词元被表示为一个键、值和查询。查询衡量其他词元表示为键在理解特定词元时的重要性。这些权重应用于值以创建上下文感知表示。这种机制允许序列中的每个词元同时考虑所有其他词元便于对顺序数据进行并行处理并有效捕捉长序列依赖关系。因此多头注意力层通常堆叠形成大语言模型中的深度网络。如今像GPT - 4[200]和LLaMa[270, 271]这样的仅解码器模型越来越普遍但自注意力的核心架构模块在这些变体中始终存在。 训练要点大语言模型通过在广泛多样的数据集上进行初始预训练阶段来获得通用能力[23, 308]。这些数据集涵盖了广泛的来源如图书、科学论文、代码和网站[322]。然后在相对较小的数据集上以监督方式对这些基础知识进行微调目的是使大语言模型能够遵循人类指令这一过程称为指令调整[49, 54, 56, 170, 202, 257, 265, 284, 329, 338, 344, 351]。接着对经过指令微调的大语言模型进行人类反馈强化学习以进一步使其行为与人类偏好和指令保持一致[271]。在当前的环境中仅解码器模型已成为标准特别是因为它们具有卓越的生成能力。这些模型在预训练阶段采用自回归目标以最大化基于先前上下文预测后续词元的可能性。这种自回归预训练的扩展[107, 126]显著增强了大语言模型的能力如GPT和PaLM系列模型所示[12, 53]。例如PaLM[53]在7800亿词元的数据集上进行训练并使用了540亿参数的Transformer架构。其继任者PaLM - 2[12]进一步推进了这一进展其最大的变体拥有1.1万亿参数并在包含1.5万亿词元的更多样化的多语言数据集上进行训练。然而这种扩展也带来了一系列挑战需要高效的训练基础设施和优化策略。通常采用专注于数据并行性的分布式训练框架如DeepSpeed[221]和全分片数据并行FSDP[3]或像Gpipe[114]和PipeDream[195]这样的流水线并行性。此外也会使用像Megatron - LM[197, 250]和SARATHI[5]这样的张量并行技术。还经常采用诸如混合精度训练[65, 194, 235]和量化感知训练[168, 176, 296]等专门技术来简化训练过程。这些方法不仅解决了与大语言模型规模相关的计算挑战还促进了能力越来越强的模型的开发。 提示工程的多样能力利用大语言模型在各种任务中的多样性的主要机制之一是通过提示工程[172, 290, 343]。在这种情况下提示由用户给出的自然语言指令组成用于指导大语言模型的行为。提示工程的艺术在于精心设计这些指令以从模型中引出特定且上下文合适的响应。两种突出的技术是少样本[23, 287]和零样本[140]提示。少样本提示为模型提供示例任务和相应的解决方案而零样本提示仅依赖于任务描述。这种提示形式与上下文学习ICL密切相关这一概念最早在GPT - 3[23]中被观察到它允许模型在不重新训练的情况下适应新任务。当上下文学习与精心设计的提示相结合时大语言模型的涌现能力特别是在处理各种未见任务方面会显著增强。像思维链CoT[283, 287]、思维树ToT[178, 299, 310]和思维图GoT[19]这样的先进提示策略从人类推理和认知结构中汲取灵感。这些策略使大语言模型能够探索回溯、思维合并和想法消除等新能力从而提高在算术[203]、常识推理[263]和问答[85]等复杂推理任务中的响应质量。因此提示工程是放大大语言模型多样性和有效性的关键机制。 2.2 效率评估指标 评估大语言模型的效率需要一种多方面的方法考虑各种性能指标。这些指标通常与准确性和多样性的度量一起呈现以提供对大语言模型整体效率和有效性的全面评估。在接下来的段落中我们将探讨大语言模型领域中常用于理解效率的关键指标。 参数数量 大语言模型中的参数数量是一个关键因素它直接影响模型的学习能力和复杂性。这些参数包括权重和偏差等元素在训练或微调阶段是可学习的。较高的参数数量通常使模型能够掌握更复杂的数据模式有助于各种涌现能力的发展。然而这带来了训练和推理时计算需求增加的缺点。此外参数过多可能导致过拟合特别是在训练数据稀缺的情况下。为了缓解这一问题通常会使用正则化和早停等常见技术。 模型大小 模型大小定义为存储整个模型所需的磁盘空间在训练新的大语言模型或使用预训练模型时通常是首先要考虑的因素。鉴于超大模型可能无法存储或运行这个指标对于实际部署尤其重要特别是在边缘设备等存储受限的环境中。模型大小以千兆字节GB或兆字节MB等单位表示受多种因素影响。虽然参数数量起着重要作用但其他因素如参数使用的数据类型例如float16、int8和特定的架构选择也有影响。除了对存储需求的直接影响外模型大小还间接反映了训练和推理所需的计算资源。 浮点运算次数FLOPs 浮点运算次数FLOPs通常用于衡量大语言模型的计算复杂性。这个指标计算诸如加法、减法、乘法和除法等浮点运算的数量给出在单次前向传递中完成的计算量的估计。虽然FLOPs为计算需求和潜在的能源使用提供了有价值的见解但它并不是一个完整的度量。其他因素如系统并行性和架构选择也在决定模型的整体计算效率方面发挥作用。较高的FLOPs计数通常意味着模型的计算需求更高这对于在资源有限的环境中部署可能是一个挑战。因此优化这个指标通常是开发更高效大语言模型的关键重点。 推理时间/每秒词元数 推理时间也称为延迟或时延衡量大语言模型在推理阶段处理输入并生成响应所需的时间。与FLOPs不同FLOPs提供了计算需求的理论估计而推理时间提供了实际性能的实际衡量。这是因为它是在实际部署设置中进行评估的考虑了特定的硬件和优化。通常以毫秒ms或秒s为单位表示这个指标对于需要快速响应或有严格延迟约束的实时应用至关重要。将推理时间归一化得到每秒词元数它指的是语言模型在一秒内可以处理读取、分析、生成等的词元数量。这是一个关键的性能指标反映了模型的速度和效率。在快速推理时间/每秒词元数和高泛化能力之间取得平衡是开发高效大语言模型的关键重点。 内存占用 内存占用指的是在推理或训练期间加载和运行模型所需的随机存取内存RAM量。这个指标对于理解模型的操作需求至关重要特别是在边缘设备或内存容量有限的服务器等资源受限的环境中。以MB或GB为单位表示内存占用不仅包括模型参数还包括其他运行时必需品如中间变量和数据结构。较大的内存占用可能会限制模型的可部署性可能需要诸如模型剪枝或量化等优化技术来减少它。 碳排放 碳排放在大型模型的评估中越来越重要反映了训练和运行这些模型对环境的影响。这个指标通常以模型生命周期从训练到推理中排放的二氧化碳当量千克或吨数来衡量。碳足迹受多种因素影响包括所用硬件的能源效率、电力来源以及模型训练和运行的持续时间。高碳排放不仅对环境有影响还可能影响部署大语言模型的社会和伦理考量。因此人们越来越重视优化模型以提高能源效率从而减少其碳足迹。这通常通过硬件加速、算法改进甚至为数据中心选择更环保的能源来实现。 3 预算效率缩放定律 3.1 引言 大语言模型LLMs的性能受到多种因素的显著影响包括训练数据、模型大小、架构、计算资源以及训练方法本身。训练大语言模型需要大量资源使得传统的通过试错来优化这些因素的方法既不切实际又资源密集。因此在训练前预测大语言模型的性能不仅有益而且往往是必要的。这种预测方法有助于更有效地规划和分配资源。例如考虑一个计算资源有限的场景如何在模型大小和训练数据之间实现最佳平衡以达到最小的目标函数值提前回答这些问题可以显著提高大语言模型训练过程的效率和有效性。 最近对预测大语言模型LLMs性能的研究主要集中在理解缩放定律[126]。该定律描述了大语言模型的性能如何受到模型架构、神经模型大小、训练计算能力以及可用数据等因素的影响。缩放定律的概念源于用于预测模型泛化的统计力学方法其历史可以追溯到20世纪90年代初[10, 17, 96, 240]。在现代深度学习模型的背景下它的相关性最近得到了重新重视[9, 25, 102 - 104, 107, 126, 192, 226, 254, 266, 268]。本节将深入探讨应用于大语言模型的缩放定律的最新进展和见解突出这些模型在不同条件下的演变和性能表现。 3.2 缩放定律 文献[126]对基于Transformer的大语言模型的经验缩放定律进行了全面研究。作者观察到模型性能目标函数\(L\)主要取决于三个因素模型参数数量\(N\)、数据集大小\(D\)以及训练的计算预算。他们证明了模型性能以目标函数\(L\)衡量与这些因素之间存在幂律关系。例如他们发现性能与数据集大小之间183, 186, 349]ii结合硬件协同设计的IO感知注意力计算[58, 60, 63, 97, 98, 108]。这两种方法都能减少硬件加载时间以实现高效的注意力计算。 快速注意力计算 在快速注意力领域研究人员正在开发创新策略来提高效率。一个主要关注点是注意力分解其目的是减少在某些情况下通常不必要的注意力计算。当处理冗长的顺序输入时这种技术特别有用因为直接的成对注意力计算在计算上会变得非常密集。通过采用注意力分解计算需求可以显著降低将二维计算转换为更易于管理的一维格式[8, 50, 183, 319]。此外这些分解注意力方法旨在辨别并强调相邻位置令牌之间的注意力差异以及它们随时间的变化。这种细致入微的方法确保计算资源集中在数据中最具影响力的元素上。另一种创新方法涉及使用基于频率的技术如快速傅里叶变换FFT和哈希表示。这些技术以一种与硬件能力相匹配的方式对注意力进行建模使其在实际应用中更高效[62, 261, 350]。它们过滤掉接近零的注意力并将计算精力集中在最终计算中最重要的部分。这种选择性注意力确保资源不会浪费在处理相对不重要的数据上进一步优化了模型的整体效率。除了直接计算成对注意力一些方法[59, 68, 80, 169]探索了在块级别计算注意力的可能性这使得计算可以并行化显著提高了效率。例如Monarch框架[59]及其高级版本Monarch MixerM2[80]采用了一种新颖的策略。它们通过将密集注意力矩阵分解为置换矩阵和块对角矩阵的组合来使其稀疏化。这种分解允许更高效地处理注意力计算。此外块级自注意力BST方法[169, 171]为自注意力和前馈网络引入了块级计算。这种技术旨在降低传统注意力机制通常带来的内存需求。而且像LongNet[68]这样的一些方法用扩张注意力代替了原始的密集注意力使得能够处理更长的令牌序列从而扩展了大语言模型的能力。 与硬件相关的高效注意力 除了在软件层面设计更高效的注意力机制目前的一个重要关注点已转向在硬件层面优化这些机制。该领域的一个主要挑战是如何有效地利用GPU上的计算资源如高带宽内存HBM和静态随机存取内存SRAM。在这方面最近出现了像FlashAttention[60]及其后继者FlashAttention - 2[58]等进展。FlashAttention从以I/O为中心的角度重新考虑注意力计算。它最小化了HBM和SRAM之间的数据传输解决了GPU处理中的一个关键瓶颈。这种方法将块级softmax值计算和更新与统计信息集成在一起。这种集成消除了传统上在确定所有注意力值之后才计算softmax函数的要求。在FlashAttention[60]的基础上FlashAttention - 2[58]进一步优化了工作分区并减少了非矩阵乘法利用了GPU对矩阵运算的优化。这些算法是根据硬件考虑而定制的能够在GPU机器上加速模型。基于FlashAttentionFlashDecoding[63]和FlashDecoding[108]将键/值分割成更小的块以便对部分注意力进行并行化而FlashDecoding[108]进一步引入了具有统一最大值的异步softmax和具有双缓冲的扁平通用矩阵乘法GEMM优化以及适应硬件资源的启发式数据流以进一步提高速度。 在提升大语言模型LLM系统的探索中一些研究人员从当前硬件架构中获得了创造性灵感。一个显著的例子是PagedAttention[147]它采用了操作系统中常用的虚拟内存和分页技术以克服大语言模型中的内存限制。PagedAttention通过模拟虚拟内存系统引入了一种创新的内存管理方法。它将与请求相关的键值KV缓存分割成块而不是依赖于预先分配的连续内存。这种方法显著减少了内存碎片化这是传统大语言模型内存分配策略中常见的问题。结果它使大语言模型能够在有限的内存资源约束下处理更长的序列。 5.3 高效位置编码 由于大语言模型可能需要处理长序列作为输入标准Transformer[275]中使用的绝对位置编码APE无法满足这一要求。为了提高架构的效率研究人员正在探索新的位置编码PE方法这些方法可以通过相对位置[47, 48, 162, 212]或旋转位置编码[206, 256]来适应更长的序列。他们还在通过随机位置编码[229]甚至省略位置编码[129]来寻求更具通用性的解决方案。在本节中我们将讨论其中一些最新进展。 基于加法的相对位置编码 相对位置编码方法利用两个令牌之间的相对位置而不是单个令牌的绝对位置。其中一些方法对相对位置进行编码并将编码后的位置添加到后续的注意力中这被称为基于加法的相对位置编码方法。T5[217]、TISA[288]和FIRE[162]是这种范式的代表。在这些模型中位置嵌入应用于自注意力机制中查询和键元素之间的交互这与早期关注单个令牌的绝对位置有所不同。T5[217]中的相对位置编码使用查找表将相对位置差异转换为标量偏差值并对所有分布外OOD序列长度使用相同的嵌入。TISA[288]结合了一个可训练的高斯核专注于令牌之间的位置差异。另一方面FIRE[162]通过将令牌之间的索引差除以两个索引中较小的一个使用归一化位置索引进行渐进插值。与APE相比相对位置编码RPE提供了一种更有效的方式来建模令牌之间的相对距离。这不仅增强了模型对令牌关系的理解还便于长度外推这是在语言处理中处理各种复杂序列的关键特征。 带有衰减函数的相对位置编码 另一个趋势是采用使用衰减函数的可训练相对位置编码RPE。以ALiBi[212]、KERPLE[47]和Sandwich[48]等模型为代表这种方法旨在使模型的注意力主要集中在相邻令牌上。这些方法中衰减函数的使用确保了随着令牌之间距离的增加注意力会逐渐减弱。ALiBi引入了一个线性衰减函数来建模令牌之间的关系对于捕捉随着距离增加令牌相关性的减弱特别有效。KERPLE[47]使用两种条件正定CPD核的变体对数变体和幂变体。这些复杂的核在RPE计算过程中衰减两个令牌之间的连接以自适应地建模远处令牌关系重要性的降低。同时Sandwich[48]采用一系列余弦函数来表示令牌之间的差异。Sandwich利用余弦函数的周期性来捕捉令牌关系中的循环模式。通过减弱远处位置之间的注意力这些方法确保模型的注意力集中在更直接和上下文相关的令牌上而不是远离的令牌。 旋转位置编码 除了基于加法的相对位置编码将编码后的位置添加到注意力计算中还有一些RPE方法利用旋转矩阵进行位置嵌入[34, 206, 256]。RoPE[256]引入了两个旋转矩阵来旋转查询和键向量。旋转角度与它们的绝对位置成比例然后被集成到点积注意力机制中。这种方式使RoPE能够基于令牌之间的相对距离生成注意力而不是直接计算它们的相对差异。然而RoPE在推广到超出其训练长度的序列时存在局限性。在RoPE的基础上PI[34]通过位置插值PI扩展了其能力。在对适量数据进行微调后PI显示出处理非常长的上下文窗口的良好能力解决了RoPE的主要局限性之一。YaRN[206]通过引入NTK感知插值和动态NTK插值进一步推进了这一领域。这种方法有效地解决了在有限数据集上进行微调或不进行微调的场景中高频信息丢失的问题。YaRN的方法显著提高了模型在无需大量微调的情况下扩展上下文大小的能力。这些方法的共同特点是在查询和键向量中使用旋转矩阵这一技术在Transformer模型中建立更有效的RPE方面已显示出有前景的结果。 其他位置编码 除了相对位置编码RPE方法随机位置编码Randomized PE[229]和无位置编码NoPE[129]提出了不依赖于对输入查询中令牌连续位置进行建模的方法。有趣的是它们认为通过包含超出训练分布长度的位置或完全放弃位置编码模型可以处理具有更长令牌长度的分布外情况并在下游任务中表现出更强的泛化能力。随机位置编码[229]使用一个大于训练期间遇到的最长序列的数字。它从一系列整数中随机采样排序后将其用作索引。这种方法使模型在推理时能够泛化到更长的序列尽管它需要预先知道最大令牌长度。另一方面无位置编码在自注意力机制中完全放弃了位置编码器。它表明模型的自注意力可以固有地学习句子中令牌之间的RPE。这种省略不仅简化了模型架构而且在泛化方面显示出有前景的结果特别是对于查询超出训练分布的句子。 5.4 稀疏建模 在优化Transformer以提高效率的探索中另一个关键研究领域是在这些基于注意力的架构中集成稀疏建模。这种方法对于降低计算需求至关重要特别是在具有大量参数的模型中。稀疏建模出现了两个主要方向专家混合MoE[43, 72, 153, 193, 219, 244, 352]和Sparsefinder[272]它们采用了不同的方式。 专家混合MoE方法[43, 44, 72, 78, 248, 313]在模型中纳入多个分支或“专家”每个专家专门处理不同的子任务。在推理时仅激活这些路径的一个子集在保持计算效率的同时有可能提高性能。这种设计使像GLaM这样的模型能够显著扩展尽管总共有超过1.2万亿个参数但在推理时仅激活990亿个参数。MoE的进一步发展如稀疏MoE[43]解决了表示崩溃等问题确保专家更均衡地被激活并实现高效的信息处理。 另一方面Sparsefinder[272]采取了不同的方法专注于揭示注意力机制本身的稀疏性。该方法通过注意力方案识别关键模式这有助于有效地将计算资源分配到模型中最具影响力的区域。 5.5 无注意力 标准注意力机制[275]的一个显著缺点是注意力计算的二次复杂度这使得它在处理长序列时特别低效。尽管高效/稀疏注意力提供了一些缓解但它的最坏情况理论复杂度仍然不变。为了解决这个问题已经提出了各种无注意力方法提供了避免计算二次注意力矩阵的替代方案[61, 91, 204, 210, 260, 324]。这些方法大致可以分为两类一类是用循环计算代替注意力机制[204, 260, 324]另一类是对状态空间表示进行离散化[89 - 91, 95, 187, 253]。 值得注意的是像RWKV[204]、H3[61]、Hyena[210]、RetNet[260]和Mamba[89]这些新方法实现了与标准Transformer相当的性能。RWKV[204]利用循环神经网络RNNs简化序列处理从而降低处理长序列的复杂度。H3[61]基于状态空间模型SSMs为数据表示和处理提供了一种高效的替代方案。Hyena[210]作为传统注意力机制的直接替代品简化了Transformer架构。RetNet[260]引入了多尺度保留模块与前馈网络模块相结合增强了并行性和递归性在训练和推理阶段都显著提高了效率。 Mamba[89]包括基于状态空间模型的选择操作以进行压缩并通过与硬件相关的优化进一步提高效率。我们在表1中对这些方法与输入查询长度为\(n\)的标准Transformer进行了复杂度分析。它概述了每种方法的复杂度扩展情况为无注意力技术的进展提供了见解。 表1. 当输入长度为n的序列时Transformer与无注意力方法在推理评估中的时间和内存成本比较。性能栏中“”号越多表示模型在域内验证集和其他域外语料库上的困惑度表现越好。 6 训练和微调效率 6.1 引言 大语言模型训练和微调技术的发展必须应对数据和模型规模不断增长带来的挑战。本节深入探讨对大语言模型的可扩展训练和微调至关重要的效率方面突出关键关注领域。 内存效率大型Transformer模型中参数数量的快速增长大约每两年增长410倍这带来了巨大的内存挑战。这种增长速度超过了GPU内存的扩展速度同期GPU内存仅从16GB增加到80GB增长了5倍。训练期间的实际内存消耗远远超过了原始参数数量包括模型状态参数、梯度、优化器状态以及中间状态中间激活、临时缓冲区、内存碎片。鉴于这些限制单GPU设置不足以处理整个模型因此需要像张量并行TP和流水线并行PP这样的分布式训练方法来进行有效的内存管理。 计算效率虽然分布式训练在加速大型模型的训练方面具有潜在优势但它也引入了影响可扩展性的复杂性。一个显著的观察结果是与单GPU设置相比在多个GPU上进行训练时每个GPU的FLOPs会下降。这种下降源于有效利用越来越多计算资源的挑战。因此在训练过程中特别是在多GPU设置下可扩展性成为提高计算效率的关键因素。 通信效率这方面涉及训练期间不同设备或层之间参数和梯度的交换。在数据并行训练中像全规约all - reduce这样的技术用于在反向传播结束时同步所有设备上的梯度。目标是在广播、规约、全规约和全收集等集体操作中最小化通信数据量。 简而言之训练和微调大语言模型是一项复杂的挑战需要全面的方法。一种综合考虑所有这些效率方面的策略对于大语言模型的有效和可扩展训练及微调至关重要。后续部分将详细探讨这些方面。 6.2 可扩展训练 稳定训练策略 在大语言模型的预训练过程中确保训练稳定性是效率的关键方面。训练不稳定通常表现为梯度消失或梯度爆炸这会严重阻碍训练过程。为了减轻这些问题仔细选择和调整超参数至关重要。一种有效的方法是对批量大小进行策略性调整。例如像PaLM[53]这样的模型在训练过程中会将批量大小从100万个令牌逐渐增加到400万个令牌。这种逐渐扩展有助于模型在不影响稳定性的情况下适应处理更大数据量的能力。另一个关键超参数是学习率通常采用热身余弦调度器。该调度器在训练的早期阶段通常是总训练步骤的0.1%到0.5%逐渐增加学习率然后实施余弦衰减策略。这种方法将学习率逐渐降低到其峰值的10%左右确保在训练过程中平衡快速学习和稳定性。优化器的选择在稳定大语言模型的训练中也起着关键作用。像Adam[135]和AdamW[179]这样的优化器由于其利用过去梯度信息加速收敛的动量特性是GPT - 3[23]和OPT[331]等模型的常用选择。此外以GPU内存效率著称的Adafactor[245]优化器被用于PaLM和T5[217]等模型。除了超参数调整实施像权重衰减和梯度裁剪这样的稳定策略以防止梯度爆炸也很常见。然而即使采用了这些措施训练损失仍可能出现尖峰这通常受到当前模型状态和正在处理的数据的影响。为了解决这个问题像PaLM和OPT这样的模型在检测到损失尖峰时会采用从先前检查点重新开始训练的策略有效地跳过引发不稳定性的数据。这种方法不仅确保了训练的稳定性还通过避免长时间的无效训练提高了计算资源的使用效率。 混合精度训练 在大语言模型预训练领域混合精度训练成为提高内存和计算效率的关键策略。传统上神经网络训练涉及以全精度FP32格式存储权重、梯度和激活值。然而对于极其庞大的模型这种方法可能资源消耗巨大。为了解决这个问题采用了像FP16或INT8这样的低精度格式。这些格式不仅减少了内存使用还加快了模型内部的通信过程。此外现代GPU通常比处理FP32更擅长处理FP16计算这进一步提高了计算速度。 尽管有这些优点但直接从FP32转换到FP16有时会由于FP16固有的溢出或下溢等问题导致性能下降[116, 342]。为了克服这些挑战开发了自动混合精度AMP[188]方法。AMP在以FP32格式维护权重的主副本的同时在前向和反向传递中使用FP16进行计算。计算完成后将权重转换回FP32以更新主权重。这种方法结合了损失缩放技术以保留小梯度值使得AMP能够在无需大量超参数调整的情况下达到与FP32训练相当的精度。精度降低的进一步进展导致了脑浮点BF16[125]的引入这是一种新颖的半精度格式。BF16通过比FP16分配更多的位给指数部分、更少的位给尾数部分以覆盖与FP32相同的范围。与FP16下的混合精度相比BF16已展现出最先进的性能和更高的可靠性。 另一种创新方法是激活压缩训练ACT[32]它专注于将多个任务中的激活值平均压缩到2位。ACT在反向传播过程中使用压缩后的激活值计算梯度这显著减少了激活值的内存需求。这种压缩使得训练时的批量大小可比传统方法大6.6到14倍。总体而言混合精度训练体现了大语言模型训练领域的不断发展通过创新技术持续平衡效率和性能。 基于并行性的技术 大语言模型训练中的并行性是一种将计算负载分布到多个加速器如GPU或TPU上的策略。这种方法对于管理大语言模型训练所需的大量数据和复杂计算至关重要有助于开发更先进、能力更强的模型。在本节中将讨论各种并行训练模式。 数据并行DP数据并行[76, 160, 163, 300]是一种简单而有效的分布式训练形式。在这种方法中数据集被划分为较小的子集然后在多个加速器上并行处理。模型在这些设备上进行复制每个副本在各自的子集上独立执行前向和反向计算。DP的一个关键方面是在每个训练步骤结束时同步梯度。每个设备上计算的梯度被平均得到代表整个批次的梯度。这个过程确保了尽管是并行处理但模型在所有数据子集上的学习是一致的。DP尤其以其最大化GPU利用率的能力而闻名。然而它需要高带宽互连来有效处理设备之间的通信需求。通过利用DP训练大规模大语言模型变得更加可行能够实现更快的开发周期并探索更复杂的模型架构。  模型并行MP模型并行是DP的替代方法侧重于将模型本身分布到多个加速器上。这种方法对于处理参数数量多、规模大的模型特别有用尤其是当单个GPU无法存储整个模型时。模型并行可以进一步分为两种类型张量并行TP和流水线并行PP。  张量并行TP[243, 250, 303]是一种层内模型并行形式。它涉及将单个层的张量划分到多个加速器上允许训练比单个GPU内存容量更大的模型。Megatron - LM[250]是这种方法的一个显著例子它提供了对Transformer参数如MLP层、自注意力层和输出嵌入层的不同组件进行切片的策略。这种切片可以水平或垂直进行。最初TP主要关注二维矩阵的划分但现在已经发展到包括多维划分。像Colossal - AI[20, 278, 302]这样的框架已经将TP扩展到更高维度并引入了序列并行[142, 161]来处理序列数据。虽然TP在内存使用方面效率较高但它需要高互连带宽来实现有效的层间通信。 流水线并行PP[114, 120, 133, 143, 195 - 197, 306]是一种层间模型并行形式。它涉及将模型的层以流水线配置划分到多个加速器上。每个加速器负责计算不同的层然后将其输出传递给下一个加速器就像装配线一样。这种设置允许对前向和反向传递进行顺序但并发的处理。当模型的一个部分处理一部分数据时其他部分可以同时处理不同的数据部分。PP的效率关键在于其保持模型所有部分都处于活动和高效状态的能力尽管这需要仔细的调度以最小化GPU的空闲时间。Gpipe[114]是最早提出的PP方案之一它将PP与小批量划分相结合。它将大型模型划分到多个GPU上并将输入小批量处理为更小的微批量。这种方法允许高效训练非常大的模型。Gpipe还使用一种称为重计算[42]的策略通过在反向传播期间重新计算激活值而不是存储它们来减少内存使用。然而由于在反向计算期间需要缓存激活值Gpipe仍然存在内存效率问题。PipeDream[99, 195]通过其一前向一后向1F1B策略进一步改进了PP方法。这种方法允许微批量在前向传递后立即进行反向传播使流水线的早期阶段能够更快地开始其反向计算。PipeDream还使用不同版本的权重进行异步梯度更新并优化流水线阶段的内存分配以实现更高效的处理。BPipe[133]引入了一种在整个流水线中平衡内存使用的技术。它利用后面阶段的空闲内存来支持前面阶段与Megatron - LM相比显著加快了像GPT - 3 96B和GPT - 3 134B这样的大型模型的训练速度提速1.25到2.17倍。TeraPipe[?]解决了训练具有长序列长度的大型模型时的挑战长序列长度可能导致更小的微批量和流水线中更多的空闲时间。在Transformer架构中一些层的计算不依赖于未来的隐藏状态。TeraPipe利用这一事实通过划分输入序列实现并行处理。它使用动态规划在令牌之间的最佳点有效地分割序列提高了并行处理的效率。 自动化并行自动化并行已成为扩展现代大语言模型的关键方法它结合了多种并行方法以实现最佳性能。像DeepSpeed[221]、Megatron - LM[250]和Colossal - AI[302]这样的系统采用了3D并行方法涉及将训练数据均匀分布到工作节点上手动划分模型并在每个流水线阶段分配层。然而这种手动编排并行类型的方式很复杂并且不容易适应不同的模型和计算环境。 为了简化这个过程正在开发自动化并行化解决方案。这些解决方案旨在加快模型部署并确保对不同模型的适应性。随着模型和计算集群的增长并行配置的复杂性也在增加。Tofu[281]使用动态规划算法来优化数据流图划分以应对这一挑战。Dapple[76]专注于通过最优划分策略最小化流水线延迟。然而由于不同并行策略之间的复杂交互这些解决方案目前仅限于将数据并行与仅一种模型并行类型相结合。Alpa[337]采取了更全面的方法将数据、模型和流水线并行组织成层次结构。它使用整数线性规划来制定模型并行计划使用动态规划来制定流水线并行计划。在训练GPT模型时Alpa与Megatron - LM等专业系统相当证明了其在处理复杂并行化挑战方面的有效性。FlexFlow[120]扩展了3D并行的概念提出了一种在不同维度样本、操作、属性、参数上划分操作输出张量的方法。计算图中的每个操作都被分配一个特定的并行配置。为了找到最佳的并行策略FlexFlow使用一个执行模拟器来预测在给定设备拓扑上运行操作符图所需的时间。然后它使用马尔可夫链蒙特卡罗采样系统地搜索最优策略同时考虑操作符图和设备拓扑。 内存优化 在训练规模不断增大的大语言模型时存储模型参数、梯度和优化状态所需的内存显著增加。在DP中这个问题尤为严重因为每个GPU传统上都存储模型参数的完整副本导致大量内存冗余。高效的内存优化策略对于在有限的硬件资源上训练更大的模型至关重要它可以平衡训练基础设施不同组件之间的内存负载。 ZeRO[220]通过在GPU之间划分内存负载来解决数据并行中的内存冗余问题。与每个GPU存储整个模型参数、梯度和优化器状态不同ZeRO将这些元素进行划分使每个GPU仅持有部分数据。其余数据可以根据需要从其他GPU检索。这种方法包括三个关键策略参数划分、梯度划分和优化器状态划分每个策略都针对模型内存需求的特定方面。在ZeRO的基础上ZeRO offload[223]扩展了这些概念允许利用CPU和GPU的能力进行训练将一些计算和存储卸载到CPU以减轻GPU的内存负担。然而这种卸载会增加CPU和GPU之间的通信如果管理不当可能会成为瓶颈。该策略将训练过程视为一个数据流图将不同的计算节点分配到不同的设备上。前向和反向过程由GPU处理而参数更新和精度转换由CPU管理。这种方法旨在最小化CPU计算并减少通信开销确保在训练过程中高效使用CPU和GPU资源。 结合这些进展像DeepSpeed[221]这样的系统提供了不同级别的内存优化。第一阶段是ZeRO - DP数据并行它仅通过在GPU之间划分优化器状态来优化内存。第二阶段是ZeRO - R归约和划分通过划分梯度和优化器状态进一步减少内存使用。第三阶段是ZeRO - Infinity它将内存优化扩展到GPU可用内存之外利用CPU和NVMe内存来支持训练极其大型的模型。 6.3 可扩展微调 在大量多样的数据集上训练的大语言模型已经展示出了卓越的通用问题解决能力。然而通过有针对性的适配它们在特定领域或任务中的性能可以显著提升。近年来出现了一系列技术来促进这一适配过程。本节将讨论两种对预训练大语言模型进行高效适配的主要方法i参数高效微调包括整合适配器层或微调预训练模型的现有参数ii通过提示工程整合任务特定上下文。这些方法是使大语言模型适应特定应用的关键策略确保它们在各种自然语言处理任务中的通用性和有效性。 参数高效微调PEFT 预训练大语言模型的巨大规模使得为下游任务或应用领域对整个模型进行全面微调既昂贵又不切实际。为了避免直接对完整的大语言模型进行微调出现了一系列参数高效的调优方法。这些方法专注于通过调整或引入少量可训练参数来优化大语言模型同时保持大部分或所有原始预训练参数不变。这些方法通常能取得不错的性能并且与全参数微调相比显著减少了可训练参数的数量。它们在内存和计算效率方面都有所提升为使大语言模型适应特定任务提供了更实际的解决方案。 部分参数微调 一种简单而有效的适配大语言模型的方法是部分参数微调即仅对预训练参数的选定部分进行微调其余部分保持不变。这种方法已得到广泛验证。例如文献[144, 150]仅对最后几层进行微调就达到了全模型微调性能的90%。Xie等人在文献[297]中根据隐藏状态的可变性选择部分层进行微调尤其适用于分类任务。此外BitFit[320]提出了一种替代策略仅调整基于Transformer的大语言模型中的偏差项也取得了有竞争力的性能。这些例子强调了部分参数微调作为一种资源高效的方式使大语言模型能够适应各种应用的潜力。然而这些方法通常缺乏指导如何选择特定参数子集进行进一步微调的详细原则。 模型 - 适配器微调 为了解决选择特定参数进行微调的问题引入了适配器微调技术该技术涉及在预训练模型中添加额外的小规模可学习模块即适配器[109]。这种方法保持了预训练模型的完整性但在预训练大语言模型的一个或多个模块中嵌入适配器块。这些适配器通常采用紧凑的瓶颈层形式例如由一个具有非线性函数和少量隐藏层神经元的两层MLP多层感知器组成。适配器可以与Transformer架构的注意力层和前馈层串联[109]或并联[209]集成也可以在Transformer架构之外集成[205]。为了进一步提高适配器的可重用性和通用性开发了AdapterHub[208]。这个框架允许动态集成预训练的适配器以适应各种任务和大语言模型。尽管使用适配器加速了微调过程并减少了存储需求但它确实通过在每个Transformer层增加深度或宽度来修改计算图。正如研究[228]中所观察到的这种修改会导致推理延迟略有增加推理速度大约慢4 - 6%。 参数 - 适配器微调 另一种相关方法是直接在模型参数中添加适配器。将预训练网络参数表示为\(\theta\)这类技术将模型参数扩展为\(\theta\Delta \theta\)其中\(\theta\)保持固定\(\Delta \theta\)通过低秩近似学习得到。diff - pruning[94]就是这种技术的一个实现它在微调过程中通过添加稀疏促进正则化来学习任务特定的稀疏参数\(\Delta \theta\)。LoRA[111]为每个线性层学习低秩变换。具体来说LoRA将权重矩阵重新参数化为\(\theta\Delta \theta ≈\thetaBA\)其中预训练权重矩阵\(\theta\)固定而低秩矩阵\(B\)和\(A\)是可学习的。在LoRA中所有权重矩阵的每个低秩子矩阵都共享一个恒定的内在秩而没有考虑不同模块之间的重要性差异。AdaLoRA[328]通过根据重要性分数动态分配参数预算给权重矩阵来解决这一限制。它为更关键的增量矩阵分配更高的秩以捕获更详细的任务特定信息同时降低不太重要矩阵的秩以避免过拟合并节省计算资源。SoRA[69]引入了一个可优化的门使用近端梯度法动态调整增量矩阵的秩。在QLoRA[66]中预训练模型首先被量化为4位。随后添加一组可学习的低秩适配器权重并通过对量化权重的反向传播梯度进行微调。QLoRA即使使用16位、8位或4位的适配器也能达到与16位全参数微调相当的性能。 数据高效微调 数据高效微调是指为下游任务更新有限的提示参数而不是对预训练的大语言模型进行微调。它通常通过提示调优来实现在提示调优中预训练模型的权重保持固定仅调整添加的提示令牌。这种方法能够更高效地使用数据并且随着模型参数规模的增加往往能带来性能的提升。 提示调优 提示调优是一种用于在有监督的下游任务中提升大语言模型性能的技术。它将下游任务构建为一个掩码语言问题并将原始token输入转换为一个模板对某些token进行掩码处理让大语言模型来完成。通过修改可调整的模板嵌入提示调优旨在通过减少预训练任务和特定下游任务之间的分布差异来提高下游任务的性能。这种方法还使大语言模型能够进行少样本甚至零样本学习在监督数据有限的场景中特别有用因为它可以生成新的提示模板。 传统方法需要手动设计提示模板和 verbalizers这往往导致效果敏感且不稳定。然而提示学习的最新进展带来了提示构建的自动化和优化。AutoPrompt[249]引入了一种基于梯度的方法来自动搜索有效的模板。LMBFF[83]通过在离散提示空间中搜索标签词并使用基于T5的模板生成方法提供了一种更高效的自动提示生成解决方案。为了解决离散优化的挑战Prefix - Tuning[165]推荐参数化提示即仅对提示进行微调而大语言模型保持不变。P - tuning[174]突破了模板必须由自然语言组成的传统限制将模板构建转化为一个连续参数优化问题。CP - tuning[304]主张使用对比学习来自动学习嵌入的分布以替代手动设计verbalizer。UPT[280]引入了提示 - 选项 - verbalizer范式促进跨多种自然语言处理任务的联合提示学习并鼓励大语言模型获取任务不变的提示知识。 7 推理效率 7.1 引言 大语言模型LLMs中庞大的参数数量给在云服务和资源受限设备上的部署带来了巨大挑战导致推理支持的维护成本高昂。因此加速推理已成为一个紧迫的问题受到了工业界和学术界的广泛关注。一种常见的方法是构建性能与完整模型相当的紧凑模型相关方法大致可分为四类剪枝、知识蒸馏、量化和低秩分解。剪枝技术旨在识别和消除深度神经网络DNNs算子中的冗余从而创建更精简的版本。知识蒸馏涉及将更大、更复杂的“教师”模型的知识转移到更小、更高效的“学生”模型中有助于在缩小模型规模的同时保持高性能。量化通过使用更少的比特表示大语言模型中的浮点数降低了计算负载和存储需求。低秩分解通过低秩矩阵近似大语言模型中的重权重矩阵进一步节省计算资源。值得注意的是其中一些方法需要专门的计算库和硬件才能实现实际的资源节省和加速。 7.2 剪枝 剪枝技术旨在识别大语言模型算子内部的冗余。现有的剪枝技术大致可分为非结构化剪枝、半结构化剪枝和结构化剪枝。 非结构化剪枝 非结构化剪枝产生细粒度的稀疏性其中零元素随机分布在可训练参数中[35, 38, 70, 71, 117, 146, 234, 242, 259, 294, 333]。这些非结构化剪枝方法表明大语言模型可以在单次剪枝中至少达到50%的稀疏度且不经过重新训练精度损失最小。同时较大的大语言模型在非结构化剪枝方式下更具可压缩性。尽管非结构化剪枝在理论上可以带来推理加速但由于稀疏操作中的连续性问题这种加速在实际中并不容易体现。加速具有高细粒度稀疏性的深度神经网络通常需要专门设计的软件和硬件支持。存在一些计算库如FSCNN[119]在足够高的非结构化稀疏度下其性能优于标准的深度神经网络运行时但在很大程度上尚未扩展到Transformer架构。  半结构化剪枝为了缓解非结构化剪枝的问题最近提出了半结构化剪枝其中以N:M稀疏性为示例[339]。N:M稀疏性介于非结构化剪枝和结构化剪枝之间即每M个连续元素中恰好包含N个非零元素。英伟达[51]推出了安培张量核心GPU架构例如A100 GPU并提出了2:4细粒度结构化稀疏性方案使得稀疏神经网络在推理时能够在该硬件上加速。该方案对允许的稀疏模式施加了约束对于每四个连续的权重数组修剪其中两个得到一个50%稀疏的网络。权重矩阵的这种规则结构使得可以有效地压缩它并通过仅对非零权重进行操作来减少内存存储和带宽需求。重要的是英伟达目前仅考虑2:4的比例其他比例尚未实现加速。 结构化剪枝 结构化剪枝会移除整个神经元、通道或其他有意义的结构从而保留剩余深度神经网络的功能使其便于高效计算[37, 41]。先前的结构化剪枝方法需要手动干预来确定移除的结构这很不方便。最近的工作如OTO[37, 39, 40]和torch - pruning[77]提出了依赖图分析来自动找出可以移除的结构。然而它们在大语言模型上的应用面临重大挑战这是由于大规模计算资源的需求以及预训练和指令微调数据集的训练数据不可用[23]。因此大语言模型上的结构化剪枝范式在很大程度上可分为有限资源或全资源下的剪枝。对于有限资源设置LLM - Pruner[181]提供了模块化的重要性得分计算器来对移除结构进行排序。重要性得分通常基于完整的梯度计算对于完整模型来说这可能是资源密集型的。随后会进行一个使用有限指令微调数据的快速训练后阶段以在一定程度上恢复丢失的知识。LoRAPrune[327]在剪枝阶段使用低秩适配器LoRA[111]来减少资源需求但与完整的大语言模型相比仍然面临显著的性能下降。为了更有效地恢复和保留知识最近在有限资源设置中提出了LoRAShear[36]。LoRAShear利用一种名为LoRA半空间投影梯度LHSPG的新型结构稀疏优化器进行渐进式结构化剪枝和知识转移。与仅使用指令微调数据的先前工作不同LoRAShear应用了多阶段知识恢复机制以有效缩小完整模型和压缩模型之间的性能差距。对于全资源设置Sheared - LLaMA[295]对原始大语言模型进行结构化剪枝创建出性能优于同等规模从头训练的大语言模型的紧凑模型。然而它需要大量的GPU算力和数据资源这对于普通用户来说可能不可行。与在结构上修剪中小规模深度神经网络相对成熟的领域相比大语言模型上的结构化剪枝仍处于早期阶段有待进一步探索。 7.3 知识蒸馏 知识蒸馏的概念是利用来自更大、能力更强的“教师”模型的监督信号来训练紧凑的“学生”模型。这种方法通常会使学生模型的性能超过类似规模但未经过这种指导训练的模型[105]。知识蒸馏大致可分为基于响应的知识蒸馏、基于特征的知识蒸馏和基于关系的知识蒸馏[88]。基于响应的知识聚焦于教师模型的最终输出层。其假设是学生模型将学习模仿教师模型的预测[14, 105]。训练有素的教师模型还在其中间层捕获数据的基于特征的知识这对于深度神经网络尤为重要[225, 318]。捕获特征图之间关系的知识也可用于训练学生模型这被称为基于关系的知识蒸馏[314]。自然语言处理领域的早期研究主要集中在特定任务模型的蒸馏上[134]。后来更多的研究转向了对预训练模型的蒸馏这些预训练模型随后可以针对特定的下游任务进行微调[123, 173, 233]。最近出现了针对大语言模型的蒸馏方法[11, 30, 46, 92, 110, 122, 159, 230, 282, 292, 325]。当前大语言模型知识蒸馏方法的一个主要关注点在于如何生成和利用具有挑战性的指令性样本[46, 122, 292]以便更有效地将知识从教师模型转移到学生模型这与第4节中的数据欠采样方法有一些重叠。思维链提示通常用于蒸馏方法[110, 159]中来完成数据生成。然而当前大语言模型的知识蒸馏方法缺乏标准化的目标函数该函数通常是特定任务的需要进行调整。此外最近采用学生生成输出来减轻训练和推理之间差异的策略导致了计算成本的大幅增加。为了解决这些挑战最近引入了DistiLLM[138]它由两个关键组件组成。i具有适度偏斜值的偏斜Kullback - LeiblerKL散度损失与其他替代方法包括广义Jensen - Shannon散度相比它提供了更稳定的梯度和更低的近似误差。ii一种自适应离策略技术旨在提高使用学生生成输出的效率和有效性。 7.4 量化 量化方法可以根据是否需要重新训练进行划分[86]。量化感知训练QAT要求对模型进行重新训练调整其权重以在量化后恢复精度[16, 131, 247, 332]。相比之下训练后量化PTQ在不进行任何重新训练的情况下实现量化[26, 164, 199, 312, 317]。虽然QAT通常能产生更高的精度但由于重新训练的成本过高并且通常无法访问原始训练数据和处理基础设施因此对于大语言模型LLMs来说往往不切实际。因此大多数关于大语言模型量化的研究都倾向于PTQ技术。 从另一个角度来看量化方法大致可分为均匀量化和非均匀量化[86]。像SPQR[67]、GPTQ[79]以及其他一些工作[115, 131]中探索的均匀量化是将权重范围划分为大小相等的区间。这种方法因其能够通过允许以量化精度而不是全精度进行算术运算来加速计算而受到欢迎。此外在大语言模型中经常观察到权重分布不均匀的情况此时均匀量化可能不是最优选择。相比之下非均匀量化为这些挑战提供了解决方案。正如在SqueezeLLM[132]中所研究的这种方法非均匀地分配量化区间提供了更大的灵活性并且在处理非均匀权重分布时可能具有更好的性能。 与结构化剪枝相比量化需要特定的硬件来实现低比特精度的实际优势以降低内存成本和加速推理。对于大语言模型由于缺乏训练数据或计算资源在高压缩比下结构化剪枝通常难以有效地恢复丢失的知识。然而量化通常可以有效地保持大语言模型的性能。因此目前量化在大语言模型压缩中更受欢迎且更为成熟。这与中小模型规模的场景形成鲜明对比在该场景中结构化剪枝和量化通常联合使用[37, 307]。 7.5 低秩分解 深度神经网络中的权重矩阵通常是低秩的这表明模型权重存在冗余[231, 341, 347]。因此一个自然的想法是将权重矩阵分解为两个或更多较小的矩阵以节省参数。在大语言模型中权重矩阵存在于包括自注意力层和MLP层的线性层以及嵌入层中。已有研究对这些权重矩阵进行分解以节省参数数量并加速推理。  线性层分解多线性注意力[182]使用块项张量BTT分解[64]来分解多头注意力。奇异值分解SVD[64]也常用并且通常分两个阶段进行。第一阶段进行分解第二阶段通过知识蒸馏对低秩权重进行微调[198]。此外作为BTT和SVD的替代方法Kronecker分解保留矩阵的秩并且在压缩BERT和GPT - 2时已显示出改进[73, 262]。  嵌入层分解ALBERT[148]对嵌入层进行分解嵌入层是模型参数的最大消耗者之一。由于Transformer的能力主要来自其上下文学习能力因此令牌嵌入层中的参数效率不高。通过分解嵌入矩阵来减少这些参数在直观上是合理的。自注意力分解嵌入SAFE[222]研究了在Transformer中通过在线性投影的基础上添加一个小的自注意力层来共享权重的方法以实现比其他方法更好的性能。LightFormer[180]更有效地利用了训练良好的Transformer的参数知识并通过对嵌入层的分解加速了模型的收敛。 8 结论 总之大语言模型LLMs的发展是通用人工智能领域的一个重要里程碑为各个领域带来了变革性的变化。然而这些模型的快速扩展在计算需求和内存要求方面带来了巨大挑战给学术研究和实际部署都设置了障碍。本综述全面概述了旨在提高大语言模型效率的算法创新涵盖了截至2023年9月的大部分研究进展。与现有通常专注于训练或模型压缩等孤立方面的综述不同本综述深入探讨了对大语言模型整体算法开发至关重要的多个效率维度。它涵盖了广泛的与效率相关的主题包括缩放定律、数据利用、架构设计以及训练、微调与推理策略。这里呈现的见解和分析旨在为该领域的研究人员和从业者提供有价值的总结。通过奠定当前知识和方法的坚实基础本文为大语言模型效率这一关键研究领域的未来突破和持续创新奠定了基础。
http://www.hkea.cn/news/14514157/

相关文章:

  • 怎样看网站建设wordpress点击阅读全文
  • 做网站应聘平台网站关键字 优帮云
  • seo网站管理招聘专业网站建设广州
  • 网站代码制作软件电脑制作ppt的软件
  • 网站手机端页面怎么做的怎么创网站赚钱吗
  • 做电子请帖网站有哪些网站开发步奏
  • 如何做高大上的网站 知乎网站版权备案
  • 学工网站建设店面设计与装修
  • 网站没备案能百度推广吗a站是哪个app
  • 网站后台代码添加图片网站开发如何报价单
  • 著名建站公司很有设计感的企业网站
  • 彩票网站建设策划书企业网站管理系统论文
  • 电子商务网站建设百度文库开封市建设中专网站
  • 网站建设期间怎么关闭网站宣讲网站建设
  • 兰州市城乡建设局网站官网wordpress采集淘宝 插件
  • 网站分析报告范文上海今天新闻头条新闻
  • 请人做网站需要注意什么找个专门做各种外卖的网站
  • 新手站长如何购买虚拟主机做网站企业网站制作正规公司
  • 唐山公司网站制作推广优化seo
  • 星巴克网站建设ppt杭州优化公司在线留言
  • 本地网站源码中级平面设计师证书有用吗
  • 微网站有哪些卧龙区2015网站建设价格
  • 仿造别人的网站侵权吗百度公司电话是多少
  • 租空间做网站需要多少钱网址打不开怎么解决
  • 沈阳建站模板系统郑州比较好的外贸公司
  • 安防公司做网站图片网站开发硬件
  • 站长之家html商城类网站建设
  • 绵阳市 网站建设淄博百度网页设计
  • 网站开发语言入门高新网页设计报价
  • 静态网站开发工具有哪些wordpress地址 站点地址