大模型压缩和推理加速
创作时间:
作者:
@小白创作中心
大模型压缩和推理加速
引用
CSDN
1.
https://blog.csdn.net/qq_21201267/article/details/144259091
大模型的压缩和推理加速是当前AI领域的重要研究方向。本文将从模型压缩和加速两个方面,介绍大模型压缩和推理加速的相关技术,包括量化、蒸馏、剪枝、稀疏激活等模型压缩方法,以及KV Cache、PagedAttention等推理服务加速技术。同时,本文还将介绍一些常见的推理框架,帮助读者更好地理解和应用这些技术。
1. 模型压缩和加速
为了提升推理速度,主要从以下几个方面进行优化:
- 减少模型尺寸:量化、蒸馏、权重共享
- 减少计算操作:模型剪枝、稀疏激活
1.1 量化
将浮点数量化成整型数:
$$
Q = \frac { R } { S } + Z
$$
其中:
- $R$ 是真实的浮点数
- $Q$ 是量化后的定点数
- $Z$ 是0浮点数对应的量化值
- $S$ 是收缩因子
收缩因子的计算公式为:
$$
S = \frac { R _ { \ \ \max } - R _ { \min } } { Q _ { \ \ \max } - Q _ { \min } }
$$
$Z$ 的计算公式为:
$$
Z = Q _ { \ \ \max } - \frac { R _ { \min } } { S }
$$
1.2 蒸馏
蒸馏损失函数为:
$$
L = \alpha L _ { S o f t } + (1-\alpha) L _ { H a r d }
$$
其中:
- $L _ { S o f t } = - \sum _ { i } ^ { N } p _ { i } ^ { T } \log ( q _ { i } ^ { T } )$
- $L _ { H a r d } = - \sum _ { i } ^ { N } c _ { j } \log ( q _ { i } ^ { 1 } )$
步骤:
- 训练教师模型
- 设计学生模型,可以选择层数减少、宽度缩小、参数共享等方式来降低复杂度
- 教师模型对输入数据进行预测,获取软标签
- 加权两种损失,考虑跟老师输出的差异和真实标签的差异(避免被老师的偶然错误带跑)
- 评估调优,学生模型结构调整,蒸馏温度T,超参数 a
还有特征蒸馏:学习教师模型的隐藏层输出
1.3 剪枝
删除不重要的模型参数,但是会引起精度损失
一般流程:
- 训练网络
- 删除权重值低于阈值的神经元
- 对网络重新训练(减少精度损失),后两步可以重复多次
1.4 稀疏激活
减少激活数量,某些神经元只在特定条件下被激活(输出非零值),其他神经元的激活值为零或被忽略,减少计算,减少内存占用
MOE 混合专家模型,门控网络负责选择合适的专家
稀疏激活模型有:悟道2.0,GLaM,Mixtral 8x7B 等
2. 推理服务加速
- 减少时间延迟
- 增加单位时间处理的 token 数量
2.1 KV Cache
- 以空间换时间
- 已知前 n 个Token, 预测第 n+1 个 Token的时候,对前n个Token的计算是重复的
- 对 K,V等信息缓存在内存中,后续复用,减少计算,推高推理效率
- 缺点就是会占用一定的显存资源
- transformers 中的 generate() 已经内置该技术了
2.2 PagedAttention
大模型部署框架 VLLM 就使用了这个技术
一次处理多个请求,需要有效管理每个推理占用的内存空间
- 将每个序列的KV缓存分成多个块,每个块包含固定数量的标记的键和值。在注意力计算过程中,PagedAttention Kernel 高效地识别和获取这些块,采用并行的方式加速计算
- 允许在非连续的内存空间中存储连续的KV张量
- 在块的粒度上实现了内存共享,不仅在与同一请求相关的不同序列之间,而且在不同请求之间
3. 常见推理框架
- vLLM
- 通过PagedAttention技术高效地管理attention中缓存的张量,比HuggingFace Transformers高14-24倍的吞吐量
- 兼容OpenAI的接口服务
- 与HuggingFace模型无缝集成
- Text Generation Inference (TGI)
- 提供了一系列优化技术,如模型并行、张量并行和流水线并行等
- 这些技术可以显著提升大模型推理的效率
- 适合需要在多种硬件环境下进行高效推理的场景
- llama.cpp
- 主要目标是在本地和云端的各种硬件上以最少的设置和最先进的性能实现LLM推理
- 提供1.5位、2位、3位、4位、5位、6位和8位整数量化
- 以加快推理速度并减少内存使用
- 适合CPU推理,结合模型int4量化,减少内存使用
- MLC LLM
- 适合在手机终端推理
- 可在客户端(边缘计算)如Android或iPhone平台上本地部署LLM
- TensorRT-LLM
- 是Nvidia在TensorRT推理引擎基础上,针对Transformer类大模型推理优化的框架
- 支持多种优化技术,如 kernel 融合、矩阵乘优化、量化感知训练等
- 可提升推理性能
- DeepSpeed
- 微软开源的大模型训练加速库
- 最新的DeepSpeed-Inference提供了推理加速能力
- 通过内存优化、计算优化、通信优化,降低推理延迟和提升吞吐
- OpenLLM
- 是一个用于在生产中操作大型语言模型(LLM)的开放平台
- 良好的社区支持
- 集成新模型
- 支持量化
- LangChain集成
- FasterTransformer
- 由NVIDIA开发,用于加速Transformer模型的推理
- 支持多种模型
- 针对NVIDIA GPU优化,提升性能
- 低精度推理
- 分布式推理
- 减少内存使用和访问延迟
热门推荐
猴耳环消炎颗粒是抗生素吗?专业医生为您解答
赵字五行属什么 赵字取名有什么意义
黔北花海:赏花、拍照、寻梦的贵州理想之地
有效数据分析的全流程:从目标设定到结果应用的详细指南
如何构建高效的信息梳理线索数据库
躺下鼻子不通气怎么办?4个实用解决方案+睡眠护理建议
渐开线花键学习之齿厚(实际&作用怎么分?)
成都11家羊肉汤馆子大盘点:从市中心到郊县,总有一碗适合你
备份文件照片用什么硬盘?四种硬盘类型全面解析
姓廖的名人
多因素方差分析:原理、步骤与应用
项目管理重要会议内容怎么写
线性代数:空间的定义(欧几里得空间&向量空间)
999感冒灵跟999复方感冒灵的区别
新手开家政公司必看:五个关键问题全解析
刍议如何提高农村偏远山区小学教育教学质量
晋阳之战:战国序幕与智瑶的悲剧
針灸治療糖尿病:中醫如何引領新趨勢?
化工专业就业前景如何(化工真的是“天坑”专业吗?关于就业率和薪资的真实数据!)
特斯拉“单踏板模式”该不该被禁?
崔雪莉抑郁症的成因是什么?如何积极面对并战胜这种心理困扰?
结婚后户口分离手续:从独立生活到合家团圆的跨越
推荐项目:Atomic Red Team——安全测试的利器
全球排名第一的饮食方式-得舒饮食(DASH Diet)
pH计的使用方法步骤及pH计的原理分析
肺结节LU-RADS3类是什么意思
晚年昏庸:探究皇帝衰颓之路
日元的基本面分析(日元基本面深度解析)
如何处理工作中的沟通障碍
儿童脾虚可以吃什么