因为我在研发机器学习编译器,而且编译器大体上就是个复杂艰深些的软件项目,所以我敢自称编译器人。但是前两天看到王垠的高论*有点受打击,加上编程语言理论全是数学有些吓人,不敢自称编程语言理论人……

* yinwang.org/blog-cn/2019/12/24

@fulkrum 🍈能否科普一下什么是机器学习编译器 :neko_surprised:

@peko20 机器学习编译器是用于自动部署机器学习模型的软件。
模型就像其他计算机程序,依赖特定的操作系统、开发库和硬件平台运行。比如你在Linux、NV卡服务器开发(训练)的模型,就不能直接复制到iOS、Android的Arm手机运行(预测/推理);即使可以,效率也会很低,因为NV卡和手机芯片的加速接口、功耗环境完全不同。
按照手机软硬件接口剪裁、修改模型,使其在目标平台即手机高效运行,这一过程称作部署。机器学习编译器可以自动部署模型。

@peko20 概括来看这类软件在变换机器学习模型(高维数组),就像编译器在变换计算机程序,故名机器学习编译器。但这并不是说二者如同印度和印度尼西亚。实际这类软件的设计和技术也如同传统编译器,变换的过程由前端、IR、后端以及若干Pass组成,同时也要根据硬件后端开发或对接相应的Codegen。

@peko20 如果只是NV卡到手机这种场景也还好。实际上现在各种机器学习加速芯片满天飞,如果你有M种模型,N种平台要部署,那就出现了可怕的M×N问题……

@fulkrum 竟然还要部署到手机,可便携式式 AI 是吗 :nyancat:

@peko20 对,比如Hi, Siri的一些语音识别功能就是本地计算。这样隐私和延迟都更好,更别提自动驾驶这种性命攸关的应用了……

Follow

@peko20 您如果留意的话,这几年手机商家都在宣传自己手机上的机器学习加速功能。苹果好像是A12开始称作「仿生」芯片,意指其附带了ML加速模块;高通的芯片也带了类似模块;谷歌前两年在Pixel手机上搞了个TPU,应该就是Google Cloud上TPU的底配版……

Sign in to participate in the conversation
CleverLibre Social

CleverLibre Social is an inclusive social instance for open discussion, learning, and community.
All cultures welcome.
Hate speech and harassment strictly forbidden.