EDGE-LLM: Enabling Efficient Large Language Model Adaptation on Edge Devices via Layerwise Unified
受第2.3节中所发现的机会的启发,我们接下来介绍所提出的Edge-LLM框架的算法设计,以在有限的计算和内存开销下,实现有效且高效的大语言模型适配。如图2所示,我们提出的Edge-LLM微调算法整合了两个关键促成因素,每个因素都利用了上述减少计算和内存开销的机会之一。具体来说:(1)为了降低计算开销,我们提出了分层统一压缩(LUC)技术,以减少目标大语言模型的冗余。这项技术的灵感来源于我们对大语言
此为机器翻译,仅做个人学习使用
(2024-06-22) EDGE-LLM: Enabling Efficient Large Language Model Adaptation on Edge Devices via Layerwise Unified Compression and Adaptive Layer Tuning and Voting (EDGE-LLM:通过逐层统一压缩和自适应层调优和投票,在边缘设备上实现高效的大型语言模型适应)
| 作者: Zhongzhi Yu; Zheng Wang; Yuhan Li; Haoran You; Ruijie Gao; Xiaoya Zhou; Sreenidhi Reedy Bommu; Yang Katie Zhao; Yingyan Celine Lin; |
| 期刊: (发表日期: 2024-06-22) |
| 期刊分区: |
| 本地链接: Yu 等 - 2024 - EDGE-LLM Enabling Efficient Large Language Model Adaptation on Edge Devices via Layerwise Unified C.pdf |
| DOI: 10.48550/arXiv.2406.15758 |
| 摘要: Efficient adaption of large language models (LLMs) on edge devices is essential for applications requiring continuous and privacy-preserving adaptation and inference. However, existing tuning techniques fall short because of the high computation and memory overheads. To this end, we introduce a computation- and memory-efficient LLM tuning framework, called Edge-LLM, to facilitate affordable and effective LLM adaptation on edge devices. Specifically, Edge-LLM features three core components: (1) a layer-wise unified compression (LUC) technique to reduce the computation overhead by generating layer-wise pruning sparsity and quantization bit-width policies, (2) an adaptive layer tuning and voting scheme to reduce the memory overhead by reducing the backpropagation depth, and (3) a complementary hardware scheduling strategy to handle the irregular computation patterns introduced by LUC and adaptive layer tuning, thereby achieving efficient computation and data movements. Extensive experiments demonstrate that Edge-LLM achieves a 2.92x speed up and a 4x memory overhead reduction as compared to vanilla tuning methods with comparable task accuracy. Our code is available at https://github.com/GATECH-EIC/Edge-LLM |
ABSTRACT
大语言模型(LLMs)在边缘设备上的高效适配对于需要持续且保护隐私的适配和推理的应用至关重要。然而,由于计算和内存开销过高,现有的调优技术存在不足。为此,我们引入了一种计算和内存高效的大语言模型调优框架,称为Edge-LLM,以促进在边缘设备上以可承受的成本实现有效的大语言模型适配。具体而言,Edge-LLM具有三个核心组件:(1)一种分层统一压缩(LUC)技术,通过生成分层剪枝稀疏度和量化比特宽度策略来降低计算开销;(2)一种自适应层调优和投票方案,通过减少反向传播深度来降低内存开销;(3)一种互补的硬件调度策略,用于处理由LUC和自适应层调优引入的不规则计算模式,从而实现高效的计算和数据移动。大量实验表明,与普通调优方法相比,Edge-LLM在任务精度相当的情况下,速度提升了2.92倍,内存开销降低了4倍。我们的代码可在https://github.com/GATECH-EIC/Edge-LLM上获取。
1 Introduction
近年来,诸如GPT4[1]这样的大语言模型(LLMs)在各类应用中展现出卓越的性能,彻底改变了人们的生活。顺应这一趋势,开发高效的大语言模型调优技术的需求日益增长,以便使其能够应用于需要持续且保护隐私的自适应场景。然而,大语言模型庞大的模型规模阻碍了在边缘设备(如边缘GPU和智能手机)上直接实现模型适配。这面临两方面的挑战:第一,计算大语言模型前向和反向传播时会产生过高的计算开销[2];第二,在调优过程中,存储大量模型权重和激活值会带来繁重的内存开销。如近期研究[2, 11]所示,大语言模型通常在尖端GPU(例如拥有40GB或80GB GPU内存)上进行调优,完成调优需要耗费超过一天的GPU计算时间。即便采用最先进(SOTA)的高效调优方法,在边缘设备上有效调优相对小规模的大语言模型(如70亿参数的LLaMA模型)仍然不切实际[2]。
尽管现有的一些研究致力于解决上述挑战,但每种方法都有其自身的缺点。(1)为了降低计算开销,先对目标大语言模型进行压缩以减小模型规模是一种常见的方法[2, 3]。然而,如何在保持大语言模型适应性的同时有效地减少其冗余,在很大程度上仍未得到充分探索[2]。(2)为了减轻内存开销,现有方法主要侧重于缩短反向传播深度[19, 23]。遗憾的是,反向传播深度的缩短导致大语言模型中只有一小部分模块被更新,限制了可实现的性能。
在本文中,我们开发了一个全面的解决方案来应对上述内存和计算方面的两大挑战,实现大语言模型的有效适配。具体而言,我们做出了以下贡献。
- 我们提出了一个名为EdgeLLM的综合框架,从算法和硬件两个角度应对大语言模型适配过程中的内存和计算挑战,使得在内存和计算资源有限的边缘设备上也能有效地进行大语言模型适配。
- 在算法方面,我们从两个方向实现这一目标,每个方向主要聚焦于上述挑战之一:(1)为降低计算开销,基于我们对大语言模型各层对量化和剪枝敏感度的实证观察,提出一种低成本的分层统一压缩(LUC)方法。(2)为降低内存开销,我们引入自适应层调优和投票方案。在自适应层调优中,我们提议有选择地更新目标大语言模型的不同部分,并通过将当前更新部分的输出直接连接到最后一层来减少内存占用。此外,在自适应层投票中,我们通过对目标大语言模型不同部分的输出进行投票以获得优化输出,从而利用这些输出。
- 在硬件方面,为了更好地处理所提算法引入的不规则计算模式(即不同的分层量化比特宽度、分层剪枝稀疏度以及要更新的大语言模型部分),我们在Edge-LLM中进一步集成了一个互补的硬件调度模块。该硬件调度模块包含一个搜索空间和一种搜索策略,其中考虑了潜在的卸载策略、计算调度和张量放置,旨在更好地将计算开销的理论减少转化为硬件效率的提升。
- 实验结果和消融研究验证了我们提出的Edge-LLM框架的有效性。具体而言,在相同资源约束下进行调优时,Edge-LLM的MMLU得分比基线方法高出0.70% - 1.29%;在WikiText-2数据集上,其困惑度与LoRA调优相当,但每次迭代的延迟降低了2.92倍,内存开销减少了4倍。
2 研究背景与动机
2.1 高效调优技术
参数高效调优(PET)包含了使用有限数量的可训练参数将大语言模型(LLMs)调整以适应新任务的技术,这些可训练参数通常少于目标大语言模型总参数的10%[5, 6, 10, 19]。它有两个主要优点:(1)降低存储开销,便于进行可扩展的多任务部署;(2)由于可训练参数数量减少,计算和内存开销也略有降低[10]。尽管参数高效调优得到了广泛应用,但由于剩余内存开销仍然很大,直接将其应用于设备上的大语言模型适配仍然不切实际。这是因为参数高效调优通常会在目标大语言模型的大部分(即便不是全部)层中插入可学习的适配器,这导致在调优过程中存储中间激活值时会产生显著的内存开销。
内存高效调优(MET)旨在通过减少反向传播深度,最小化调优过程中的内存占用,从而减少需要存储在内存中的激活值数量[19, 23]。现有的内存高效调优技术通过部分调优(即仅对最后几层进行调优)[23],或利用边侧调优(在每个适配器模块与最终输出之间添加旁路连接)[19]来实现这一目标。虽然在调优过程中减少内存占用非常必要,但现有的内存高效调优技术在大语言模型调优中,仍然面临着准确性和内存占用之间不理想的权衡。具体而言,对于部分调优,现有的大语言模型调优尝试需要对目标大语言模型80%以上的层进行调优,才能获得令人满意的任务准确率[23];而边侧调优则存在优化偏差问题,难以达到与最先进的参数高效调优(PET)技术相媲美的任务准确率[19]。
![![[Pasted image 20250418220218.png|500]]](https://i-blog.csdnimg.cn/direct/6f8209de19ca4accb45dadd1daed6b12.png)
先压缩后微调是一系列新兴的高效微调技术,其灵感来源于这样一个观察结果:由于大语言模型(LLM)主干的规模过大,LLM微调过程中的计算开销主要来自于主干的前向和反向传播[2]。因此,一些开创性的工作提出在微调之前对LLM主干进行压缩,以减少计算和数据移动开销[2]。然而,现有的最先进的先压缩后微调技术主要旨在提高微调速度,却忽视了极高的内存开销(例如,最先进的先压缩后微调方法仍然需要配备40GB内存的A100 GPU才能对Llama-70B模型进行有效的微调[2])。这种疏忽限制了先压缩后微调技术在资源受限的边缘设备上对LLM进行微调的有效性。
2.2 调优过程中的内存开销
为了更好地理解现有调优技术所需内存与边缘设备可用内存之间的差距,我们分别分析了使用LoRA(一种最先进的参数高效调优技术)和QLoRA(一种最先进的先压缩后调优技术)对Llama-7B模型进行调优时的内存需求。如图1所示,LoRA的内存开销主要用于存储大语言模型的骨干权重和反向传播所需的激活值。即便QLoRA将大语言模型的主干压缩至4比特,且相比LoRA整体内存占用降低了41.2%,但调优所需的内存与常用边缘设备的可用内存之间仍存在1.48倍至2.22倍的差距(例如,TX2的可用内存为8GB ,Quest Pro的为12GB )。
2.3 大语言模型高效调优的机会
为了解决现有调优方法的上述局限性,我们找出了改进这些方法的潜在机会,以开发出有效的大语言模型调优框架。
一方面,为了进一步降低计算开销,我们发现,先前旨在减少模型冗余的成功实践与现有先压缩后微调技术中所使用的普通压缩技术之间存在不匹配之处。具体而言,先前的研究成果(例如[4]指出,深度学习模型在不同维度(如比特宽度和稀疏度)以及不同层中都存在冗余。相比之下,现有的先压缩后微调技术通常采用统一的压缩方法,仅从一个维度来减少冗余[2]。
另一方面,为了进一步降低内存开销,基于我们在2.1节中的分析,我们总结得出,改善可实现的准确性与内存之间权衡的关键在于,能够在有限的反向传播深度下更新大语言模型(LLM)中的所有层。受为实现高效模型推理而开发的早退机制(early exit mechanism)[21]的启发,我们假设大语言模型中较靠前层的输出可以为预测提供有意义的信息。因此,从一个早退层开始进行反向传播,并仍然有效地更新模型是有可能的。在这种情况下,由于反向传播可以从各种早退层开始,更新大语言模型中所有层所需的反向传播深度可以被最小化。
3 Edge-LLM算法
3.1 概述
受第2.3节中所发现的机会的启发,我们接下来介绍所提出的Edge-LLM框架的算法设计,以在有限的计算和内存开销下,实现有效且高效的大语言模型适配。如图2所示,我们提出的Edge-LLM微调算法整合了两个关键促成因素,每个因素都利用了上述减少计算和内存开销的机会之一。具体来说:(1)为了降低计算开销,我们提出了分层统一压缩(LUC)技术,以减少目标大语言模型的冗余。这项技术的灵感来源于我们对大语言模型在不同层对量化和剪枝敏感度存在差异的实证观察。基于上述观察,我们在LUC中开发了一种低成本的、基于均方误差(MSE)的识别器,用于生成一种分层压缩策略(例如,分层比特宽度和剪枝稀疏度分配),旨在在先压缩后微调框架中,相比现有压缩技术,改善LUC在准确性与效率之间的权衡(第3.2节)。(2)为了降低内存开销,我们提出了一种自适应层微调方案,该方案在前向传播过程中,通过跳跃连接将选定层的输出(在每次迭代中可能不同)动态地连接到最终的分类层。在反向传播过程中,只有选定层的前几层会接收梯度更新。由于为更新而选定的层会因不同的输入而有所变化,这种方法在将内存开销降至最低的同时,确保了所有层都能得到有效更新。通过引入跳跃连接减少反向传播的深度,从而实现了这种高效性。此外,在推理过程中,我们引入了一种投票机制,以提高通过自适应层微调的大语言模型的准确性。这种方法利用了经过自适应微调的大语言模型从多个层生成合理输出的能力。因此,每一层都会生成对数几率(logits),并通过投票过程来确定最终输出(详见第3.3节)。
![![[Pasted image 20250418220846.png]]](https://i-blog.csdnimg.cn/direct/5b3fc4390cf047f09f277f38324c9e0f.png)
3.2 分层统一压缩(LUC)
关于大语言模型(LLM)分层敏感度的启发性观察。在先前有关模型压缩的研究中,一个普遍的认知是,模型中的不同层对不同的压缩技术表现出不同的敏感度[4]。然而,大语言模型中不同层对不同压缩技术的敏感度仍是一个有待解决的问题。为了解决这个问题,我们首先探究目标大语言模型对剪枝和量化的分层敏感度。具体而言,我们对预训练的LLaMA-7B[22]模型的每一层应用不同的量化比特宽度和剪枝稀疏度。通过比较目标大语言模型中,在输入来自WikiText数据集[12]的相同数据时,压缩层输出与原始层输出的平均均方误差(MSE),我们观察到,如图3所示,大语言模型中只有一小部分层对压缩具有高敏感度。
![![[Pasted image 20250418222112.png|500]]](https://i-blog.csdnimg.cn/direct/9a48e86fbfe84960b87d243e13bf55ea.png)
我们的假设以及所提出的分层统一压缩(LUC)方法。基于上述观察,我们假设,(某层)高敏感度(即高均方误差)是由于相应层的冗余度有限导致的,因此这就需要较低的压缩比。为此,我们提出以下映射函数,分别将逐层均方误差(MSE)映射到逐层量化比特宽度和剪枝稀疏度。对于量化而言,给定一个具有 L L L层的大语言模型 M M M,表示为 L = { l 0 , l 1 , ⋯ , l L − 1 } L = \{l_0, l_1, \cdots, l_{L - 1}\} L={l0,l1,⋯,lL−1},一个基础量化比特宽度 B B B,以及层 l i l_i li的量化敏感度(即原始层的输出与 B B B比特量化层的输出之间的均方误差)记为 s q u a n t i s_{quant}^i squanti ,我们将层 l j l_j lj处的优化量化比特宽度 b j b_j bj定义为:
b j = B + 1 ( s q u a n t j ≥ ∑ i = 0 L − 1 s q u a n t i L ) (1) b_j = B + \mathbf{1}(s_{quant}^j \geq \frac{\sum_{i = 0}^{L - 1} s_{quant}^i}{L})\tag{1} bj=B+1(squantj≥L∑i=0L−1squanti)(1)
其中, 1 ( . ) \mathbf{1}(.) 1(.)是指示函数。对于剪枝,给定一个目标总体剪枝稀疏度 P P P,我们将层 l j l_j lj处的剪枝稀疏度 p j p_j pj定义为: p j = P × L × s p r u n e j ∑ i = 1 L − 1 s p r u n e i (2) p_j = P\times L\times\frac{s_{prune}^j}{\sum_{i = 1}^{L - 1} s_{prune}^i} \tag{2} pj=P×L×∑i=1L−1spruneisprunej(2)其中, s p r u n e j s_{prune}^j sprunej是层 l j l_j lj的剪枝敏感度。
3.3 自适应层微调与投票机制
在这一技术手段中,我们的目标是在降低内存开销的情况下实现有效的微调,从而使微调过程能够在内存容量有限的边缘设备上进行。为实现这一目标,正如第2.3节所分析的,我们所发现的主要挑战是在反向传播深度受限的情况下,对目标大语言模型的所有层进行高效更新。
在Edge-LLM中,我们通过构建一组早退层 T = { t 0 , t 1 , ⋯ , t T − 1 } T = \{t_0, t_1, \cdots, t_{T - 1}\} T={t0,t1,⋯,tT−1}来应对这一挑战。每个早退层 t 1 t_1 t1都连接到目标大语言模型中层 l ⌈ ( i + 1 ) × L / T ⌉ l_{\lceil (i + 1) \times L / T\rceil} l⌈(i+1)×L/T⌉的输出,并充当最终输出层。请注意, T T T表示可选早退层的数量, L L L表示目标大语言模型的总层数,且需确保 T < L T < L T<L。在每次微调迭代中,我们从 T T T中随机选择 t i t_i ti作为唯一使用的早退层,并更新以下这组层 { l ⌈ ( i + 1 ) × L / T ⌉ − m , l ⌈ ( i + 1 ) × L / T ⌉ − m + 1 , ⋯ , l ⌈ ( i + 1 ) × L / T ⌉ , t i } \{l_{\lceil (i + 1) \times L / T\rceil - m}, l_{\lceil (i + 1) \times L / T\rceil - m + 1}, \cdots, l_{\lceil (i + 1) \times L / T\rceil}, t_i\} {l⌈(i+1)×L/T⌉−m,l⌈(i+1)×L/T⌉−m+1,⋯,l⌈(i+1)×L/T⌉,ti}。在这种配置下,这组中的每一层都配备了低秩适应层(LoRA)适配器。这里, m = ⌈ L / T ⌉ m = \lceil L / T\rceil m=⌈L/T⌉表示在该配置中具有解冻可训练参数的层数。
此外,借助上述的自适应层微调方法,经过微调的大语言模型能够从所有 t ∈ T t\in T t∈T的层中生成输出。尽管直接使用最后一个输出层 t T − 1 t_{T - 1} tT−1就能够取得具有竞争力的性能表现,拥有多个可用的早退层,通过自适应地组合不同层的输出,为在推理时进一步提升性能提供了机会。为此,我们提出一种投票机制,通过基于所有早退层的输出来进行预测,以此提高性能。具体而言,受关于softmax后概率与预测置信度之间关系的现有研究成果[15]的启发,我们通过选择在所有早退层中softmax后概率最高的那个来确定最终输出索引。 具体来说,给定一个输出概率矩阵 M M M,其中每个元素 m ( i , j ) m(i, j) m(i,j)表示来自 t i ∈ T t_i\in T ti∈T层的索引 j j j的输出概率。我们首先通过 ( i m a x , j m a x ) = arg max i , j ( m ( i , j ) ) (i_{max}, j_{max}) = \arg\max_{i, j}(m(i, j)) (imax,jmax)=argmaxi,j(m(i,j))找到矩阵 M M M中最大值的位置,然后生成最终输出 o = j m a x o = j_{max} o=jmax。
4 Edge-LLM(边缘大语言模型)的硬件调度
动机:上述算法设计引入了一种不规则的计算模式(即不同的逐层量化比特宽度、逐层剪枝稀疏度以及要更新的层)。这种复杂性使得真实设备难以充分从该算法在理论上对计算开销的降低中获益。为应对这一挑战,我们提出一个互补的硬件调度模块,专注于为优化大语言模型推理吞吐量而量身定制的高效调度和卸载策略。片上加速器的静态随机存取存储器(SRAM)大小限制(512KB至1MB)突显了无法加载所有模型权重和激活值的问题,这就需要将数据卸载到诸如动态随机存取存储器(DRAM,容量为8GB至16GB)和固态硬盘(SSD,容量为128GB至256GB)等辅助存储介质上。我们进行硬件加速的动机是需要建立一个全面的成本模型,以此作为系统中每个早退模块的高效内存调度或卸载策略的基础。
4.1 概述
为了优化大语言模型(LLM)硬件加速器的调度和卸载策略,我们的方法基于敏感度为每一层分配量化比特宽度和剪枝稀疏度(详见第3.2节)。随后,我们进行了细致入微的探究,以确定每个早退模块的最佳卸载策略。如图4(a)和(b)所示,这两个步骤将算法超参数作为输入,并输出最终的分配策略和硬件调度方案。
4.2 搜索目标
我们依照文献[18],将带有数据卸载的大语言模型(LLM)微调概念化为一个图遍历问题。在图4(c)中,我们展示了一个说明性的计算图,它由批次、层和标记三个维度组成。在所描绘的图中,每个正方形表示特定一层的计算。颜色相同的正方形表示使用了相同的层权重。一条有效路径被定义为一条遍历(即计算)所有正方形的轨迹,且需遵循以下约束条件:
- 在大语言模型进行前向传播或反向传播过程中,一个正方形(所代表层)的计算分别依赖于其所在行中左侧或右侧的层计算完成。
- 要计算一个正方形(所代表的层的计算),其所有的输入(权重、激活值、缓存数据)都必须加载到片上静态随机存取存储器(SRAM)中。
- 在任何给定时刻,存储在加速器上的张量的累计大小绝不能超过其内存容量。
目标是找到一条有效的路径,使总体执行时间最短,其中包括计算成本以及在张量移动过程中产生的输入/输出成本。
![![[Pasted image 20250418222154.png]]](https://i-blog.csdnimg.cn/direct/5f353d562a334bb1bd808b3afce4d601.png)
4.3 模块搜索空间
基于上述搜索目标,我们建立了一个包含潜在有效策略的搜索空间。
- 逐行方式。现有系统通常仅采用逐行遍历的方式来节省激活占用空间。然而,该策略并未考虑不同批次间相邻方块(计算单元) 之间的权重共享问题,从而导致了重复的权重加载输入/输出成本。
- 混合逐列与逐行方式。另外,为降低与权重相关的输入/输出成本,有一种方法是逐列遍历计算图。这利用了一列中所有计算单元之间的权重共享特性,使得动态随机存取存储器(DRAM)中的权重得以保留并重复使用,同时对激活值进行加载和卸载操作。由于我们提出的算法技术能够大幅降低对激活值内存占用的要求,因此我们将混合逐列与逐行方式纳入搜索空间。
考量因素。重叠方式。另一种优化方法是重叠处理。这意味着同时处理下一层的权重加载、下一批次的激活值加载、前一批次激活值的存储以及当前批次的计算。为得出最终的调度方案,有必要将重叠处理纳入模块调度中。
张量放置。除了计算调度之外,一个有效的策略还必须明确张量在内存层级结构中的放置位置。有三个变量,即 w s r a m w_{sram} wsram、 w d r a m w_{dram} wdram和 w s s d w_{ssd} wssd,分别定义了存储在静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)和固态硬盘(SSD)上的权重所占的百分比。同样地,有三个变量 a s r a m a_{sram} asram、 a d r a m a_{dram} adram和 a s s d a_{ssd} assd说明了激活值所占的百分比;还有三个变量 g s r a m g_{sram} gsram、 g d r a m g_{dram} gdram和 g s s d g_{ssd} gssd说明了梯度所占的百分比。
4.4 成本模型
在确定了搜索目标和搜索空间之后,下一步是开发一个分析成本模型。该模型旨在根据指定的算法参数和硬件规格来估算执行时间。计算一个模块的总延迟可以估算为 T d e c T_{dec} Tdec 。假设实现了理想的重叠处理, T d e c T_{dec} Tdec 可以估算为: T d e c = m a x ( r t o s r a m , w t o d r a m , r t o d r a m , w t o s s d , T c o m p ) (3) T_{dec }=max \left(r_{to_sram }, w_{to_dram }, r_{to_dram }, w_{to_ssd }, T_{comp }\right) \tag{3} Tdec=max(rtosram,wtodram,rtodram,wtossd,Tcomp)(3) 其中 r t o s r a m r_{to_sram } rtosram 、 w t o d r a m w_{to_dram} wtodram 、 r t o d r a m r_{to_dram} rtodram 、 w t o s s d w_{to_ssd } wtossd 和 T c o m p T_{comp } Tcomp 分别表示在大语言模型(LLM)微调过程中从动态随机存取存储器(DRAM)读取数据到静态随机存取存储器(SRAM)的延迟、从静态随机存取存储器(SRAM)写入数据到动态随机存取存储器(DRAM)的延迟、从固态硬盘(SSD)读取数据到动态随机存取存储器(DRAM)的延迟、从动态随机存取存储器(DRAM)写入数据到固态硬盘(SSD)的延迟以及计算延迟。
5 评估
5.1 评估设置
- 数据集:两个常用的基准测试数据集,包括大规模多任务语言理解基准(MMLU)[9]和维基文本(WikiText)[12]。
- 模型:大语言模型羊驼70亿参数版本(LLaMA-7B)[22]。
- 算法基线:当前最优的参数高效微调(PET)技术,即低秩适配器(LoRA)[10];当前最优的模型编辑(MET)技术,即局部结构微调(LST)[19];当前最优的压缩技术,即稀疏生成式预训练变换器(Sparse-GPT)[7]和大语言模型量化感知训练(LLM-QAT)[11];以及我们所提出方法的七个变体。
- 硬件基线:专为变换器训练设计的当前最优的脉动阵列加速器[17]。
- 算法实现:我们分别使用大语言模型量化感知训练(LLM-QAT)和稀疏生成式预训练变换器(Sparse-GPT)作为量化和剪枝技术,并按照文献[2]中的设置对模型进行微调。
- 硬件配置:该加速器的动态随机存取存储器(DRAM)设置为8GB的低功耗双倍数据速率第四代同步动态随机存储器(LPDDR4),片上静态随机存取存储器(SRAM)为1MB,这与当前最先进的边缘设备[14]一致,其他硬件配置则遵循基线训练加速器的设计。
- 评估方法:我们使用当前最先进的Scale-Sim[16]模拟器来模拟基线加速器,以及模拟在基线加速器上应用我们的技术之后的加速器情况。
5.2 算法评估
为了评估我们所提出方法的性能,我们首先在常用的大规模多任务语言理解基准(MMLU)数据集上,将我们提出的方法与现有的基线方法(包括部分微调、局部结构微调(LST)以及低秩适配器(LoRA)微调)进行了基准测试对比。如表1所示,与基线方法相比,我们的方法在保持相同计算效率的情况下,准确率始终高出0.70%到1.29%,并且内存占用减少到原来的四分之一。为了进一步验证边缘大语言模型(Edge-LLM)中的关键促成因素,我们首先在维基文本-2(WikiText-2)数据集上,分别针对两种当前最优的压缩技术(即稀疏生成式预训练变换器(SparseGPT)和大语言模型量化感知训练(LLM-QAT)),评估了局部更新组件(LUC)的困惑度。以及两种变体:(1)统一型:在所有层中使用相同的量化比特宽度和剪枝稀疏度;(2)随机型:在所有层中随机分配我们生成的按层剪枝稀疏度和量化比特数。如表2所示,在相似的资源限制条件下,与统一型基线方法相比,我们提出的方法使困惑度降低了1.28至2.49;在相同的效率下,与随机型基线方法相比,困惑度降低了0.50至1.68,这表明了我们所提出的局部更新组件(LUC)的有效性。
![![[Pasted image 20250418223103.png]]](https://i-blog.csdnimg.cn/direct/b7ebaa9a846e41b2a15ba5467a944de6.png)
![![[Pasted image 20250418223123.png]]](https://i-blog.csdnimg.cn/direct/9b269af5c1184520959de865b8f9382c.png)
5.3 硬件评估
我们基于专为变换器训练而设计的基线脉动阵列加速器来评估所提出的技术,并对其进行了适当修改以支持所提出的技术[17]:(1)由于所提出的自适应层微调能够自然地在基线加速器上运行,因此无需对基线加速器进行修改;(2)对于局部更新组件(LUC),我们进行了这些修改:我们更新了基线设置,以便将压缩后的权重存储在动态随机存取存储器(DRAM)和固态硬盘(SSD)上。为了简化设计,我们没有针对稀疏性修改计算核心,而是使用了一个简单的时空灵活精度乘累加单元[8]。我们应用所提出的硬件调度搜索方法来寻找最优的算法与硬件映射关系。Scale-Sim仿真结果表明,自适应层微调能够实现2.24倍的加速;剪枝和自适应层微调能够实现2.37倍的加速;而结合局部更新组件(4比特/5比特)与自适应层微调,则分别能够实现3.38倍/2.92倍的整体加速。
6 结论
在本文中,我们介绍了一个大语言模型(LLM)微调框架——边缘大语言模型(Edge-LLM),它能够在边缘设备上实现高效的大语言模型适配。实验表明,边缘大语言模型(Edge-LLM)实现了高效的适配,其性能与常规微调相当,且速度提升了2.92倍,内存占用减少到原来的四分之一。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)