本文主要是介绍9.2-模型量化学习内容,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
量化简介
量化是将模型浮点数变为定点数运行的过程。
基本概念 :模型量化可以减少模型尺寸,进而减少在推理时的内存消耗,并且在一些低精度运算较快的处理器上可以增加推理速度。
常见方法:工业界目前最常用的量化位数是8比特,低于8比特的量化被称为低比特量化。1比特是模型压缩的极限,可以将模型压缩为1/32。
精度类型
低精度浮点数:在PyTorch中用torch.bfloat16和torch.float16表示。
双精度浮点数:在PyTorch中用torch.float64表示,或者在其他语言中也称为double类型,在LLM训练中一般比较少用
全精度浮点数:在PyTorch中用torch.float32表示
精度类型注意点
- bfloat16的小数部分较短,整数部分较长,这会有利于在训练中减少梯度爆炸的情况(即梯度累加值超过了最大值),但是这种数据类型是在N系列显卡Ampere系列才支持的,即30系列显卡。
- float16的小数部分较长,这意味着在精度控制上float16更好,但整数部分较短,比较容易梯度爆炸。
量化基本思路
ONNX
Tensortrt
FlashAttention
ExLlamav2
这篇关于9.2-模型量化学习内容的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!