模型压缩:使您的机器学习模型更轻,更快

深入研究修剪,量化,蒸馏和其他技术,以使您的神经网络更加有效,更易于部署。邮政模型压缩:使您的机器学习模型更轻松,更快地出现在数据科学方面。

来源:走向数据科学

无论您是准备面试还是在工作中构建机器学习系统,模型压缩已经成为必备技能。在LLM的时代,模型越来越大,围绕压缩这些模型的挑战使它们在轻型机器上更加高效,更小和可用。

在本文中,我将介绍每个ML从业者应该理解和掌握的四种基本压缩技术。我探索修剪,量化,低级别的分解和知识蒸馏,每种都具有独特的优势。我还将为每种方法添加一些最小的Pytorch代码样本。

知识蒸馏

希望您喜欢这篇文章!

模型修剪

修剪可能是最直观的压缩技术。这个想法非常简单:随机删除网络的一些权重,或者删除“不太重要”的权重。当然,当我们谈论在神经网络中“删除”权重时,这意味着将权重设置为零。

删除“不太重要”的 将权重设置为零
模型修剪(作者和Chatgpt的图像|灵感:[3])

结构化与非结构化修剪

让我们从一个简单的启发式式开始:去除小于阈值的权重。

简单的启发式

\ [w’_ {ij} = \ begin {case} w_ {ij}&\ text {if} | w_ {ij} | \ ge \ theta_0 \\ 0&\ text {if} | w_ {ij} | <\ theta_0 \ end {case} \]

当然,这不是理想的选择,因为我们需要找到一种方法来找到适合我们问题的门槛!一种更实用的方法是删除一层中最小幅度(规范)的特定权重的指定比例。一层实施修剪的常用方法有2种:

找到正确的阈值 最小的幅度
  • 结构化的修剪:删除网络的整个组件(例如,从重量张量的随机行,或在研磨层中的随机通道)
  • 结构化修剪 非结构化的修剪 全局修剪 我的github repo 模型压缩 30 m n