模型压缩与部署-书生浦语大模型实战营学习笔记5&大语言模型11
大语言模型-11.模型压缩与部署
书生浦语大模型实战营学习笔记4-模型压缩与部署
本文包括第二期实战营的第5课内容,介绍关于模型压缩的相关内容,主要包括、模型量化和模型部署的相关内容。
模型部署
定义:在软件工程中,部署通常指的是将开发完毕的软件投入使用的过程。在人工智能领域,模型部署是实现深度学习算法落地应用的关键步骤。简单来说,模型部署就是将训练好的深度学习模型在
特定环境中运行的过程。
场景:
- 服务器端:CPU部署,单GPU/TPU/NPU部署,多卡/集群部署等
- 移动端/边缘端:移动机器人,手机等
模型部署的挑战
前向推理计算量大
大模型参数量巨大,前向推理时需要进行大量计算。
这里给出大模型前向推理所需计算量计算公式:
Kaplan J, McCandlish S, Henighan T, et al. Scaling laws for neural language models[J]. arXiv preprint arXiv:2001.08361, 2020.
\]
其中,\(N\)为模型参数量,\(n_{layer}\)为模型层数,\(n_{ctx}\)为上下文长度(默认1024),d_{attn}为注意力输出维度。单位:FLOPs per Token
根据OpenAl团队提供的计算量估算方法,20B模型每生成1个token,就要进行约406亿次浮点运算;照此计算,若生成128个token,就要进行5.2万亿次运算。若模型参数规模达到175B(GPT-3),Batch-Size(Bs)再大一点,每次推理计算量将达到千万亿量级。
以NVIDIA A100为例,单张理论FP16运算性能为每秒77.97 TFLOPS(77万亿),性能捉紧。
内存(显存)开销大
\]
模型权重加载开销
以FP16为例,20B模型仅加载参数就需40G+显存。
目前,以NVIDIA RTX 4060消费级显卡为例(参考零售价¥2399),单卡显存仅有8GB;NVIDIA A100单卡显存仅有80GB。
KV cache
这里的KV指的就是Transformer执行注意力时的key和value。kv缓存是为了避免每次采样token时重新计算键值向量。利用预先计算好的k值和v值,可以节省大量计算时间,尽管这会占用一定的存储空间。
同样地,这里给出 KV cache 显存占用估算公式:
\]
其中,\(b\)为batch-size,\(n_{layer}\)为模型层数,d_{attn}为注意力输出维度,\(s\)为输入序列长度,\(n\)为输出序列长度。单位:字节(B)。这前面的系数“4”是因为有k和v这两个向量,而一个fp16向量就占2个字节,并且网络每一层都要缓存这么多个向量,每个向量大小都为\(d_{attn} \times (s+n)\)
以FP16为例,在batch-size为16、输入512 tokens、输出32 tokens的情境下,仅20B模型就会产生10.3GB的缓存。
访存瓶颈
大模型推理是“访存密集”型任务。目前硬件计算速度“远快于”显存带宽,存在严重的访存性能瓶颈,。
以RTX 4090推理175B大模型为例,BS为1时计算量为6.83TFLOPS,远低于82.58 TFLOPs的FP16计算能力:但访存量为32.62 TB,是显存带宽每秒处理能力的30倍。
动态请求
- 请求量不确定;
- 请求时间不确定;
- Token逐个生成,生成数量不确定
这会导致GPU资源利用率下降,导致资源浪费
模型剪枝

知识蒸馏

模型量化

模型量化的加速原理并非利用了计算整数比浮点数快,因为实际上量化是以“浮点数量化、整数存储”的方式进行的。这种方式虽然增加了整数反量化到浮点数时的计算量,但是减小了内存的访存量,降低了数据传输所需时间,提升了计算效率。
模型压缩与部署-书生浦语大模型实战营学习笔记5&大语言模型11的更多相关文章
- C语言中setjmp与longjmp学习笔记
C语言中setjmp与longjmp学习笔记 一.基础介绍 头文件:#include<setjmp.h> 原型: int setjmp(jmp_buf envbuf) ,然而longjm ...
- 【学习笔记】大数据技术原理与应用(MOOC视频、厦门大学林子雨)
1 大数据概述 大数据特性:4v volume velocity variety value 即大量化.快速化.多样化.价值密度低 数据量大:大数据摩尔定律 快速化:从数据的生成到消耗,时间窗口小,可 ...
- 【大数据】Sqoop学习笔记
第1章 Sqoop简介 Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql.postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MyS ...
- Coursera台大机器学习基础课程学习笔记1 -- 机器学习定义及PLA算法
最近在跟台大的这个课程,觉得不错,想把学习笔记发出来跟大家分享下,有错误希望大家指正. 一机器学习是什么? 感觉和 Tom M. Mitchell的定义几乎一致, A computer program ...
- Oracle大数据解决方案》学习笔记5——Oracle大数据机的配置、部署架构和监控-1(BDA Config, Deployment Arch, and Monitoring)
原创预见未来to50 发布于2018-12-05 16:18:48 阅读数 146 收藏 展开 这章的内容很多,有的学了. 1. Oracle大数据机——灵活和可扩展的架构 2. Hadoop集群的 ...
- 【大数据】Hive学习笔记
第1章 Hive基本概念 1.1 什么是Hive Hive:由Facebook开源用于解决海量结构化日志的数据统计. Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表, ...
- 【大数据】Kafka学习笔记
第1章 Kafka概述 1.1 消息队列 (1)点对点模式(一对一,消费者主动拉取数据,消息收到后消息清除) 点对点模型通常是一个基于拉取或者轮询的消息传送模型,这种模型从队列中请求信息,而不是将消息 ...
- 【大数据】Scala学习笔记
第 1 章 scala的概述1 1.1 学习sdala的原因 1 1.2 Scala语言诞生小故事 1 1.3 Scala 和 Java 以及 jvm 的关系分析图 2 1.4 Scala语言的特点 ...
- 【大数据】SparkSql学习笔记
第1章 Spark SQL概述 1.1 什么是Spark SQL Spark SQL是Spark用来处理结构化数据的一个模块,它提供了2个编程抽象:DataFrame和 DataSet,并且作为分布式 ...
- 【大数据】SparkCore学习笔记
第1章 RDD概述 1.1 什么是RDD RDD(Resilient Distributed Dataset)叫做分布式数据集,是Spark中最基本的数据抽象.代码中是一个抽象类,它代表一个不可变.可 ...
随机推荐
- KingbaseES V8R3集群运维案例---failover切换故障分析
案例说明: KingbaseES V8R3集群主库数据库服务重启后,failover切换失败,分析failover失败的具体原因. 适用版本: KingbaseES V8R3 一.集群架构 node1 ...
- Kylin Desktop V10部署达梦数据库(DM8)
1.环境 处理器:飞腾D2000/8 E8C 内存:16GB 系统:银河麒麟桌面版操作系统(国防版)V10 达梦数据库:dm8_20231226_FTarm2000_kylin10_sp1_64 2. ...
- 开启 Keep-Alive 可能会导致http 请求偶发失败
大家好,我是蓝胖子,说起提高http的传输效率,很多人会开启http的Keep-Alive选项,这会http请求能够复用tcp连接,节省了握手的开销.但开启Keep-Alive真的没有问题吗?我们来细 ...
- #状压dp#JZOJ 3853 帮助Bsny
题目 一共有\(n\)本书,混乱值是连续相同高度书本的段数. 可以取出\(k\)本书随意放回,问最小混乱值,高度\([25\sim 32]\) 分析 设\(f[i][j][k][mask]\)表示前\ ...
- MySQL学习路线一条龙
引言 在当前的IT行业,无论是校园招聘还是社会招聘,MySQL的重要性不言而喻. 面试过程中,MySQL相关的问题经常出现,这不仅因为它是最流行的关系型数据库之一,而且在日常的软件开发中,MySQL的 ...
- 日调用量超600亿次,HMS Core HiAI Foundation助力AI应用高效开发
随着新技术的不断演进,人工智能已经广泛地应用到教育.金融.物流.零售.交通.医疗等各个领域.而在AI高速发展的当下,高效开发变得更为重要,如何将创意想法与AI技术深度融合,迅速转化为可落地的AI应用, ...
- Sample上新,从API 8开始支持!速来拿走
原文:https://mp.weixin.qq.com/s/TxUOSXySZRwQaECenxt-Og ,点击链接查看更多技术内容. 搭载API 8的新SDK已经发布.围绕着新SDK,官方贴心地输出 ...
- WAF 原理入门
WAF 入门 WAF 功能 WAF 全称叫 Web Application Firewall,和传统防火墙的区别是,它是工作在应用层的防火墙,主要对 web 请求/响应进行防护.那么 WAF 有什么功 ...
- 重走py 之路 ——普通操作与函数(三)
前言 本节主要介绍函数,但是函数是由操作组成的.那么就分为两部,一部分为操作一部分为函数. 正文 py世界中的操作. 操作 if: 在学习任何一门语言中,关系if,要关系另外一件事,那就是if是否只能 ...
- (节流)js防止重复频繁点击或者点击过快方法
1.方法一:用定时器定时,没跑完定时器,点击按钮无效 <script> var isClick = true; $("button").on("click&q ...