LLMs 蒸馏, 量化精度, 剪枝 模型优化以用于部署 Model optimizations for deployment

news2025/1/4 19:24:41

在这里插入图片描述

现在,您已经了解了如何调整和对齐大型语言模型以适应您的任务,让我们讨论一下将模型集成到应用程序中需要考虑的事项。
在这里插入图片描述

在这个阶段有许多重要的问题需要问。第一组问题与您的LLM在部署中的功能有关。您需要模型生成完成的速度有多快?您有多少计算预算可用?您是否愿意为改善推理速度或降低存储空间而牺牲模型性能?
在这里插入图片描述

第二组问题与您的模型可能需要的额外资源有关。您是否打算让您的模型与外部数据或其他应用程序进行交互?如果是的话,您将如何连接到这些资源?
在这里插入图片描述

最后,还有一个问题,即您的模型将如何被使用。您的模型将通过什么样的预期应用程序或API界面来使用?

让我们首先探讨一些在将模型部署到推理之前用于优化模型的方法。
在这里插入图片描述

虽然我们可以将几节课用于讨论这个主题,但本节的目标是为您介绍最重要的优化技术。大型语言模型在计算和存储要求方面提出了推理挑战,以及确保消费应用程序具有低延迟。无论是在本地部署还是部署到云上,当部署到边缘设备时,这些挑战都会更加突出。
在这里插入图片描述

提高应用程序性能的主要方法之一是减小LLM的大小。这可以允许模型更快地加载,从而减少推理延迟。但是,挑战在于在保持模型性能的同时减小模型的大小。对于生成模型,某些技术比其他技术效果更好,准确性和性能之间存在权衡。在本节中,您将了解三种技术。

蒸馏使用一个较大的模型,即教师模型,来训练一个较小的模型,即学生模型。然后,您可以使用较小的模型进行推理,以降低存储和计算预算。与量化感知训练类似,后期训练量化将模型的权重转换为较低精度的表示,例如16位浮点或8位整数。如您在课程第一周学到的那样,这会减小模型的内存占用。第三种技术,模型修剪,删除了对模型性能贡献不大的冗余模型参数。让我们更详细地讨论这些选项。
在这里插入图片描述

模型蒸馏是一种侧重于使用较大的教师模型来训练较小的学生模型的技术。学生模型学会统计上模仿教师模型的行为,可以是在最终预测层或模型的隐藏层中。
在这里插入图片描述

这里我们将重点放在第一种选项上。您可以使用您的微调LLM作为教师模型,为学生模型创建一个较小的LLM。您冻结教师模型的权重,并使用它来为您的训练数据生成完成。同时,您使用学生模型为训练数据生成完成。通过最小化称为蒸馏损失的损失函数来实现教师和学生模型之间的知识蒸馏。为了计算这个损失,蒸馏使用了由教师模型的softmax层产生的标记概率分布。
在这里插入图片描述

现在,教师模型已经在训练数据上进行了微调。因此,概率分布可能与基本事实数据非常接近,标记中的令牌不会有太大的变化。这就是为什么蒸馏应用了一个小技巧,即在softmax函数中添加温度参数。如您在第一课中学到的,温度越高,模型生成的语言的创造力就越大。
在这里插入图片描述

通过一个大于一的温度参数,概率分布变得更广泛,峰值不那么尖锐。
在这里插入图片描述

这种较软的分布为您提供了一组与基本事实标记相似的标记。

在蒸馏的上下文中,教师模型的输出通常被称为软标签,
在这里插入图片描述

学生模型的预测被称为软预测。
在这里插入图片描述

同时,您训练学生模型生成基于您的基本事实训练数据的正确预测。在这里,您不会改变温度设置,而是使用标准的softmax函数。蒸馏将学生和教师模型之间的损失和学生损失结合起来,通过反向传播来更新学生模型的权重。
在这里插入图片描述

蒸馏方法的关键好处是可以在部署中使用较小的学生模型,而不是教师模型。
在这里插入图片描述

在实践中,蒸馏对生成解码器模型通常不太有效。通常对仅编码器模型,如具有大量表示冗余的Bert模型,更有效。请注意,使用蒸馏,您训练了一个第二个较小的模型,用于推理。您没有以任何方式减小初始LLM的模型大小。

接下来,让我们看看下一个可以实际减小LLM大小的模型优化技术。在第一周,您已经在培训的上下文中介绍了第二种方法,即量化感知训练Specifically Quantization Aware Training,简称QAT。
在这里插入图片描述

然而,一旦模型训练完毕,您可以执行后期训练量化Post Training quantization,简称PTQ,以优化部署。PTQ将模型的权重转换为较低精度的表示,例如16位浮点或8位整数,以减小模型大小和内存占用,以及模型服务所需的计算资源。一般来说,包括激活的量化方法对模型性能的影响较大。
在这里插入图片描述

量化还需要额外的校准步骤,以统计捕获原始参数值的动态范围。
在这里插入图片描述

与其他方法一样,存在权衡,因为有时量化会导致模型评估指标略微下降。然而,这种降低通常可以抵消成本节省和性能提高的成本。

最后一个模型优化技术是修剪Pruning。在高层次上,目标是通过消除对总体模型性能贡献不大的权重来减小推理的模型大小。这些权重的值非常接近或等于零。请注意,一些修剪方法需要对模型进行全面重新训练,而其他方法属于参数高效微调的范畴,例如LoRA。还有一些方法专注于后期修剪。在理论上,这可以减小模型的大小并提高性能。然而,在实践中,如果只有一小部分模型权重接近零,那么模型的大小和性能可能没有太大影响。
在这里插入图片描述

量化、蒸馏和修剪都旨在减小模型大小,以提高推理时的模型性能,而不影响准确性。优化您的模型以供部署将有助于确保您的应用程序运行良好,并为用户提供最佳体验。

Reference

https://www.coursera.org/learn/generative-ai-with-llms/lecture/qojKp/model-optimizations-for-deployment

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

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

相关文章

Linux深度学习:除基本命令操作外的实用操作

Linux深度学习:除基本命令操作外的实用操作 软件安装systemctl软连接日期、时区IP地址、主机名网络传输下载和网络请求端口 进程管理主机状态系统资源监控磁盘信息监控网络状态监控 环境变量上传、下载压缩、解压root用户、用户、用户组管理查看、修改权限控制 软件…

windows动态配置多个JDK遇到的问题

环境变量配置如下:问题:当切换JAVA_HOME 为%JAVA17_HOME%,查看java版本还是java 11。 我检查path配置发现这个路径 删除这个路径配置,再切换JAVA_HOME的配置, 查看版本号这时就可以了

使用Python抓取某音数据详细步骤

某音作为当今最受欢迎的短视频平台之一,吸引了亿万用户的眼球。但是,你是否曾经想过如何通过Python来抓取某音数据?本文将揭示这个秘密,并分享使用Python来抓取某音数据的实用技巧,帮助你深入了解背后的数据世界。 第一…

【Go】excelize库实现excel导入导出封装(一),自定义导出样式、隔行背景色、自适应行高、动态导出指定列、动态更改表头

前言 最近在学go操作excel,毕竟在web开发里,操作excel是非常非常常见的。这里我选择用 excelize 库来实现操作excel。 为了方便和通用,我们需要把导入导出进行封装,这样以后就可以很方便的拿来用,或者进行扩展。 我参…

uni-app:服务器端数据绘制echarts图标(renderjs解决手机端无法显示问题)

效果 代码 <template><view click"echarts.onClick" :prop"option" :change:prop"echarts.updateEcharts" id"echarts" class"echarts"></view> </template><script>export default {data()…

MDK(Keil)的MAP文件都记录了啥

1.Section Cross References&#xff1a;译为各区域的交叉参考&#xff0c;记录了每个C文件调用了哪些其它文件的函数&#xff0c;内容很多所以这个部分相当长 2.Removing Unused input sections from the image&#xff1a;移除未使用的输入部分&#xff0c;记录哪些文件的哪些…

Quarto 入门教程 (2):如何使用并编译出不同文档

接着上一期内容&#xff1a;手把手教你使用 Quarto 构建文档 (1)&#xff0c;本文介绍如何使用 Quarto&#xff0c;并编译出文档&#xff08;PDF&#xff0c;MS Word&#xff0c;html&#xff09;等。 安装 根据官方链接&#xff0c;选择适合自己电脑的 Quarto 版本并下载&am…

【开发篇】二十一、SpringBoot整合Kafka

文章目录 1、整合2、消息的生产3、消费4、补充&#xff1a;安装 Kafka主体不是用来做消息中间件的&#xff0c;但也有这个功能&#xff0c;接下来整合Kafka 1、整合 导入依赖坐标&#xff1a; <dependency> <groupId>org.springframework.kafka</groupId&g…

聚观早报 | 微软将推出首款AI芯片;Galaxy S24系列首发

【聚观365】10月8日消息 微软将推出首款AI芯片 Galaxy S24系列首发 特斯拉将发布第三季度财报 台积电9月份营收56亿美元 2023国庆档新片总票房破27亿 微软将推出首款AI芯片 据外媒援引知情人士消息透露&#xff0c;微软计划在下个月举行的年度开发者大会上推出该公司首款…

【PG】Linux系统部署PostgreSQL 单机数据库

安装方式 1 安装包方式 &#xff08;Packages and Installers&#xff09; 支持的操作系统包括 liunxMacosWindowsBSDSolaris 2 源码安装 &#xff08;Source code&#xff09; 下载源码包 通过下载地址PostgreSQL: File Browser 可以看到有各个版本的源码目录 选择13.1…

80、90童年回忆之小霸王游戏机网页版

前言 在如今快节奏的生活中&#xff0c;我们常常追逐着最新潮流&#xff0c;迷失了曾经的经典与回忆。现在&#xff0c;有一种游戏机能够带你回到小时候&#xff0c;让你重温那些令人难以忘怀的游戏时光&#xff0c;这就是小霸王游戏机&#xff01; 作为 80 年代和 90 年代最受…

对于复杂二进制数位dp问题考虑朴素思想:agc015d

https://atcoder.jp/contests/agc015/tasks/agc015_d 我一开始考虑的是直接上二进制数位dp&#xff0c;但发现这很难做 然后其实可以从最朴素的二进制分类讨论角度考虑 同样是那么几个套路&#xff0c;考虑最高位

AXI总线协议基础--几分钟熟悉通道信号和基础架构

目录 一、AXI协议基础 1.1读写通道的基本架构图 1.2猝发操作举例 1.3传输顺序 二、各个通道中的信号描述 2.1全局信号 2.2写地址通道信号 2.3写数据通道信号 2.4写响应通道信号 2.5读地址通道信号 2.6读数据通道 三、通道握手 3.1单一信息传输时的握手过程 3.2不…

NPM 常用命令(九)

目录 1、npm link 1.1 使用语法 1.2 描述 2、npm login 2.1 描述 3、npm logout 3.1 描述 4、npm ls 4.1 使用语法 4.2 描述 5、npm org 5.1 使用语法 5.2 示例&#xff1a; 6、npm outdated 6.1 使用语法 6.2 描述 6.3 示例 7、npm owner 7.1 使用语法 7.2…

使用Spring Initailizr功能~

Spring Initializr是一个用于快速生成Spring Boot项目的在线工具&#xff0c;它允许用户选择所需的Spring Boot版本、添加所需的依赖&#xff0c;并生成一个可用的项目结构&#xff0c;包括基本的配置文件和代码框架&#xff0c;它能够简化Spring Boot项目的初始化过程&#xf…

高通camx开源部分简介

camera整体框架 ISP Pipeline diagram Simple Model Camx and chi_cdk 整体框架 CtsVerifier, Camra Formats Topology of Camera Formats. Topology (USECASE: UsecaseVideo) Nodes List Links between nodes Pipeline PreviewVideo Buffer manager Create Destro…

Centos7安装Redis7.x最新稳定版|配置开机启动(骨灰级|保姆级)

Python3中类的高级语法及实战 Python3(基础|高级)语法实战(|多线程|多进程|线程池|进程池技术)|多线程安全问题解决方案 Python3数据科学包系列(一):数据分析实战 Python3数据科学包系列(二):数据分析实战 Python3数据科学包系列(三):数据分析实战 Win11查看安装的Python路…

数据丢失怎么办?分享3个神仙方法!

“紧急求解答&#xff01;数据丢失了怎么用简单的方法恢复呀&#xff1f;电脑中保存了一些非常重要的数据&#xff0c;不知道怎么就不见了。有没有方法帮我找回来呀&#xff1f;” 在日常办公中&#xff0c;很多用户会将重要的数据保存在电脑中。这样有利于在需要时及时使用文件…

苹果iTunes如何备份数据?按照这几个步骤就可以了!

iTunes是什么&#xff1f;苹果iTunes是辅助用户使用苹果设备的一款功能强大的应用程序。使用过iTunes的苹果用户应该都不陌生&#xff0c;用户可以在iTunes上管理并播放音乐、电影、电视节目等媒体文件。此外&#xff0c;用户还可以通过iTunes来备份手机上的数据。 那么&#…

《低代码指南》——低代码维格云服务菜单

简介​ 快速了解付费客户能够获得维格服务团队哪些服务,本篇内容不包含使用免费试用版本的客户。 了解维格表产品价格与功能权益:戳我看价格与权益​ 客户付费后能得到哪些服务项目?​ 常规服务项目: