三、需求与技术决策
上文对机器学习平台及其要考虑的功能做了大致的介绍。可以看出,建设一个完整的机器学习平台有很大的投入。每个团队、业务需要根据自己的需求来有所取舍、有先有后,不是什么都要有、马上就要。本章会从多个角度帮助团队,分析应该建设什么样的机器学习平台,来支持业务需求。
理解业务
技术最终服务于业务。即使是纯粹的软件公司,也要思考软件的用户需要什么。全方位的理解了业务,在每次进行技术决策时,能够从问题的源头出发,做出对当前、中长期的最佳决策。
对于小团队、小公司来说,理解业务相对容易。但业务也可能随时发生变化。对于中大型公司来说,特别是刚刚开始进行机器学习投入的公司,还处于探索阶段。机器学习平台支持的业务可能随时发生变化,要从公司业务、机器学习可能的应用来理解业务。
理解业务,首先要了解目标客户,要思考机器学习平台的用户是谁。建设的平台是否直接给外部用户使用?如果是的话,是每个客户部署一个平台,还是在同一个平台上服务所有的客户?或者只给用户提供端到端的服务,平台给自己的团队使用?平台的使用者是数据科学家还是开发人员?
业务规模以及发展速度的预期,决定了机器学习平台硬件投入的时间点以及成本的规划。如果业务规模较大,初期就要规划足够的算力、部署。如果团队强大,就要在运维、易用性上多下功夫。但也要注意,资源永远是有限的,要把好钢用在刀刃上,精力上要有所集中,解决当下最重要的痛点。
定位
定位,在机器学习平台建设时,要确定平台的目标,制定向此方向发展的路径。首先要确定团队服务的业务是某个垂直方向的应用,还是有可能成为跨业务的机器学习平台?如果是跨业务的,是要做成通用的机器学习平台解决底层架构问题,还是要做好某些专业方向,直接解决业务问题?定位以后,平台、开源工具的选型等工作就有了依据。
管理期望
当前的机器学习虽然在飞速发展,但能做的仍然有限,远远赶不上人类智能。媒体、业界对机器学习能做到的事情期待未免过高。机器学习从业者,包括数据科学家、应用开发者,应该帮助整个公司、业务部门都认识到机器学习的局限性。在业务模式设计上,不能将机器学习放在会有重大影响的决策位置,而是应该辅助人类做决策。
比如,车辆驾驶中的车道自动保持功能,在启动时也会同时检测用户是否手握方向盘,在用户没有握住方向盘时警告。这样,在设计上就对功能有合理的期望,同时也管理好了用户的期望,就保证了安全。再比如,不少机器学习模型已经能帮助分析医学影像了,但仍然只能作为医生的辅助,不能直接给出定论,做出诊断。
随着数据、特征工程的不断演进,机器学习模型效果会越来越好,同时也要看到,随着模型效果的提升,成本的投入也在指数级的增加。但无论如何,如果人不能做到100%准确的事情,机器学习模型也做不到。期望机器学习模型完全的解决某个问题,还是一个世界难题。比如,在手写识别的数字数据集中,即使人也很难分辨一些图片到底是什么数字,更不能期望机器学习模型能100%的识别正确。
服务规模
机器学习平台要对当前和预期的服