今天介绍一个在 AI 算法领域比较常见而且很重要的岗位——模型量化岗。
按惯例,先从某聘上截图一个量化工程师的招聘信息。
只看与量化相关的词,基本涉及到了量化精度、模型结构、算法这些关键词,下面来介绍一下这个岗位。
1、先看下什么是模型量化
模型量化(Model Quantization)是深度学习中的一项关键技术,它通过对模型结构的改变、算法的替换、数据的量化等操作,来减小模型的体积,降低内存占用,提高推理速度。
在这个基础上,还可以在保持一定的推理精度。
量化主要是为了满足在嵌入式设备、移动设备和边缘计算等资源受限的环境中部署模型的需求。
模型量化的核心思想
深度学习模型通常使用浮点数(32位或64位)进行计算,这在计算和存储上都需要大量的资源。
而在实际应用中,一些场景可能并不需要如此高的精度。
模型量化的核心思想就是降低数据的位宽数,通常的做法是从浮点数降到定点数或者更低位的浮点数,比如将数据从32位的浮点数降低到 int8 的定点数,或者降低到16位的浮点数。
模型量化的优势
-
减小模型大小:通过量化,模型的大小显著减小,适合在资源受限的设备上部署。
-
提高推理速度:低位宽的数据,可以减少带宽占用,运算速度也会更快。
-
降低功耗:在一些移动设备上,低位表示需要的功耗更低。
-
更好的部署:适应于嵌入式设备、移动设备和边缘计算等场景。
2、岗位做什么以及需要什么要求
如上面说的,在了解了这个岗位是做什么的之后,那么对于候选人大概需要什么要求呢?
-
深度理解深度学习的算法原理和实现细节。这一点算是该岗位的入门要求。
如果对深度学习算法理解不深,是很难完成模型的修改和算法变换的,更别提对一些算法的输入、输出数据进行量化了。
-
对数据和数值的敏感。量化工程师有些时候需要分析真实网络中输入输出数据的真实分布,比如是符合高斯分布吗,数据均值是多少,方差是多少,最大最小值一般在什么范围内,以此来确定是否可以将数据量化到某一范围内。
所以,还需要有一些概率论和数理统计的知识加持,才好完成这份工作。
-
对精度的敏感。很多时候,将高位宽的数据量化到低位宽的数据后,神经网络的推理会损失精度,但是可以提高性能。
这两者需要有个权衡,如何在确保性能提升的前提下,损失的精度在可接受的范围内,是需要一定的先验知识来完成的。
-
基本语言:熟练的 python 技能是重点。因为 python可以更好的在多种框架或平台下快速验证某一算法,并依据某一算法进行结果测试、数据统计、量化实验等,当然 C++ 基础也是加分项。
3、最后看薪资
直接贴图,有经验的硕士基本 50k 以上的薪资,还是很诱人的。
如果没有相关的工作经验,但是熟悉模型结构、深度学习算法及算法细节、有数理统计等数学基础,也可以考虑。
毕竟这是一个高薪研发岗位,感兴趣的小伙伴冲吧~
一个岗位职责会涉及很多细节,无法一一写出,以上仅为个人见解,欢迎评论区交流。
参考:^ AI 模型量化岗是做什么的?