在 Day2 提到什麽是用於生产的机械学习 ML in Production ,今天来谈用於生产的机械学习所遇到的挑战,主要挑战包含:
- 要是整合性的机械学习系统。
- 要持续地在生产环境中维运。
- 要处理持续改变的资料流。
- 要控制电脑运算资源与成本。
而之所以成为挑战,笔者设想学用两端落差,摘述如下:
"O 到 1" 与 "1 到 N" 是不同层次的问题
- 相信学习人工智慧领域的人有越来越早触及的趋势,您可能在大学就有优秀又有热诚的老师开设 "从0到1" 的人工智慧、机械学习、深度学习课程,研究所、研究室也有专题或论文指引方向解决问题,甚至您可能苦笑又自豪地说我就是个自学仔,取之於网路资源开始 AI 之路,您的坚持与努力都让笔者相当钦佩,也真心崇拜与感谢如:李弘毅、林轩田、蔡炎龙等大神,犹如醍醐灌顶苦海明灯。
- 但 "1到N" 指的是将已有的 AI 模型布署到服务数以万计、亿计人流的商业服务时,现况是学子们非常难有产业经验,甚至许多企业也摸索不得其门,毕竟购置算力开销不小,投入成本跟效益难以估算。也有来自 KDnuggets 的文章引述 2019 年有 87% AI 止步於落地之前,另外一篇文章也指出 AI 新创阵亡率高达 9 成。
学习 ML/DL 像挑战登高,回首还有 Data 洪流
- AI 演算法兴起讨论自 2016 年 AlphaGo 进展从 DNN、CNN、RNN、LSTM 到 GAN、BERT、Tramsformer、GTP-3、YOLO 等屡有突破,有幸能躬逢其盛,要追的论文很多,就像高山一样追不完,能看懂演算模型诚属不易、历经层层神经网套用 PyTroch 、 TensorFlow 的摧残,在学习之路上回头山峰很高,惊觉实践时还有个资料洪流,时不时还要溯溪泛舟。
- 资料坑是在挽起袖子实际训练 AI 时就会遇到的难题,蒐集资料、标注资料、清洗资料及特徵工程,或许在初学时还可以先拿 IRIS、MNIST、波士顿房价、 ImageNet 等资料集「硬 Train 一波」再说,但是商务情境之下资料品质的问题会被放大,诸如手写辨识的目标是连人都看不懂鬼画符,不知何时"割韭菜"跟"航海王"词义已经变化,AI 要落地就不得不面耗费80%心力与资料搏斗,「屡 Train 不停」。
AI 数据竞赛练功坊,与用於生产的任务有差
- 学习人工智慧领域,透过AI建模解决问题,或提出新型模型应用、参加 Kaggle 数据竞赛,是现今主流学习人工智慧的趋势,也是培养 AI 人才的好方法,但仍有盲点存在:
- 竞赛的资料可控程度较高,是「给定的资料集」,并且有特徵栏位说明,简化了其变动程度,好让竞赛焦点集中在资料标注、特徵工程、模型优化,提出更好的预测结果。
- 追求预测的准确率 Accuracy 指的是平均准确率,最终比赛目标关注整体准确率,但对於隐藏在资料集的极端分布或错误修正并非关注焦点,「 Responsible AI 」讨论到 AI 系统的公平性、可解释性、隐私性与安全性, ML 产品服务经不起种族、性别、就业歧视的指责,但数据竞赛不见得要为此考量。
- 提交一次性预测模型给竞赛平台或给定研究解决方案,优异训练成果,测试也不错,但布署到现实世界所需的「持续优化任务」,通常到了业界才会碰触。
吴恩达也举办了以资料为中心的ML竞赛,改锁定ML模型,参赛者以资料工程手段改进训练成果,就是希望能把焦点转移到改进资料品质中。
不愿意面对的真相,你的 ML Code 只是冰山一角
营运烧钱难以想像
最後,我们学习过程喜爱的笔记本环境,只是工具链的一环
- Jupyter Notebooks 是数据科学团队善用的工具,学习与分享都很方便,但部署 ML 到生产情境时,所要接触的绝不能仅止於此,以学习经验而言,除非刻意接触或有演练机会,不然同时具备 ML + DevOps 能力者是相当缺乏的,也是非战之罪。
是说有没有 ML 完整解决方案?
小结
- 今天整理了「用於生产中的机械学习」与学习取向、研究取向、模型竞赛取向的 ML/DL 领域2者间的差异,意识到中间的挑战与落差原因,如果您正在起步学习人工智慧,那本篇可以提供您不同面向的思考观点。
- 希望後续能持续提供有助益的乾货,烧脑中,我们明天见。
参考