深度学习的模型压缩的主流方法有基于量化的方法、模型剪枝和知识蒸馏(teacher-student),模型量化,这是最广泛使用的模型压缩形式。
量化主要是一种加快推理速度的技术,并且只支持量化运算符的前向传递。简单来说,在深度学习中,量化指的是使用更少的bit来存储原本以浮点数存储的tensor,以及使用更少的bit来完成原本以浮点数完成的计算。
当前的深度学习框架大都采用的都是fp32来进行权重参数的存储,比如Python float的类型为双精度浮点数fp64,PyTorch Tensor的默认类型为单精度浮点数fp32。bf16是为深度学习而优化的新数字格式,预测精度的降低幅度最小。//关于bf更多细节请看最下方参考链接。
(注:fp stands for float point,bf stands for brain float)
使用fp32主要存在问题:
- 模型尺寸大,训练的时候对显卡的显存要求高
- 模型训练速度慢
- 模型推理速度慢
Reference
(312条消息) 深度学习模型精度与PyTorch模型量化_fp16和fp32_香菜烤面包的博客-CSDN博客
//一定要看哦这篇。
BF16是为深度学习而优化的新数字格式 预测精度的降低幅度最小 - 人工智能 - 电子发烧友网 (elecfans.com)
//可能没见过吧 ,BF是一种相对较新的数据格式。
大模型训练中的 fp32/fp16/bf16、混合精度、训练溢出 - 知乎 (zhihu.com)//我只能说非常值得一看的佳作。