英特尔实验室最新成果:LLaMA-NAS — — 大型语言模型的高效神经架构搜索 精华
随着模型规模的不断扩大,其对计算资源的需求也水涨船高。高昂的内存和计算成本不仅限制了LLMs在高性能计算平台之外的应用,也增加了研究和开发的门槛,这对于资源有限的研究机构和企业尤其成问题。在这样的背景下,减小LLMs的大小和计算复杂度显得尤为重要。这可以使LLMs在更广泛的硬件平台上得到应用,包括那些价格更便宜、更易获得的设备,从而推动AI技术的普及和应用。优化模型的计算效率对于环境的可持续性也至关重要,因为计算资源的消耗直接关联到能源使用和碳排放。
来自于自英特尔公司的英特尔实验室(Intel Labs)的研究团队提出了一种有效的方法,他们找到基于LLaMA2-7B的Pareto最优网络架构,使用一次性神经架构搜索(NAS)。他们通过一次性微调LLaMA2-7B,然后应用基于遗传算法的搜索来找到更小、计算复杂度更低的网络架构。研究表明,对于某些标准基准任务,预训练的LLaMA2-7B网络过于庞大和复杂。具体来说,他们展示了在几乎不影响准确度的情况下,模型大小减少了1.5倍,吞吐量速度提高了1.3倍。此外,他们的方法比某些剪枝或稀疏化技术更有效、更高效。最后他们展示了量化技术是如何补充他们的方法的,以及使用量化技术可以进一步减少他们找到的网络的大小和复杂度。他们相信,他们的工作提供了一种自动创建可以在更便宜、更容易获得的硬件平台上使用的大型语言模型(LLMs)的方法。
英特尔实验室的研究动机正是基于优化模型的计算效率的需求,通过高效的神经架构搜索(NAS),LLaMA-NAS旨在找到Pareto最优的网络架构,这些架构在保持模型性能的同时,能显著减小模型的大小和计算需求。这不仅为LLMs的广泛部署铺平了道路,也为AI技术的绿色发展提供了可能。
英特尔公司的英特尔实验室(Intel Labs)是一个致力于前沿科技研究的部门。英特尔实验室以其在计算机科学和工程领域的深厚背景而闻名,其研究成果频频推动着整个行业的进步。在LLaMA-NAS的研究中,研究团队凭借其在深度学习、神经网络优化和硬件加速等方面的专业知识,提出了这一创新的解决方案,展现了英特尔在人工智能领域的深厚实力和远见卓识。
1.方法
LLaMA-NAS(Large Language Model Architecture Neural Architecture Search)是一种针对大型语言模型(LLMs)的高效神经架构搜索方法。这项工作的方法论基于InstaTune方法,这是一种新颖的一次性NAS范例。InstaTune通过使模型的架构变得灵活,扩展了传统微调过程,允许探索超越固定结构的更广泛设计空间。这种灵活性使得能够适应不同的任务、数据集和计算资源。InstaTune通过利用现有的模型权重,避免了从头开始训练超级网络的需要。通过将NAS过程嵌入到微调阶段,InstaTune节省了计算资源,同时确保衍生的子网络特别针对目标任务进行了优化,而不是预训练目标。
图1:应用我们的方法搜索模型大小的最优子网络架构后的Pareto前沿/ARC-c精度(左)和模型大小/ARC-e精度(右)目标空间。红点表示[1]中预先训练的LLaMA2-7B网络的模型大小和精度。
一次性神经架构搜索(NAS)
大型语言模型(LLMs)在自然语言处理等领域取得了巨大的成功。然而这些模型的高内存和计算成本限制了它们在许多硬件平台上的应用。传统的模型压缩方法,如剪枝、稀疏化和量化,虽然在一定程度上可以减小模型的大小,但对于LLMs来说并不一定有效。因此,我们需要一种更高效的方法来优化LLMs的网络架构,以适应不同硬件平台的需求。
LLaMA-NAS(Large Language Model Architecture Neural Architecture Search)的目标是找到Pareto最优的子网络架构,以减小LLMs的大小和计算复杂度,同时保持模型性能。通过一次性神经架构搜索(NAS),LLaMA-NAS旨在在性能和资源消耗之间找到一个平衡点,使LLMs能够更广泛地部署,并在更多应用场景中发挥作用。
方法步骤
LLaMA-NAS方法的核心思想是一次性神经架构搜索(NAS),旨在找到Pareto最优的子网络架构,以减小大型语言模型(LLMs)的大小和计算复杂度,同时保持模型性能。
图2:应用我们的方法搜索MMLU任务的最优子网络后的Pareto前沿。左Pareto前沿在模型大小/MMLU精度目标空间中,而右Pareto前沿则在吞吐量中/MMLU精度目标空间。使用单个NVIDIA TitanV GPU评估吞吐量,红点表示[1]中预训练的LLaMA2-7B网络的模型大小和精度。
预训练模型微调:使用预训练的LLaMA2-7B模型作为初始模型。通过微调(如InstaTune)对模型进行优化,以适应特定任务。微调的目标是在保持模型性能的同时,调整模型的参数,使其更适合特定任务。
遗传算法搜索:基于遗传算法进行神经架构搜索。在模型大小和准确度的目标空间中,搜索Pareto最优的子网络架构。通过遗传算法的迭代优化,找到更小、计算复杂度更低的网络架构。
子网络评估:对搜索到的子网络进行评估,包括准确度、模型大小和计算速度等指标。确定哪些子网络在Pareto前沿上,即在性能和大小之间具有优势。
结果分析:展示搜索到的Pareto最优子网络架构。比较这些子网络与预训练的LLaMA2-7B网络的性能。
通过LLaMA-NAS,我们可以找到适用于更便宜、更易获得的硬件平台的高效LLMs网络架构,从而推动人工智能技术的普及和可持续发展。
2.结果
LLaMA-NAS方法通过一次性神经架构搜索(NAS)找到了Pareto最优的子网络架构,这些架构在保持模型性能的同时,显著减小了模型的大小和计算需求。
Pareto最优子网络架构
LLaMA-NAS方法通过遗传算法搜索成功地找到了多个Pareto最优的子网络架构。这些子网络架构在准确度和大小方面都展现出显著的优势,与预训练的LLaMA2-7B网络相比,它们实现了性能和资源消耗之间的理想平衡。
图3:将我们的工作应用于模型大小/TruthfulQA MC1精度目标空间中的Alpaca微调LLaMA2-7B后的Pareto前沿。红点表示使用来自的权重预训练的LLaMA2-7B网络https://huggingface.co/meta-llama/Llama-2-7b.
利用遗传算法,LLaMA-NAS在模型大小和准确度的目标空间中进行搜索,以找到最优的子网络架构。通过遗传算法的迭代过程,不断优化子网络的结构,以达到更小的模型大小和更低的计算复杂度,同时保持或提升模型的准确度。
相对于预训练的LLaMA2-7B网络,LLaMA-NAS找到的子网络在不牺牲准确度的前提下,显著减小了模型的大小。这些子网络在保持性能的同时,提高了计算速度,使得模型在实际应用中更加高效。
子网络优势分析
在多个标准基准任务中,LLaMA-NAS方法找到的子网络相对于预训练的LLaMA2-7B网络展现出以下优势,子网络在保持准确度的同时,显著减小了模型的大小,这对于在内存受限的设备上部署模型尤为重要。子网络提高了计算速度,这对于需要快速响应的应用场景,如实时语言翻译或在线客户服务,具有重要意义。
图4:将我们的工作应用于模型大小/WinoGrande精度目标空间中的Alpaca微调LLaMA2-7B后的Pareto前沿。红点表示[1]中预先训练的LLaMA2-7B网络的模型大小和精度。
例如,在TruthfulQA任务中,LLaMA-NAS找到的一个子网络相对于预训练的LLaMA2-7B网络,在准确度上提高了3.6%,同时模型大小减小了1.6倍。这一结果不仅证明了LLaMA-NAS在优化网络架构方面的有效性,也展示了其在实际应用中的潜力。
图5:在模型大小/精度目标空间中将INT8量化应用于Alpaca微调LLaMA2-7B之前和之后的Pareto前沿。蓝线是量化的(INT8)Pareto前沿,而绿线是原始的非量化的(FP16)Pareto前部,也如图1至图4所示。红点表示[1]中预训练的非量化LLaMA2-7B网络的模型大小和精度。
LLaMA-NAS方法为大型语言模型的高效神经架构搜索提供了一种新途径,使其适用于更广泛的硬件平台,并在性能和资源消耗之间取得了平衡。
3.量化效果分析
LLaMA-NAS方法不仅关注于找到Pareto最优的子网络架构,还考虑了这些架构在实际部署中的计算效率。在这一部分,我们将讨论应用固定点(INT8)量化对子网络性能的影响。
量化方法
量化是一个简单的过程,可以使用现有的多种技术来实现。研究团队使用固定点(INT8)量化来进一步提高Pareto最优子网络的性能。量化后,这些子网络在模型大小和准确度的目标空间中被重新评估。所有解码层中的线性操作都被量化为INT8,而其余层(例如嵌入层)保持在FP16。量化对准确度的影响很小,但在减小模型大小方面提供了很大的好处。例如,一个未量化的子网络在MMLU任务中的准确度比预训练的LLaMA2-7B网络高1.1%,模型大小减少了1.5倍,量化后保持了准确度,但现在变得更小,减少了2.5倍。
INT8(8位整数)量化是一种常见的模型压缩技术,用于减小模型的内存占用和计算需求。在INT8量化中,模型的权重和激活值被量化为8位整数,从而减小了存储和计算开销。
图6:在搜索过程中选择的网络对于每个任务具有层计数l∈{24,28,32}的概率。概率适用于精度在上60(左)、40(中)和20(右)百分位数的子网络。
量化效果
模型大小减小:应用INT8量化后,子网络的模型大小显著减小。这对于在资源受限的设备上部署LLMs至关重要。
计算速度提高:INT8量化可以加速模型的推理速度,因为8位整数的计算更高效。这对于实时应用和大规模部署非常有益。
准确度影响:虽然量化通常会对模型的准确度产生一定影响,但在LLaMA-NAS中,我们注意到量化对准确度的影响很小。例如,在某些子网络中,即使应用了INT8量化,准确度仍然保持不变或仅有微小变化。
通过应用INT8量化,LLaMA-NAS找到的Pareto最优子网络在保持性能的同时,显著减小了模型的大小和计算需求。这为LLMs在更广泛的硬件平台上的部署提供了可能,同时也为环境的可持续性做出了贡献。
4.网络架构特征分析
LLaMA-NAS方法不仅关注于找到Pareto最优的子网络架构,还深入研究了这些架构的特征。在这一部分,我们将分析子网络的层数和中间大小的概率分布,并探讨不同任务对网络架构特征的敏感性。
层数分析
在大多数情况下,更深的网络层数会导致更高的准确度。这是因为更多的层可以增加模型的学习能力和表达能力。然而,LLaMA-NAS的研究发现,在某些任务中,如ARC-c、MMLU和TruthfulQA,增加层数并不总是导致更好的性能。这表明预训练的LLaMA2-7B模型对这些任务来说可能过于复杂,有过度参数化的倾向。
不同任务对网络层数的选择显示出不同的敏感性。例如,TruthfulQA任务倾向于选择较少层数的网络,只选择了24层的网络,这可能是因为该任务不需要过于复杂的模型来处理。相比之下,WinoGrande任务则更倾向于选择32层的网络,这可能反映了该任务需要更复杂的模型来捕捉更细微的语言特征。
图7:在Alpaca微调LLaMA2-7B的模型大小/ARC-c精度空间中进行子网络搜索后,不同中间大小的概率。概率是针对32层子网络的,精度在上20(左)、15(中)和10(右)百分位数。
中间大小分析
LLaMA-NAS的研究还发现,在某些子网络中,特定层的中间大小对准确度有显著影响。例如,在处理ARC-c任务时,选择5504的中间大小而不是11008,可以在某些层上实现与预训练的LLaMA2-7B网络相当的准确度。这表明通过精细调整网络的中间层大小,可以在不牺牲性能的情况下减小模型的复杂度。
图8:在Alpaca微调LLaMA2-7B的模型大小/MMLU精度空间中进行子网络搜索后,不同中间大小的概率。概率适用于精度在上20(左)、15(中)和10(右)百分位数的24层子网络。
不同任务对中间大小的选择也表现出明显的差异。在MMLU任务中,早期层(1-16层)更倾向于选择11008的中间大小,而后期层(18-24层)则更倾向于选择5504的中间大小。这可能是因为早期层需要更大的容量来捕捉基本的语言特征,而后期层则需要更小的容量来进行特定任务的细节处理。
图9:在Alpaca微调LLaMA2-7B的模型大小/WinoGrande精度空间中进行子网络搜索后,不同中间大小的概率。概率是针对32层子网络的,精度在上20(左)、15(中)和10(右)百分位数。
LLaMA-NAS的网络架构特征分析揭示了不同任务对网络设计的需求差异,为更好地优化LLMs提供了指导。这种分析有助于我们理解如何根据特定任务的需求来调整网络架构,以实现最佳的性能和效率平衡。
总结
LLaMA-NAS的研究为大型语言模型(LLMs)的神经架构搜索(NAS)领域带来了革命性的进步。通过一次性NAS,LLaMA-NAS成功地在模型性能和计算资源之间找到了一个平衡点,这对于推动LLMs在更广泛的应用场景中的部署具有重要意义。
LLaMA-NAS通过减小模型大小和计算复杂度,使LLMs能够在资源受限的设备上运行,这对于在边缘计算环境中部署AI模型尤为关键。尽管模型变得更加轻量,但LLaMA-NAS找到的子网络仍能保持高准确度,确保了模型的实用性和可靠性。由于模型的计算需求降低,LLaMA-NAS促进了LLMs的快速部署,特别是在需要实时处理的应用中。
应用前景
LLaMA-NAS使得LLMs能够在各种硬件平台上运行,包括那些价格更便宜、更易获得的设备,从而扩大了LLMs的潜在用户群体。通过减少计算资源的需求,LLaMA-NAS为环境可持续性做出了贡献,减少了能源消耗和碳足迹。LLaMA-NAS为在新兴市场和应用中部署LLMs提供了可能性,包括移动设备、物联网(IoT)和远程地区的应用。
潜在价值
LLaMA-NAS降低了部署LLMs的成本,使得中小企业和低资源环境也能够利用先进的NLP技术。通过使LLMs适用于更广泛的硬件平台,LLaMA-NAS有助于人工智能技术的普及和教育。LLaMA-NAS的方法为未来的研究提供了新的方向,鼓励开发更高效、更智能的NAS算法。
LLaMA-NAS的研究不仅在技术层面取得了突破,更在实际应用和社会影响方面展现了巨大的潜力。随着人工智能技术的不断进步,LLaMA-NAS及其后续研究将继续推动LLMs向着更高效、更可持续、更普及的方向发展。
参考资料:https://arxiv.org/abs/2405.18377
本文转载自 大噬元兽,作者: FlerkenS