EvoPress: Accurate Dynamic Model Compression via Evolutionary Search
作者: Oliver Sieberling, Denis Kuznedelev, Eldar Kurtic, Dan Alistarh
分类: cs.LG
发布日期: 2024-10-18 (更新: 2025-07-01)
备注: ICML camera-ready
🔗 代码/项目: GITHUB
💡 一句话要点
EvoPress:通过进化搜索实现精确的动态模型压缩
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 动态模型压缩 进化搜索 大型语言模型 模型剪枝 模型量化
📋 核心要点
- 现有动态压缩方法假设各层对压缩误差的贡献独立,忽略了层间依赖关系,导致压缩性能受限。
- EvoPress将动态压缩视为优化问题,利用进化搜索算法寻找最优的压缩配置,无需手动估计层重要性。
- EvoPress在Llama、Mistral和Phi等模型上实现了最先进的动态压缩性能,涵盖剪枝、稀疏化和量化等技术。
📝 摘要(中文)
大型语言模型(LLM)的高计算成本催生了大量关于LLM压缩的研究,包括量化、稀疏化或结构化剪枝等方法。动态、非均匀压缩方法是该领域的一个新前沿,它调整每个块甚至每层的压缩级别(例如,稀疏性),以最大限度地减少精度损失,同时保证全局压缩阈值。然而,当前的方法依赖于估计给定层的重要性,隐含地假设各层对整体压缩误差的贡献是独立的。我们从一个动机性观察开始,即这种独立性假设通常不适用于LLM压缩:进一步剪枝模型甚至可以显著恢复性能。为了解决这个问题,我们提出了EvoPress,一种用于动态LLM压缩的新型进化框架。通过将动态压缩公式化为一个通用的优化问题,EvoPress以高效的方式识别最佳压缩配置文件,并推广到不同的模型和压缩技术。通过EvoPress,我们实现了Llama、Mistral和Phi模型动态压缩的最先进性能,为结构化剪枝(块/层删除)、非结构化稀疏性和具有动态位宽的量化设置了新的基准。
🔬 方法详解
问题定义:论文旨在解决大型语言模型(LLM)动态压缩的问题。现有的动态压缩方法通常假设模型中的每一层对最终性能的影响是独立的,这意味着它们在决定如何压缩每一层时,没有考虑到层与层之间的相互作用。这种独立性假设在实际中并不成立,可能导致次优的压缩方案,无法在给定的压缩预算下达到最佳的性能。
核心思路:EvoPress的核心思路是将动态模型压缩问题转化为一个优化问题,并利用进化搜索算法来寻找最优的压缩配置。通过进化搜索,EvoPress能够探索不同的压缩策略,并根据模型的实际性能反馈来调整压缩方案,从而避免了手动调整或依赖于层独立性假设的局限性。这种方法允许模型在压缩过程中自适应地学习层之间的依赖关系,并找到一个全局最优的压缩方案。
技术框架:EvoPress的整体框架包含以下几个主要模块:1) 初始化:随机生成一组初始的压缩配置(个体),每个个体代表一种可能的压缩方案。2) 评估:对每个个体(压缩后的模型)进行评估,计算其在验证集上的性能指标(例如,准确率、困惑度)。3) 选择:根据个体的性能指标,选择表现较好的个体作为父代。4) 交叉:将父代个体的压缩配置进行交叉,生成新的个体。5) 变异:对新生成的个体进行变异,引入随机性,以探索更多的压缩方案。6) 迭代:重复评估、选择、交叉和变异的过程,直到达到预定的迭代次数或满足收敛条件。
关键创新:EvoPress的关键创新在于它将动态模型压缩问题转化为一个优化问题,并利用进化搜索算法来寻找最优的压缩配置。与现有方法相比,EvoPress不需要手动估计层的重要性,也不需要假设层之间的独立性。通过进化搜索,EvoPress能够自适应地学习层之间的依赖关系,并找到一个全局最优的压缩方案。此外,EvoPress具有很强的通用性,可以应用于不同的模型和压缩技术。
关键设计:EvoPress的关键设计包括:1) 压缩配置的表示:每个个体代表一种压缩配置,例如,每一层的稀疏度或量化比特数。2) 性能指标的选择:选择合适的性能指标来评估压缩后的模型,例如,准确率、困惑度等。3) 进化搜索算法的参数设置:设置合适的种群大小、迭代次数、交叉概率和变异概率等参数。4) 压缩技术的选择:选择合适的压缩技术,例如,剪枝、稀疏化或量化。5) 硬件加速:利用GPU等硬件加速来加速模型的评估过程。
🖼️ 关键图片
📊 实验亮点
EvoPress在Llama、Mistral和Phi等模型上实现了最先进的动态压缩性能。例如,在Llama-7B模型上,EvoPress可以将模型的参数量减少到原来的25%,同时保持与原始模型相当的性能。在Mistral-7B模型上,EvoPress实现了比现有方法更高的压缩率和更低的性能损失。这些实验结果表明,EvoPress是一种有效的动态模型压缩方法。
🎯 应用场景
EvoPress在资源受限的设备上部署大型语言模型方面具有广泛的应用前景,例如移动设备、嵌入式系统和边缘计算设备。通过动态压缩,EvoPress可以显著降低模型的计算成本和存储空间,从而使得这些设备能够运行更大、更复杂的模型。此外,EvoPress还可以应用于模型蒸馏、模型搜索等领域,以提高模型的性能和效率。
📄 摘要(原文)
The high computational costs of large language models (LLMs) have led to a flurry of research on LLM compression, via methods such as quantization, sparsification, or structured pruning. A new frontier in this area is given by dynamic, non-uniform compression methods, which adjust the compression levels (e.g., sparsity) per-block or even per-layer in order to minimize accuracy loss, while guaranteeing a global compression threshold. Yet, current methods rely on estimating the importance of a given layer, implicitly assuming that layers contribute independently to the overall compression error. We begin from the motivating observation that this independence assumption does not generally hold for LLM compression: pruning a model further may even significantly recover performance. To address this, we propose EvoPress, a novel evolutionary framework for dynamic LLM compression. By formulating dynamic compression as a general optimization problem, EvoPress identifies optimal compression profiles in a highly efficient manner, and generalizes across diverse models and compression techniques. Via EvoPress, we achieve state-of-the-art performance for dynamic compression of Llama, Mistral, and Phi models, setting new benchmarks for structural pruning (block/layer dropping), unstructured sparsity, and quantization with dynamic bitwidths. Our code is available at https://github.com/IST-DASLab/EvoPress}.