量化、剪枝、蒸馏,这些大模型黑话到底说了些啥?

扎克伯格说,Llama3-8B还是太大了,不适合放到手机中,有什么办法?

量化、剪枝、蒸馏,如果你经常关注大语言模型,一定会看到这几个词,单看这几个字,我们很难理解它们都干了些什么,但是这几个词对于现阶段的大语言模型发展特别重要。这篇文章就带大家来认识认识它们,理解其中的原理。

模型压缩

量化、剪枝、蒸馏,其实是通用的神经网络模型压缩技术,不是大语言模型专有的。

模型压缩的意义

通过压缩,模型文件会变小,其使用的硬盘空间也会变小,加载到内存或者显存时使用的缓存空间也会变小,并且模型的运行速度还可能会有一些提高。

通过压缩,使用模型将消耗更少的计算资源,这可以极大的扩展模型的应用场景,特别是对模型大小和计算效率比较关注的地方,比如手机、嵌入式设备等。

压缩的是什么?

压缩的是模型的参数,模型的参数又是什么呢?

你可能听说过现在的机器学习使用的都是神经网络模型,神经网络模型就是模拟人的大脑中的神经网络。

简单起见,只描述三个神经元:A1、A2、A3,每个神经元都会接收别的神经元的信号,也会将信号传递给别的神经元。

其中A3会接收A1、A2传递过来的信号I_A1、I_A2,但是A3接收A1、A2信号的强度是不一样的(这个强度称为“权重”),假设这里的强度分别是W_13和W_23,A3会对接收到信号数据进行加工:

  • 首先对信号进行加权求和,也就是 I_A1_W_13+I_A2_W_23,
  • 然后再加上A3自己的一个参数 B_3(称为“偏置”),
  • 最后再把这个数据和转换为特定的形式,并把转换后的信号再发给下一个神经元。

在这个信号数据的加工过程中,用到的权重(W_13、W_23)和偏置( B_3 )就是模型的参数,当然模型还有其它一些参数,不过权重和偏置一般是所有参数中的大头,如果用二八原则来划分,应该都在80%以上。

使用大语言模型生成文本时,这些参数都已经是预训练好的,我们并不能对它们进行修改,这就像数学中多项式的系数,我们只能传递未知数xyz进去,然后得到一个输出结果。

模型压缩就是对模型的这些参数进行压缩处理,首要考虑的主要就是权重和偏置,使用的具体方法就是本文重点要介绍的量化、剪枝和蒸馏。

量化

量化就是降低模型参数的数值精度,比如最开始训练出的权重是32位的浮点数,但是实际使用发现用16位来表示也几乎没有什么损失,但是模型文件大小降低一般,显存使用降低一半,处理器和内存之间的通信带宽要求也降低了,这意味着更低的成本、更高的收益。

这就像按照菜谱做菜,你需要确定每种食材的重量。你可以使用一个非常精确的电子秤,它可以精确到0.01克,这固然很好,因为你可以非常精确地知道每样食材的重量。但是,如果你只是做一顿家常便饭,实际上并不需要这么高的精度,你可以使用一个简单又便宜的秤,最小刻度是1克,虽然不那么精确,但是足以用来做一顿美味的晚餐。

量化还有一个好处,那就是计算的更快。现代处理器中通常都包含了很多的低精度向量计算单元,模型可以充分利用这些硬件特性,执行更多的并行运算;同时低精度运算通常比高精度运算速度快,单次乘法、加法的耗时更短。这些好处还让模型得以运行在更低配置的机器上,比如没有高性能GPU的普通办公或家用电脑、手机等移动终端。

沿着这个思路,人们继续压缩出了8位、4位、2位的模型,体积更小,使用的计算资源更少。不过随着权重精度的降低,不同权重的值会越来越接近甚至相等,这会降低模型输出的准确度和精确度,模型的性能表现会出现不同程度的下降。

量化技术有很多不同的策略和技术细节,比如如动态量化、静态量化、对称量化、非对称量化等,对于大语言模型,通常采用静态量化的策略,在模型训练完成后,我们就对参数进行一次量化,模型运行时不再需要进行量化计算,这样可以方便地分发和部署。

剪枝

剪枝就是去掉模型中不重要的或者很少会用到的权重,这些权重的数值一般都接近于0。对于某些模型,剪枝可以产生比较高的压缩比,让模型更加紧凑和高效。这对于在资源受限的设备上或者内存和存储有限的情况下部署模型特别有用。

剪枝还会增强模型的可解释性。通过删除不必要的组件,剪枝使模型的底层结构更加透明且更易于分析。这对于理解神经网络等复杂模型的决策过程十分重要。

剪枝不仅涉及权重参数的剪枝,还可以剪除某些神经元节点,如下图所示:

注意剪枝并非适合所有的模型,对于一些稀疏模型(大部份参数都为0或者接近于0),剪枝可能没什么效果;对于一些参数比较少的小型模型,剪枝可能导致模型性能的明显下降;对于一些高精度的任务或者应用,也不适合对模型进行剪枝,比如医疗诊断这种人命关天的事。

在实际运用剪枝技术时,通常需要综合考虑剪枝对模型运行速度的提升和对模型性能的负面影响,采取一些策略,比如给模型中的每个参数打分,也就是评估参数对模型性能的贡献有多大。分数高的,就是绝对不能剪掉的重要参数;分数低的,就是可能不那么重要,可以考虑剪掉的参数。这个分数可以通过各种方法计算,比如看参数的大小(绝对值大的通常更重要),或者通过一些更复杂的统计分析方法来确定。

蒸馏

蒸馏就是把大模型学习到的概率分布直接复制到一个小模型中。被复制的模型称为教师模型,一般是参数量较大、性能很强的优秀模型,新模型称为学生模型,一般是参数比较少的小模型。

蒸馏时,教师模型会根据输入生成多个可能输出的概率分布,然后学生模型学习这个输入和输出的概率分布情况。经过大量训练,学生模型就可以模仿教师模型的行为,或者说学习到了教师模型的知识。

比如在图像分类任务中,给出一张图,教师模型可能会输出类似如下的概率分布:

  • 猫:0.7
  • 狗:0.4
  • 车:0.1

然后把这张图和输出的概率分布信息一起提交给学生模型进行模仿学习。

因为蒸馏是把教师模型的知识压缩到一个更小更简单的学生模型中,新的模型可能会丢失一些信息;另外学生模型可能过度依赖教师模型,导致模型的泛化能力不佳。

为了让学生模型的学习效果更好,我们可以采用一些方法和策略。

引入温度参数:假设有一位老师讲课速度非常快,信息密度很高,学生可能有点难以跟上。这时如果老师放慢速度,简化信息,就会让学生更容易理解。在模型蒸馏中,温度参数起到的就是类似“调节讲课速度”的作用,帮助学生模型(小模型)更好地理解和学习教师模型(大模型)的知识。专业点说就是让模型输出更加平滑的概率分布,方便学生模型捕捉和学习教师模型的输出细节。

调整教师模型和学生模型的结构: 一个学生想要从一个专家那里学点东西可能是很难的,因为他们之间的知识差距太大,直接学习可能会听不懂,这时候可以在中间加入一个老师,它既能理解专家的话,又能转化为学生可以听懂的语言。中间加入的这个老师可能是一些中间层或者辅助神经网络,或者这个老师可以对学生模型进行一些调整,让它能更匹配教师模型的输出。


上边我们介绍了三种主要的模型压缩技术,其实这里边还有很多的细节,不过对于理解原理差不多已经够了,也还有其它一些模型压缩技术,比如低秩分解、参数共享、稀疏连接等,有兴趣的同学可以多去查查相关内容。

另外模型压缩后,其性能可能会出现比较明显的下降,此时我们可以对模型进行一些微调,特别是一些对模型精度要求比较高的任务,比如医学诊断、金融风控、自动驾驶等,微调可以让模型的性能得到一定的恢复,稳固其在某些方面的准确性和精确性。

那么,我们该如何学习大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

一、大模型全套的学习路线

学习大型人工智能模型,如GPT-3、BERT或任何其他先进的神经网络模型,需要系统的方法和持续的努力。既然要系统的学习大模型,那么学习路线是必不可少的,下面的这份路线能帮助你快速梳理知识,形成自己的体系。

L1级别:AI大模型时代的华丽登场

L2级别:AI大模型API应用开发工程

L3级别:大模型应用架构进阶实践

L4级别:大模型微调与私有化部署

一般掌握到第四个级别,市场上大多数岗位都是可以胜任,但要还不是天花板,天花板级别要求更加严格,对于算法和实战是非常苛刻的。建议普通人掌握到L4级别即可。

以上的AI大模型学习路线,不知道为什么发出来就有点糊,高清版可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

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

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

相关文章

笔记99:OSQP 求解器示例代码

注1:以下代码是 OSQP 的官方文档提供的示例,我加上了详细的注释; 注2:OSQP 库仅支持C语言,不支持C,所以下面的示例代码使用的是C语言;但是 OSQP 求解库提供了针对C的接口 OSQP-EIGEN&#xff1…

DockerCompose+Jenkins+Pipeline流水线打包Vue项目(解压安装配置Node)入门

场景 DockerComposeJenkinsPipeline流水线打包SpringBoot项目(解压安装配置JDK、Maven等)入门: DockerComposeJenkinsPipeline流水线打包SpringBoot项目(解压安装配置JDK、Maven等)入门-CSDN博客 以上使用流水线配置和打包springboot后台项目,如果要使…

redis未授权getshell整合利用

一、redis环境搭建 Redis下载地址:http://download.redis.io/releases/redis-4.0.2.tar.gz 1.靶机安装redis-centos7 第一步:下载wget yum -y install wget 第二步:下载redis wget http://download.redis.io/redis-stable.tar.gz 第三步&a…

Ajax的应用

1. Ajax Ajax是Asynchronous Javascript And XML(异步JavaScript和XML)的缩写。 Ajax技术描述了使用脚本操纵HTTP和Web服务器进行数据交换,在页面不刷新的情况下,实现页面的局部更新。 重点: Ajax 是一种在无需重新加…

界面组件DevExpress Office File API - 如何用OpenAI增强文档可访问性(二)

DevExpress Office File API是一个专为C#, VB.NET 和 ASP.NET等开发人员提供的非可视化.NET库。有了这个库,不用安装Microsoft Office,就可以完全自动处理Excel、Word等文档。开发人员使用一个非常易于操作的API就可以生成XLS, XLSx, DOC, DOCx, RTF, CS…

深度学习500问——Chapter10:迁移学习(4)

文章目录 11.3.8 流形学习方法 11.3.9 什么是finetune 11.3.10 finetune为什么有效 11.3.11 什么是网络自适应 11.3.12 GAN在迁移学习中的应用 参考文献 11.3.8 流形学习方法 什么是流行学习? 流行学习自从2000年在Science上被提出来以后,就成为了机器…

webstorm yarn环境配置

1. 安装nodejs https://nodejs.cn/download/ 2. 安装npm npm i yarn -g3.下载并安装webstorm https://www.jetbrains.com/webstorm/ 4. 打开settings确认node和yarn的配置正确5. 打开项目更新包 yarn install

IntelliJ IDEA 用maven创建web项目

前言 已经安装并配置好Tomcat。具体步骤:Tomcat安装及环境变量配置(一看就会)-CSDN博客​编辑https://blog.csdn.net/longyongyyds/article/details/135825647 具体步骤 1.新建一个maven项目 2,配置好tomcat服务器 3.运行测试一下 maven教程&#xf…

Redisson原理解析

Hi~!这里是奋斗的小羊,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~ 💥💥个人主页:奋斗的小羊 💥💥所属专栏:C语言 🚀本系列文章为个人学习…

2024大交通场景空间策展洞察报告

来源:邻汇吧&万一商管 近期历史回顾: 2024国内工商业储能市场研究报告.pdf 2023幸福企业白皮书.pdf 2024年欧亚地区移动经济报告.pdf 内容供应链变革 2023人工智能与首席营销官(CMO) AI科技对PC产业的影响.pdf 金融业数据应用…

Vitis HLS 学习笔记--Vitis Accelerated Libraries介绍

1. 简介 Vitis Accelerated Libraries,包含很多现成的库,这些库都是开源的,也就是说代码是公开的,而且已经优化过,可以让程序运行得更快。你不需要改变太多你的代码,就能让你的程序速度提升。 这些库有很…

2024年GIS大赛奖金盘点,看看哪家最香?

之前盘点过2024年值得参加的GIS比赛,点这里回顾。 今天我们重点盘点一下不同比赛的奖项设置和奖金,排名不分先后。 全国高校GlS技能大赛 1. 比赛介绍: http://contest.gisera.com/view_191.html 2. 奖项/奖金设置: 获奖者颁…

ListView的使用

📖ListView的使用 ✅1. 创建ListView✅2. 创建适配器Adapter✅3. 开始渲染数据 主要3步骤: 创建ListView 创建适配器Adapter,和Adapter对应的视图 开始渲染数据 效果图: ✅1. 创建ListView 例如现有DemoActivity页面&#xf…

自动控制:滑模控制(Sliding Mode Control, SMC)

自动控制:滑模控制(Sliding Mode Control, SMC) 滑模控制(Sliding Mode Control, SMC)是一种在处理非线性系统时非常有效的控制技术。它通过驱动系统状态达到并保持在特定的滑模面附近,来实现控制目标。本文将介绍滑模控制的基本…

四川赤橙宏海商务信息咨询有限公司靠谱吗?

在数字化浪潮席卷而来的今天,电商行业正经历着前所未有的变革。四川赤橙宏海商务信息咨询有限公司,凭借其深厚的行业经验和敏锐的市场洞察力,专注于抖音电商服务领域,致力于为广大商家提供全方位、高效益的电商解决方案。 赤橙宏…

OpenGL3.3_C++_Windows(3)

GLSL Shader基础 Shader(把输入转化为输出,运行在GPU上):首先要声明版本,有各自的入口点main()顶点数据上限:16个包含4分量:16 * 4 64个分量向量:容器vec。使用.x、.y、.z和.w&am…

算法day27

第一题 515. 在每个树行中找最大值 首先是遍历每层的节点,将每一层最大值的节点的值保留下来,最后将所有层的最大值的表返回;具体的遍历每层节点的过程如上一篇故事; 综上所述,代码如下: /*** Definition …

HTML静态网页成品作业(HTML+CSS)—— 零食商城网页(1个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有1个页面。 二、作品演示 三、代…

同三维T80005EH4 H.265 4路高清HDMI编码器

同三维T80005EH4 H.265 4路高清HDMI编码器 4路HDMI输入2路3.5音频输入,第1路和第2路HDMI可支持4K30,其它支持高清1080P60 产品简介: 同三维T80005EH4 4路HDMI高清H.265编码器采用最新高效H.265高清数字视频压缩技术,具备稳定…

SQL Server 2022 RTM 最新累积更新:Cumulative Update #13 for SQL Server 2022 RTM

SQL Server 2022 RTM (最新累积更新) - 基于 Azure 的持续性能和安全创新 Cumulative Update #13 for SQL Server 2022 RTM 请访问原文链接:https://sysin.org/blog/sql-server-2022/,查看最新版。原创作品,转载请保留出处。 作者主页&…