机器学习
训练与推理(training vs inference)
/ TRAY-ning vurs IN-fur-uns /
每个机器学习模型都过着两段截然不同的人生。第一段是训练:模型研究一大堆例子,慢慢调整自己内部的数字,直到答案不再出错。第二段是推理:训练已经结束,数字被冻结,做好的模型只是被派去回答新的问题。这就好比一个学生考前临阵磨枪,与多年以后那同一个学生在工作中运用所学之间的区别。
这两个阶段几乎在每个实际方面都不同。训练是一次性(或偶尔为之)的功夫,又慢、又吃数据、又费算力——它可能要在塞满专用芯片的机房里跑上几个星期。推理则是一遍又一遍地发生,最好在不到一秒内完成,每当有人向模型发问时就来一次。训练需要正确答案(标签)来学习;推理只需要问题本身。一个模型训练一次,之后可能要做上十亿次推理。
为什么非要分清这个区别?因为成本与风险藏在不同的地方。偏见、错误和过拟合,都是在训练时被烙进去的;而速度、能耗与服务成本则在推理时唱主角,因为你得不停地跑它。这也解释了为什么一个已部署的模型,并不会从每一次提问里继续学习,除非它被明确地重新训练——推理时模型是冻结的,只是把它已经掌握的东西照搬出来,连同它的错误。
一个人脸解锁模型在实验室里只训练一次,用上百万张脸花上好几天。到了你的手机上,它做的是推理:每次你看一眼屏幕,那个冻结的模型就在几毫秒内核对一句「这是机主吗?」。它并不会从这些瞥视里学会你新换的发型,除非一次更新把它重新训练。
带着答案慢慢训练一次;再一遍遍飞快地对新问题做推理。
这里的「推理」仅指「运行训练好的模型以得到一个预测」——并非统计学中更深一层意义上的推断(即估计世界如何运作)。在日常的机器学习用语里,推理就是那一步预测而已。
又称
另见