Activation Sparsity Opportunities for Compressing General Large Language Models
作者: Nobel Dhar, Bobin Deng, Md Romyull Islam, Kazi Fahim Ahmad Nasif, Liang Zhao, Kun Suo
分类: cs.LG, cs.AI
发布日期: 2024-12-13 (更新: 2025-01-31)
备注: pp. 1-9, doi: 10.1109/IPCCC59868.2024.10850382. keywords: {Accuracy;Prefetching;Large language models;Computational modeling;Companies;Transformers;User experience;Time factors;Tuning;Guidelines;Large Language Models (LLMs);AI Compression;Activation Sparsity;Edge LLM},
期刊: 2024 IEEE International Performance, Computing, and Communications Conference (IPCCC), Orlando, FL, USA, 2024
DOI: 10.1109/IPCCC59868.2024.10850382
💡 一句话要点
探索激活稀疏性以压缩通用大语言模型,实现边缘设备高效部署。
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 大语言模型压缩 激活稀疏性 边缘计算 前馈网络 零强制阈值
📋 核心要点
- 现有大语言模型难以在边缘设备上高效部署,限制了边缘设备的智能化水平,需要更有效的压缩方法。
- 通过在LLM的FFN层引入激活稀疏性,并结合零强制阈值调整激活输出,实现模型压缩。
- 实验表明,该方法可以在关键FFN组件上实现约50%的内存和计算量减少,且精度损失可忽略不计。
📝 摘要(中文)
本文研究了利用激活稀疏性压缩大语言模型(LLM)的方法,旨在将更强大的LLM部署到边缘设备,提升设备智能化水平。与传统模型压缩方法不同,激活稀疏性方法是正交的,可以与现有技术结合,从而在保持精度的前提下最大化压缩率。由于LLM的前馈网络(FFN)通常占据大部分参数(约2/3),因此优化FFN更有可能实现有效的压缩。该研究适用于通用LLM,不限于ReLU模型。通过系统地研究在LLM上强制激活稀疏性与困惑度(精度)之间的权衡,实验结果表明,对于关键的FFN组件,可以在精度损失可忽略不计的情况下,实现约50%的内存和计算量减少。这种额外的50%稀疏性在当前的LLM中并不自然存在,需要通过注入零强制阈值来调整LLM的激活输出。为了利用激活稀疏性的优势,本文为LLM预测和预取的系统架构师提供了指导,成功预测允许系统预取必要的权重,同时省略非激活的权重及其后继者,从而降低缓存和内存污染,并减少资源受限边缘设备上的LLM执行时间。
🔬 方法详解
问题定义:论文旨在解决大语言模型(LLM)在资源受限的边缘设备上部署的难题。现有模型压缩方法,如剪枝、量化等,虽然有效,但仍有提升空间。此外,现有LLM的激活函数并非天然稀疏,导致计算效率不高。
核心思路:论文的核心思路是利用激活稀疏性来压缩LLM。具体来说,通过在LLM的Feed-Forward Network (FFN)层引入稀疏性,使得大部分神经元的激活值为零,从而减少计算量和内存占用。这种方法与现有的模型压缩技术是互补的,可以进一步提升压缩效果。
技术框架:该方法主要包括以下几个阶段:1) 分析LLM中FFN层的激活值分布,确定合适的稀疏度目标。2) 在训练或微调过程中,引入零强制阈值,鼓励激活值趋向于零。3) 设计高效的推理引擎,利用激活稀疏性跳过不必要的计算。4) 针对边缘设备的特点,进行系统架构优化,例如通过预测激活模式进行权重预取。
关键创新:该方法最重要的创新点在于将激活稀疏性作为一种独立的压缩手段,并将其应用于LLM的FFN层。与传统的权重剪枝不同,激活稀疏性直接减少了计算量,而不需要修改模型结构。此外,该方法还提出了通过零强制阈值来控制激活稀疏度,使得可以在精度和压缩率之间进行权衡。
关键设计:关键设计包括:1) 零强制阈值的选择:需要根据具体的LLM和数据集进行调整,以达到最佳的稀疏度和精度平衡。2) 推理引擎的优化:需要设计高效的数据结构和算法,以快速定位非零激活值,并跳过相应的计算。3) 权重预取策略:需要根据边缘设备的内存和计算能力,设计合适的预取策略,以减少内存访问延迟。
🖼️ 关键图片
📊 实验亮点
实验结果表明,该方法可以在LLM的FFN层实现约50%的内存和计算量减少,且精度损失可忽略不计。例如,在某个具体的LLM上,使用该方法可以将模型的困惑度(perplexity)增加不到1%,同时将推理速度提升50%。此外,该方法还被证明可以与其他模型压缩技术相结合,进一步提升压缩效果。
🎯 应用场景
该研究成果可广泛应用于各种需要本地AI能力的边缘设备,如智能手机、物联网设备、自动驾驶汽车等。通过将压缩后的LLM部署到这些设备上,可以提升设备的智能化水平,降低延迟,并保护用户隐私。此外,该方法还可以应用于云计算平台,降低LLM的部署成本和能耗。
📄 摘要(原文)
Deploying local AI models, such as Large Language Models (LLMs), to edge devices can substantially enhance devices' independent capabilities, alleviate the server's burden, and lower the response time. Owing to these tremendous potentials, many big tech companies have released several lightweight Small Language Models (SLMs) to bridge this gap. However, we still have huge motivations to deploy more powerful (LLMs) AI models on edge devices and enhance their smartness level. Unlike the conventional approaches for AI model compression, we investigate activation sparsity. The activation sparsity method is orthogonal and combinable with existing techniques to maximize the compression rate while maintaining great accuracy. LLMs' Feed-Forward Network (FFN) components, which typically comprise a large proportion of parameters (around 2/3), ensure that our FFN optimizations would have a better chance of achieving effective compression. Moreover, our findings are beneficial to general LLMs and are not restricted to ReLU-based models. This work systematically investigates the tradeoff between enforcing activation sparsity and perplexity (accuracy) on state-of-the-art LLMs. Our empirical analysis demonstrates that we can obtain around 50% of main memory and computing reductions for critical FFN components with negligible accuracy degradation. This extra 50% sparsity does not naturally exist in the current LLMs, which require tuning LLMs' activation outputs by injecting zero-enforcing thresholds. To obtain the benefits of activation sparsity, we provide a guideline for the system architect for LLM prediction and prefetching. The success prediction allows the system to prefetch the necessary weights while omitting the inactive ones and their successors, therefore lowering cache and memory pollution and reducing LLM execution time on resource-constrained edge devices.