这种精度高,消耗资源少的大模型稀疏训练方法被阿里云科学家找到了!

近日,阿里云机器学习PAI关于大模型稀疏训练的论文《Parameter-Efficient Sparsity for Large Language Models Fine-Tuning》被人工智能顶会IJCAI 2022接收。

论文提出了一种参数高效的稀疏训练算法PST,通过分析权重的重要性指标,得出了其拥有两个特性:低秩性和结构性。根据这一结论,PST算法引入了两组小矩阵来计算权重的重要性,相比于原本需要与权重一样大的矩阵来保存和更新重要性指标,稀疏训练需要更新的参数量大大减少。对比常用的稀疏训练算法,PST算法可以在仅更新1.5%的参数的情况下,达到相近的稀疏模型精度。

背景

近几年各大公司和研究机构提出了各式各样的大模型,这些大模型拥有的参数从百亿级别到万亿级别不等,甚至于已经出现十万亿级别的超大模型。这些模型需要耗费大量的硬件资源进行训练和部署,从而导致它们面对着难以落地应用的困境。因此,如何减少大模型训练和部署所需的资源成为了一个急需解决的问题。

模型压缩技术可以有效的减少模型部署所需的资源,其中稀疏通过移除部分权重,使得模型中的计算可以从稠密计算转换为稀疏计算,从而达到减少内存占用,加快计算速度的效果。同时,稀疏相比于其他模型压缩方法(结构化剪枝/量化),可以在保证模型精度的情况下达到更高的压缩率,更加合适拥有大量参数的大模型。

挑战

现有的稀疏训练手段可以分为两类,一类是基于权重的data-free稀疏算法;一类是基于数据的data-driven稀疏算法。基于权重的稀疏算法如下图所示,如magnitude pruning[1],通过计算权重的L1范数来评估权重的重要性,并基于此生成对应稀疏结果。基于权重的稀疏算法计算高效,无需训练数据参与,但是计算出来的重要性指标不够准确,从而影响最终稀疏模型的精度。

基于数据的稀疏算法如下图所示,如movement pruning[2],通过计算权重和对应梯度的乘积作为衡量权重重要性的指标。这类方法考虑到了权重在具体数据集上的作用,因此能够更加准确的评估权重的重要性。但是由于需要计算并保存各个权重的重要性,因此这类方法往往需要额外的空间来存储重要性指标(图中S)。同时相较于基于权重的稀疏方法,往往计算过程更加复杂。这些缺点随着模型的规模变大,会变得更加明显。

综上所述,之前的稀疏算法要么高效但是不够准确(基于权重的算法),要么准确但是不够高效(基于数据的算法)。因此我们期望提出一种高效的稀疏算法,能够准确且高效的对大模型进行稀疏训练。

破局

基于数据的稀疏算法的问题是它们一般会引入额外的与权重相同大小的参数来学习权重的重要性,这让我们开始思考如何减少引入的额外参数来计算权重的重要性。首先,为了能够最大化利用已有信息来计算权重的重要性,我们将权重的重要性指标设计成如下公式:

即我们结合了data-free和data-driven的指标来共同决定最终模型权重的重要性。已知前面data-free的重要性指标无需额外的参数来保存且计算高效,因此我们需要解决的就是如何压缩后面那项data-driven重要性指标所引入的额外训练参数。

基于之前的稀疏算法,data-driven重要性指标可以设计成

,因此我们开始分析通过该公式计算出来的重要性指标的冗余性。首先,基于之前的工作已知,权重和对应的梯度均具有明显的低秩性[3,4],因此我们可以推导出该重要性指标也具有低秩性,从而我们可以引入两个低秩小矩阵来表示原始与权重一样大的重要性指标矩阵。

其次,我们分析了模型稀疏后的结果,发现它们具有明显的结构性特征。如上图所示,每张图的右边是最终稀疏权重的可视化结果,左边是统计每一行/列对应稀疏率的直方图。可以看出,左边图有30%的行中的大部分权重都被移除了,反之,右边图有30%的列中的大部分权重都被移除了。基于这样的现象,我们引入了两个小结构化矩阵来评估权重每一行/列的重要性。

基于上述的分析,我们发现data-driven的重要性指标存在低秩性和结构性,因此我们可以将其转换成如下表示形式:

其中A和B表示低秩性,R和C表示结构性。通过这样的分析,原本和权重一样大的重要性指标矩阵就被分解成了4个小矩阵,从而大大减少了参与稀疏训练的训练参数。同时,为了进一步减少训练参数,我们基于之前的方法将权重的更新也分解成了两个小矩阵U和V,因此最后的重要性指标公式变成如下形式:

对应算法框架图如下所示:

最终PST算法实验结果如下,我们在NLU(BERT、RoBERTa)和NLG(GPT-2)任务上与magnitude pruning和movement pruning进行比较,在90%的稀疏率下,PST可以在大部分数据集上达到与之前算法相当的模型精度,但是仅需1.5%的训练参数。

PST技术已经集成在阿里云机器学习PAI的模型压缩库,以及Alicemind平台大模型稀疏训练功能中。为阿里巴巴集团内部落地使用大模型带来了性能加速,在百亿大模型PLUG上,PST相比于原本的稀疏训练可以在模型精度不下降的情况下,加速2.5倍,内存占用减少10倍。目前,阿里云机器学习PAI已经被广泛应用于各行各业,提供AI开发全链路服务,实现企业自主可控的AI方案,全面提升机器学习工程效率。

论文名字:Parameter-Efficient Sparsity for Large Language Models Fine-Tuning
论文作者:Yuchao Li , Fuli Luo , Chuanqi Tan , Mengdi Wang , Songfang Huang , Shen Li , Junjie Bai
论文pdf链接:https://arxiv.org/pdf/2205.11005.pdf

参考文献

[1] Song Han, Huizi Mao, and William J Dally. Deep compression: Compressing deep neural networks with pruning, trained quantization and huffman coding.
[2] Victor Sanh, Thomas Wolf, and Alexander M Rush. Movement pruning: Adaptive sparsity by fine-tuning.
[3] Edward J Hu, Yelong Shen, Phillip Wallis, Zeyuan Allen-Zhu, Yuanzhi Li, Shean Wang, Lu Wang, and Weizhu Chen. Lora: Low-rank adaptation of large language models.
[4] Samet Oymak, Zalan Fabian, Mingchen Li, and Mahdi Soltanolkotabi. Generalization guarantees for neural networks via harnessing the low-rank structure of the jacobian.

作者:李深、李与超

原文链接

本文为阿里云原创内容,未经允许不得转载。

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

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

相关文章

兼顾时尚与商务? ThinkPad Z 重新定义“商务本”

因为疫情等不确定因素,在过去三年中,混合办公模式已经成为职场的新常态。新一代工作族的商务办公笔记本不仅要随身携带完成日常工作,一些人还可能“身兼数职”,在工作之余也需要笔记本的配合。办公室里严谨、内敛商务本设计&#…

Go原生插件使用问题全解析

导言 本人在设计和落地基于Go原生插件机制的扩展开发产品时踩到了很多坑,由于这方面相关资料很少,因而借此机会做一个非常粗浅的总结,希望能对大家有所帮助。 本文只说问题和解决方案,不读代码。 一些背景知识 2.1 运行时 通…

从云计算到函数计算

从云计算到函数计算 函数计算,你的名字 云计算,是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机各种终端和其他设备,使用服务商提供的电脑基建作计算资源,因此用…

基于 OPLG 从 0 到 1 构建统一可观测平台实践

应用架构与可观测技术演进历程 在软件开发早期,单体应用架构因其结构简单,便于测试和部署,得到了广泛的应用,对应的监控诊断技术主要是基于日志和日志关键词的指标监控。随着软件复杂度的不断提升,单体应用架构逐步向分…

从运维到运维大神,只需要一个正确的选择

马上就是7月24日了,听群里的朋友说,7和24这两个数字是运维工作的最佳体现——7X24小时待命,所以咱们IT人将这一天自定义为“运维日”。 对于运维工作来说,想要在黑天鹅横飞,灰犀牛直撞的当下,既能独善其身…

主流定时任务解决方案全横评

定时任务作为一种按照约定时间执行预期逻辑的通用模式,在企业级开发中承载着丰富的业务场景,诸如后台定时同步数据生成报表,定时清理磁盘日志文件,定时扫描超时订单进行补偿回调等。 程序开发人员在定时任务领域有着诸多框架和方…

基于阿里云 Serverless 函数计算开发的疫情数据统计推送机器人

一、Serverless函数计算 什么是Serverless? 在《Serverless Architectures》中对 Serverless 是这样子定义的: Serverless was first used to describe applications that significantly or fully incorporate third-party, cloud-hosted applications…

看 Serverless Task 如何解决任务调度可观测性中的问题

在上篇文章《解密函数计算异步任务能力之「任务的状态及生命周期管理」》中,我们介绍了任务系统的状态管理,并介绍了用户应如何根据需求,对任务状态信息进行实时的查询等操作。在本篇中我们将会进一步走进函数计算异步任务,介绍异…

B站每日自动签到传统单节点网站的 Serverless 上云

什么是函数?刚刚考完数学没多久的我,脑力里立马想到的是自变量、因变量、函数值,也就是yf(x)。当然,在计算机里,函数function往往指的是一段被定义好的代码程序,我们可以通过传参调用这个定义好的函数&…

通过部署流行 Web 框架掌握 Serverless 技术

大家好,我是霍大侠,这个系列课程我们通过部署流行web框架,来学习掌握serverless的技术和架构。课程主要从实践介绍,实践演示,分析详解三个大的章节来一步一步学习。 前言 进入实验室-动手实践 点击下面链接进入阿里云…

一首歌的时间,手把手搭建基于FC的网站

部署网站 说好不哭 在接触serverless架构之前,我们如果想实现上线一个Web网站,就要在开发前期经过操作很多冗杂但又必须的步骤,不少小白可谓是快速的从入门到退坑。 编写代码,部署应用,部署数据库,申请域…

PolarDB-X 源码解读:事务的一生

概述 本文将主要解读 PolarDB-X 中事务部分的相关代码,着重解读事务的一生在计算节点(CN)中的关键代码:从开始、执行、到最后提交这一整个生命周期。 在阅读本文前,强烈推荐先阅读与 PolarDB-X 事务系统相关的文章&a…

阿里云云原生一体化数仓 — 湖仓一体新能力解读

一、基于 MaxCompute 的湖仓一体架构更新 基于MaxCompute 云数据仓库的湖仓一体架构近期进行架构升级。了解 MaxCompute 的同学可能比较清楚,MaxCompute 有两层结构,需要先创建 Project ,在 Project 里面创建表、资源等。传统数据库&#xf…

DM8168 DVRRDK软件框架研究

DM8168 DVRRDK软件框架研究 2016-07-26 11:39 72人阅读 评论(0) 收藏 举报分类:DM8168(18) Netra(DM8168)处理器是个多核处理器,每个核之间相互独立却又相互关联,如何高效简洁地利用每个核完成一…

基于函数计算自定义运行时快速部署一个 Springboot 项目

什么是函数计算? 函数计算是事件驱动的全托管计算服务。使用函数计算,您无需采购与管理服务器等基础设施,只需编写并上传代码。函数计算为您准备好计算资源,弹性地可靠地运行任务,并提供日志查询、性能监控和报警等功…

FFmpeg源代码简单分析:avformat_open_input()

登录 | 注册 收藏成功 确定收藏失败,请重新收藏 确定标题 标题不能为空网址 标签 摘要 公开 取消收藏 查看所有私信查看所有通知 暂没有新通知返回通知列表 下一条 上一条 分享资讯传PPT/文档提问题写博客传资源创建项目创建代码片baidu_34732018编辑自我介绍&…

硬之城携手阿里云 Serverless 应用引擎(SAE)打造低代码平台

硬之城成立于 2015 年,是一家以电子元器件 BOM 整体供应为核心,为中小科技型硬件企业提供 BOM 标准化、BOM 报价、BOM 采购、BOM 交付和 SMT 一站式 PCBA 服务的电子产业数字供应链与智能制造平台。 电子产业互联网的需求是离散和复杂多变的&#xff0c…

阿里云 Serverless 异步任务处理系统在数据分析领域的应用

异步任务处理系统中的数据分析 数据处理、机器学习训练、数据统计分析是最为常见的一类离线任务。这类任务往往都是经过了一系列的预处理后,由上游统一发送到任务平台进行批量训练及分析。在处理语言方面,Python 由于其所提供的丰富的数据处理库&#x…

代码重构:面向单元测试

重构代码时,我们常常纠结于这样的问题: 需要进一步抽象吗?会不会导致过度设计?如果需要进一步抽象的话,如何进行抽象呢?有什么通用的步骤或者法则吗? 单元测试是我们常用的验证代码正确性的工具…

如何把 thinkphp5 的项目迁移到阿里云函数计算来应对流量洪峰?

1. 为什么要迁移到阿里云函数? 我的项目是一个节日礼品领取项目,过节的时候会有短时间的流量洪峰。平时访问量很低。之前的架构是购买的阿里云alb多台ecs云msyql云redis。最大的问题就是成本问题。平时流量低的时候ecs成本也无法缩减。 阿里云函数计算…