大模型剪枝概述

近年来,随着Transformer、MOE架构的提出,使得深度学习模型轻松突破上万亿规模参数,从而导致模型变得越来越大,因此,我们需要一些大模型压缩技术来降低模型部署的成本,并提升模型的推理性能。而大模型压缩主要分为如下几类:

  • 模型剪枝(Pruning)
  • 知识蒸馏(Knowledge Distillation)
  • 模型量化(Quantization)
  • 低秩分解(Low-Rank Factorization)

本文将针对当前大模型剪枝相关的一些工作进行讲述。

文章较长,建议先点赞收藏,后续再慢慢观看。另外,我撰写的大模型相关的博客及配套代码均整理放置在Github:llm-action,有需要的朋友自取。

剪枝简介

模型剪枝(Model Pruning)是一种用于减少神经网络模型参数数量和计算量的技术。它通过识别和去除在训练过程中对模型性能影响较小的参数或连接,从而实现模型的精简和加速。

通常,模型剪枝可以分为两种类型:结构化剪枝(Structured Pruning)、非结构化剪枝(Unstructured Pruning)。

结构化剪枝和非结构化剪枝的主要区别在于剪枝目标和由此产生的网络结构。结构化剪枝根据特定规则删除连接或层结构,同时保留整体网络结构。而非结构化剪枝会剪枝各个参数,从而产生不规则的稀疏结构。

模型剪枝的一般步骤包括:

  1. 训练初始模型:首先,需要训练一个初始的大模型,通常是为了达到足够的性能水平。
  2. 评估参数重要性:使用某种评估方法(如:权重的绝对值、梯度信息等)来确定模型中各个参数的重要性。
  3. 剪枝:根据评估结果,剪枝掉不重要的参数或连接,可以是结构化的或非结构化的。
  4. 修正和微调:进行剪枝后,需要进行一定的修正和微调,以确保模型的性能不会显著下降。

模型剪枝可以带来多方面的好处,包括减少模型的存储需求、加速推理速度、减少模型在边缘设备上的资源消耗等。然而,剪枝可能会带来一定的性能损失,因此需要在剪枝前后进行适当的评估和调整。

下面来探讨一些将LLMs与剪枝技术相结合的方法,旨在解决LLMs巨大尺寸和计算成本的问题。

非结构化剪枝方法

非结构化剪枝通过删除特定参数而不考虑其内部结构来简化 LLM。这种方法针对 LLM 中的单个权重或神经元进行,通常通过将阈值以下的参数归零。但是此方法忽略了 LLM 整体结构,导致不规则的稀疏模型,这种不规则性需要专门的压缩技术来有效存储和计算剪枝后的模型。

非结构化修剪通常涉及对 LLM 进行大量重新训练以重新获得准确性,这对于LLMs来说尤其昂贵。该领域的一种创新方法是 SparseGPT(论文:SparseGPT: Massive Language Models Can be Accurately Pruned in One-Shot)。它引入了一种不需要重新训练的一次性剪枝策略。该方法将剪枝视为广泛的稀疏回归问题,并使用近似稀疏回归求解器对其进行求解。 SparseGPT 实现了显著的非结构化稀疏性,在 OPT-175B 和 BLOOM-176B 等大模型上甚至高达 60%,而困惑度的增加很小。

image.png

与此相反,Syed 等人[Syed et al., 2023]提出一种迭代剪枝技术,在剪枝过程中以最少的训练步骤微调模型。

image.png

另一个优化是 LoRAPrune(论文:LoRAPrune: Pruning Meets Low-Rank Parameter-Efficient Fine-Tuning),它将参数高效调整 (PEFT) 方法与剪枝相结合,以增强下游任务的性能。它引入了一种独特的参数重要性标准 [Hu et al., 2022] 使用低秩自适应 (LoRA) 的值和梯度。

image.png

为了解决 SparseGPT 仍然需要的资源密集型权重更新过程,Wanda(论文:Simple and Effective Pruning Approach for Large Language Models)提出了一种新的剪枝指标。 Wanda 根据每个权重的大小和相应输入激活的范数的乘积来评估每个权重,并使用小型校准数据集进行近似。该指标用于线性层输出内的局部比较,从而能够从 LLMs 中删除较低优先级的权重。

image.png

通过观察到 LLM 推理性能和内存使用量很大程度上受到下图四种类型的 Skinny MatMul 的限制。 因此,Flash-LLM 旨在基于称为“稀疏加载和密集计算”(LSCD) 的关键方法来优化四个 MatMul。Flash-LLM 作为另一个用于非结构化模型剪枝的大语言模型推理加速方法。主要包含基于Tensor-Core加速的非结构化稀疏矩阵乘法计算的高效GPU代码,可以有效加速LLM中常见矩阵计算的性能。使用Flash-LLM,修剪后的LLM模型可以以更少的内存消耗部署到GPU上,并且可以更高效地执行。

image.png

结构化剪枝方法

结构化剪枝通过删除整个结构组件(例如:神经元、通道或层)来简化 LLM。这种方法同时针对整组权重,具有降低模型复杂性和内存使用量的优点,同时保持整体 LLM 结构完整。

这个领域的一个例子是 LLM-Pruner(论文:LLM-Pruner: On the Structural Pruning of Large Language Models),它采用通用方法来压缩 LLMs,同时保护其多任务解决能力和语言生成能力。此外,LLM-Pruner 还解决了 LLMs 使用大量训练数据带来的挑战,这可能导致大量的数据传输。为了克服这些挑战,LLM-Pruner 结合了依赖性检测算法来查明模型中相互依赖的结构。它还实现了一种有效的重要性估计方法,该方法考虑一阶信息和近似的 Hessian 信息。该策略有助于选择最佳的组用于剪枝,从而改进压缩过程。

image.png

通过研究能否利用现有的预训练 LLMs 来生成更小、通用且具有竞争力的 LLM,同时使用比从头开始训练要少得多的计算量?LLM-Shearing 提出了另外一种结构化剪枝方法。该方法提出了两种技术:

  • 有针对性的结构化剪枝:将源模型剪枝为预先指定的目标架构,同时最大化剪枝模型的性能。
  • 动态批量加载:修剪会导致跨域的信息保留发生变化。本方法为恢复缓慢的域加载更多数据,并且加载比例是动态决定的。

image.png

通过评估一系列广泛的下游任务,包括推理、阅读理解、语言建模和知识密集型任务,我们的 Sheared-LLaMA 模型优于现有的大语言模型。

image.png

结语

本文简单讲述了目前大模型剪枝的一些工作,在大模型参数量越来越大的今天,该方向的研究对于减少模型的大小以及复杂性非常有用。

码字不易,如果觉得有帮助,欢迎点赞收藏加关注。

参考文档:

  • A Survey on Model Compression for Large Language Models
  • Flash-LLM: Enabling Cost-Effective and Highly-Efficient Large Generative Model Inference with Unstructured Sparsity
  • GitHub: Flash-LLM
  • Sheared LLaMA: Accelerating Language Model Pre-training via Structured Pruning

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/769847.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

游戏推荐: 植物大战僵尸杂交版

下载地址网上一搜就有. 安装就能玩. 2是显血. 4显示植物血, 5是加速. 都是左手主键盘的按钮, 再按是取消. 比较刺激: ps: 设置里面还能打开自动收集阳光和金币.

无人机之运动状态篇

悬停 悬停状态是四旋无人机具有的一个显著特点。在悬停状态下,四个旋翼具有相等的转速,产生的上升合力正好与自身重力相等,并且因为旋翼转速大小相等,前后端转速方向相反,从而使得飞行器总扭矩为0,使得飞行…

【C++ OpenCV】机器视觉-二值图像和灰度图像的膨胀、腐蚀、开运算、闭运算

原图 结果图 //包含头文件 #include <opencv2/opencv.hpp>//命名空间 using namespace cv; using namespace std;//全局函数声明部分//我的腐蚀运算 Mat Erode(Mat src, Mat Mask, uint32_t x0, uint32_t y0) {uint32_t x 0, y 0;Mat dst(src.rows, src.cols, CV_8U…

如何在忘记密码的情况下删除华为ID激活锁

当您手中拥有最新的华为手机时&#xff0c;您会忍不住探索新的可能性&#xff0c;以从您的设备中获得最大价值。您可以下载新的应用程序、Android 启动器等&#xff0c;但这些应用程序中的大多数都会给您的手机带来错误和安全威胁&#xff0c;如果不恢复出厂设置&#xff0c;可…

阿里云 ECS 服务器的安全组设置

阿里云 ECS 服务器的安全组设置 缘由安全组多个安全组各司其职一些常见的IP段百度 IP 段华为云 IP 段搜狗蜘蛛 IP 段阿里云 IP 段 。。。 缘由 最近公司规模缩减&#xff0c;原有的托管在 IDC 机房的服务器&#xff0c;都被处理掉了&#xff0c;所有代码都迁移到了阿里云的云服…

DolphinScheduler部署安装or基础介绍(一)

DolphinScheduler概述 Apache DolphinScheduler是一个分布式、易扩展的可视化DAG工作流任务调度平台。致力于解决数据处理流程中错综复杂的依赖关系&#xff0c;使调度系统在数据处理流程中开箱即用 DolphinScheduler核心架构 DolphinScheduler的主要角色如下&#xff1a; Ma…

迅狐多语言跨境电商系统源码-提供简单可定制解决方案

随着全球化的不断发展&#xff0c;跨境电商已经成为企业拓展市场、提升销售额的重要手段。然而&#xff0c;由于语言和文化差异&#xff0c;跨境电商经常面临着多语言支持的问题。为了解决这个问题&#xff0c;迅狐多语言跨境电商系统源码应运而生。 多语言跨境电商系统源码是一…

adb push 报错 ...error: failed to copy...

一、现象&#xff1a; 原因&#xff1a;没有权限导致的 二、解决方法&#xff1a; adb root adb remount #重新加载文件系统三、再次尝试&#xff1a;adb push xxx.apk /system/app 结果&#xff1a;成功

Qt Group与华为合作开发OpenHarmony版本,打造无缝跨设备操作系统

在华为开发者大会2024上&#xff0c;跨平台软件开发和质量保证工具的领先供应商 Qt Group&#xff08;Nasdaq, Helsinki: QTCOM&#xff09;荣幸地宣布成为OpenHarmony生态系统合作伙伴。这是继近几年华为采用Qt开发框架和自动化测试工具Squish的商业许可后&#xff0c;Qt Grou…

项目上线文档编写指南

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…

MeEdu网校系统搜索功能问题处理

MeEdu通过 MeiliSearch 实现全文搜索服务。 一、下载 MeiliSearch 程序 https://github.com/meilisearch/MeiliSearch/releases/tag/v0.24.0 只能下载 v0.24.0 版本&#xff0c;其版本不支持 下载 meilisearch-linux-amd64就可以了 二、上传 MeiliSearch 三、启动命令如下…

项目中上传功能过段时间就报错,解决方案

实际项目中&#xff0c;发现过段时间上传功能就报错&#xff0c;报错如下&#xff1a; 排查问题&#xff1a; 在服务器的 /tmp目录下发现并没有 /tomcat目录&#xff0c;也就验证了上面找不到这个文件的报错 那么这个临时给tomcat的上传目录怎么就没有了呢&#xff1f; 其实临…

SyntaxError: invalid character in identifier 解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

sklearn(Python机器学习库)介绍

0 引言 Sklearn (全称 Scikit-Learn)是基于Python 编程语言的免费软件机器学习库。 Scikit-learn主要是用Python编写的,它建立在 NumPy, SciPy, Pandas 和 Matplotlib 之上,里面API 的设计非常好,所有对象的接口简单,很适合新手上路。 Scikit-learn与许多其他Python库很好地…

MES系统如何支持多品种小批量生产

MES系统&#xff08;制造执行系统&#xff09;在多品种小批量生产环境中发挥着至关重要的作用。它通过一系列先进的技术手段&#xff0c;提高了生产线的灵活性和效率&#xff0c;从而有效地支持了多品种小批量生产。以下是MES系统如何支持多品种小批量生产的详细分析&#xff1…

【GD32F303红枫派使用手册】第二十九节 USB-IAP升级实验

29.1 实验内容 通过本实验主要学习以下内容&#xff1a; USB IAP升级操作 29.2 实验原理 USB IAP升级本例程中使用的是Custom HID中的IAP设备类&#xff0c;其设备类协议的实现与HID的类似&#xff0c;主要包括GET_REPORT/GET_IDLE/GET_PROTOCOL/SET_REPORT/SET_IDLE/SET_P…

VirtualBox 虚拟机的网络通过宿主机的网络进行冲浪

虚拟机与宿主机通过桥接模式处在同一个网络中 1.说明2.操作步骤2.1.虚拟机设置网络2.2.手动指定虚拟机的IP 1.说明 A.虚拟机 ubuntu-20.04 B.宿主机网络 Wireless LAN adapter WLAN:Connection-specific DNS Suffix . : lanIPv4 Address. . . . . . . . . . . : 192.168.111…

电源管理芯片PMIC的安全策略

1.概述 PMIC作为系统的电源管理模块&#xff0c;其输入电压一般会比较高&#xff0c;为保证芯片自身的安全&#xff0c;PMIC芯片会有独立的安全域&#xff0c;和功能域完全隔离&#xff0c;拥有独立的电压和电流输入&#xff0c;独立的晶振模块&#xff0c;内部运行监控状态机…

谷粒商城笔记-02-项目整体效果展示

这是整个项目的第2集。 主要内容是&#xff1a; 演示了谷粒商城的后台管理系统 演示了商城系统 项目第一阶段[分布式基础篇]的主要内容及这个阶段完成后能达到的技能水平项目第一阶段[分布式高级篇]的主要内容及这个阶段完成后能达到的技能水平项目第一阶段[高可用集群篇]的主…

专利优先权是什么

专利优先权&#xff1a;定义、分类与重要性 在专利的世界中&#xff0c;专利优先权是一个至关重要的概念。它不仅是专利申请人权益的保障&#xff0c;更是确保创新成果得到及时和充分保护的重要工具。 一、专利优先权的定义 专利优先权是指专利申请人就其发明创造第一次在某…