Pruning Pre-trained Language Models Without Fine-Tuning

本文是LLM系列文章,针对《Pruning Pre-trained Language Models Without Fine-Tuning》的翻译。

修剪未微调的预训练语言模型

  • 摘要
  • 1 引言
  • 2 相关工作
  • 3 背景
  • 4 静态模型剪枝
  • 5 实验
  • 6 分析
  • 7 结论
  • 8 局限性

摘要

为了克服预训练语言模型(PLMs)中的过度参数化问题,剪枝作为一种简单直接的压缩方法被广泛使用,它直接去除不重要的权重。先前的一阶方法成功地将plm压缩到极高的稀疏度,而性能下降很小。这些方法,如运动剪枝,使用一阶信息剪枝plm,同时微调剩余的权重。在这项工作中,我们认为微调对于一阶剪枝是多余的,因为一阶剪枝足以在没有微调的情况下将plm收敛到下游任务。在此动机下,我们提出了静态模型剪枝(SMP),该方法仅使用一阶剪枝使plm适应下游任务,同时达到目标稀疏度水平。此外,我们还设计了新的掩蔽函数和训练目标来进一步改进SMP。在各种稀疏度水平上的大量实验表明,SMP方法比一阶和零阶方法有显著的改进。与以前的一阶方法不同,SMP也适用于低稀疏度,并且优于零阶方法。同时,由于不需要微调,SMP比其他方法具有更高的参数效率。我们的代码可在https://github.com/kongds/SMP上获得。

1 引言

2 相关工作

3 背景

4 静态模型剪枝

5 实验

6 分析

7 结论

在本文中,我们提出了一种简单而有效的特定于任务的剪枝方法,称为静态模型剪枝(SMP)。考虑到之前的方法,即执行修剪和微调以使plm适应下游任务,我们发现微调可能是冗余的,因为一阶修剪已经收敛了plm。在此基础上,我们的方法侧重于使用一阶剪枝来代替微调。无需微调,我们的方法明显优于其他一阶方法。大量的实验也表明,我们的方法在各种稀疏度下都达到了最先进的性能。对于BERT中的彩票假设,我们发现它包含了不需要训练就能获得原始性能的稀疏性子网,这些子网在80%剩余权重下甚至优于GLUE上微调后的BERT。

8 局限性

与所有非结构化剪枝方法一样,SMP与结构化剪枝方法相比难以实现推理加速。由于SMP对模型的剪枝没有进行微调,这也限制了SMP对结构化剪枝方法的扩展。然而,我们发现SMP中大多数稀疏矩阵的行在高稀疏度水平上是完全修剪的。这允许我们直接压缩矩阵的大小,从而产生更快的推理。例如,MNLI的3%剩余权重模型可以被压缩到模型实际大小的47.43%(导致大约1.37倍的推理加速),而无需重新训练或性能损失。通过删除包含少于10个剩余权重的矩阵行,我们可以进一步将其压缩到实际大小的25.19%(推理加速1.76倍),精度下降0.9。我们期望在训练过程中精心设计的损失函数可以导致更小的实际模型大小和更快的推理加速,我们将其留在未来。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

冲刺十五届蓝桥杯P0005单词分析

文章目录 题目分析代码 题目 单词分析 分析 统计字符串中字母出现的次数,可以采用哈希表,代码采用的是数组来存储字符,将字符-97,得到对应的数组下标,将对应下标的数组;找到数组元素最大的下标&#xff…

Linux C语言

一、基础知识 (一)冯诺依曼体系 1、存储器:内存 存储程序的思想:按照存储器中指令的顺序 2、存储器的分类 1)主存:内存(C盘) 2)外存 3)寄存器是cpu内部…

windows常用命令

一.文件操作 dir:查看文件当前路径目录列表 cd .. :返回上一级目录 cd 路径:进入路径

【弃坑xdm】docker容器作为开发环境,更加灵活可靠

关于我准备转行深度学习~~ 弃坑xdm 弃坑xdm 弃坑xdm 转发给你的同学,吓他们一跳~~ ps:其实我准备使用docker容器作为开发环境,vscode可以直接连接docker容器,更加灵活可靠。

日常学习记录随笔-redis实战

redis的持久化(rdb,aof,混合持久化) redis的主从架构以及redis的哨兵架构 redis的clusterredis 是要做持久化的,一般用redis会把数据放到缓存中为了提升系统的性能 如果redis没有持久化,重启的化数据就会丢失,所有的请…

kafka 相关概念

1 kafka 生产者 kafka 用push的方式把消息推送到topic 每个topic下可以有多个分区, 可以用hash 也可以用轮询的方式指定分区 每个分区内部是可以保证顺序的,但是整体无法保证顺序,除非设置成一个topic只有一个分区。 kafka这种多分区的设置 带…

TX Text Control .NET Server for ASP.NET 32.0 Crack

TX Text Control .NET Server for ASP.NET 是VISUAL STUDIO 2022、ASP.NET CORE .NET 6 和 .NET 7 支持,将文档处理集成到 Web 应用程序中,为您的 ASP.NET Core、ASP.NET 和 Angular 应用程序添加强大的文档处理功能。 客户端用户界面 文档编辑器 将功能…

C++ Builder 将运行时需要的库打进运行的程序包

一、打开【工程】–【选项】–【Linker】-- 设置【Use dynamic RTL】为 False 二、打开【工程】–【选项】–【组件包】-- 设置【和运行时组件包一起编译】为 False

电子邮件地址注册过程详解

许多人可能对如何注册电子邮件地址感到困惑,本文将详细解析电子邮件地址的注册过程:确定邮箱厂商、创建邮箱账户、设置电子邮件地址。 1、确定要注册的邮箱厂商 首先我们需要确定要注册哪种类型的电子邮件服务。目前市场上有许多不同的电子邮件服务提供商…

数据库管理-第110期 Oracle Exadata 01(20231016)

数据库管理-第110期 Oracle Exadata 01(202301016) 今天开始一个新的系列,讲讲Oracle Exadata,将用若干期并关联之前和一体机相关的一些内容对Exadata进行讲解。本期是Oracle硬件的介绍。 1. Oracle Hardware and Engineered Sy…

VMware 配置记录

VMware 配置笔记 CentOS 7.9 镜像下载 官网太慢,建议在阿里云镜像站去CentOS配置页找标准版下载。 选标准版即可,各版本区别: DVD:标准版,包含常用软件,体积为 4.4 G;Everything&#xff1a…

前端本地开发中,代理配置是如何解决跨域的?

文章目录 跨域(Cross-Origin)开发代理原理先说一下三个概念那代理到底是如何解决跨域的? 补充参考视频 跨域(Cross-Origin) 这里再说一下跨域的概念吧。 在Web开发中,浏览器限制了从一个不同来源&#xff…

腾讯HR面试

一、如何看待腾讯的愿景 腾讯的愿景是成为“最受尊敬的互联网企业”,这一愿景表明了腾讯的目标是成为一个在互联网领域内具有极高影响力和声誉的企业。 为了实现这一愿景,腾讯坚持以长远的眼光、诚信负责的操守、共同成长的理念来发展公司的事业。这种…

Mac OS m1 下安装Gradle5.1

1. 下载、解压 1.1 下载地址 https://gradle.org 往下翻 选择 5.1 或者选择 任何 你想要的版本 ,点击 binary-only 即可下载 . 1.2 解压到指定目录 2. 配置环境变量 2.1 编辑环境文件 vi ~/.bash_profile #GRADLE相关配置 GRADLE_HOME/Users/zxj/Documents/devSoft/grad…

LeetCode算法位运算—只出现一次的数字

目录 136. 只出现一次的数字 - 力扣(LeetCode) 解题思路: 代码: 运行结果: 补充 异或的重要性质 136. 只出现一次的数字 - 力扣(LeetCode) 给你一个 非空 整数数组 nums ,除了某…

关于python pytorch 与CUDA版本相关问题

首先在终端中输入python进入python交互式环境 import torch print(torch.__version__) #注意是双下划线官网:https://pytorch.org/get-started/previous-versions/ CUDA Toolkit版本及可用PyTorch对应关系总结(参考官网) cuda版本确定后&a…

在数据库插入万条数据,比普通插入提升百倍速度

在数据库插入万条数据,比普通插入提升百倍速度 JDBC中通过普通方法插入一万条数据 /*** 普通方法插入10000条数据* throws Exception*/Testpublic void testInsert() throws Exception {//注册驱动Class.forName("com.mysql.cj.jdbc.Driver");//获取连接C…

问题记录1 json解析问题

问题: json解析int类型不符合预期,使用json.NewDecoder解决。 示例如下: package mainimport ("bytes""encoding/json""fmt" )func main() {data1 : map[string]interface{}{}data1["id"] int64(4…

Fluent瞬态结果的时间统计处理

声明:本文基于 2023R2 版,在其他版本中界面操作、可设置内容等可能存在区别。 1 背景 仿真中有时需要对区域上每个位置的结果数据进行统计分析,例如需要统计设备表面的压力脉动情况,并找出压力脉动最大的位置。在Fluent中对结果…