课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
机器学习(ML)为我们日常使用的越来越多的应用程序和服务提供了动力。对于有些组织和数据科学家而言,机器学习不仅仅是获取业务洞察或训练预测模型。他们的工作实际上已从纯粹的模型开发转移到了涉及推理性能、扩展、负载平衡、训练时间、可再现性以及可见性等问题的实际生产场景。这都需要计算能力,而在过去,计算能力一直是机器学习开发人员巨大的难题。
从在笔记本和台式机上运行代码到云计算解决方案的转变
在2019年中期至年底之间,在笔记本电脑或台式计算机上编写应用或项目代码的机器学习开发人员的比例从61%降至56%。
尽管5%的下降幅度很大,但大多数开发人员仍在本地运行代码。业余爱好者更加倾向于在本地运行代码,他们与专业机器学习发人员在本地运行代码的比例分别为65%和51%。
相比之下,在同一时期,我们发现在公共云或大型计算机上部署代码的开发人员所占比例略有增加。在本次调查中,针对问题:“您通过何种方式运行应用程序/项目的代码?”,我们加入了多云(multi cloud)作为其中一个备选答案,目的是为了确认在一个项目中使用多个公共云的开发人员。
结果发现,19%的机器学习发人员使用多云解决方案来部署代码。由于加入了这个备选项,我们可能低估了运行代码的公共云使用量的实际增长;有些开发人员可能选择了多云代替公共云。也就是说,启动多个实例并在其上运行机器学习模型变得越来越容易,也变得越来越便宜。实际上,大多数领先的云托管解决方案都提供免费的Jupyter notebook环境,无需设置即可完全在云中运行代码。例如,Google Colab预先安装了大多数机器学习库,是用户克服依赖性和计算能力难题、随时随构建机器学习解决方案的理想场所。
尽管业余爱好者利用云计算基础架构的倾向性不如专业开发人员高,但与专业人士一样,他们也可以在CPU以外的硬件上运行代码。正如稍后的分析,超过三分之一的机器学习爱好者在大型数据集上训练深度学习模型时,会使用GPU、TPU之类的硬件架构来运行资源密集型代码。
图:机器学习开发人员将代码部署到了何处
使用大数据和深度学习框架的开发人员更喜欢在混合以及多云环境中部署代码
从事ML / AI研究的开发人员在本地计算机上运行代码的比例(60%)超出了其他ML开发人员(54%),主要是因为他们大多需要使用较小的数据集。另一方面,负责部署由其他团队成员构建的模型的开发人员或负责构建机器学习框架的开发人员更倾向于在云托管解决方案上运行代码。
ML / AI或数据科学方面的老师使用云解决方案的比例超过了一般人,更具体地说是混合云或多云。应当指出的是,在讲授ML / AI的开发人员中,有很大一部分还以不同的方式参与了数据科学和ML / AI。 例如,41%的人使用第三方API,而37%的人在应用或项目中训练和部署ML算法。他们不一定将混合和多云架构作为教学活动的一部分。
ML开发人员使用的ML框架或库的类型是在云计算体系结构上运行代码的另一个体现。当前正在使用大数据框架(例如Hadoop,尤其是Apache Spark)的开发人员更倾向于使用公共云和混合云。Spark开发人员还会大量使用私有云来部署他们的代码(40%,而其他ML开发人员为31%),或使用本地服务器(36%,而其他ML开发人员为30%)。
相比使用其他机器学习框架/库(例如流行的Scikit-learn python库)的开发人员,深度学习开发人员更倾向于在云实例或本地服务器上运行代码。
然而,使用Keras和TensorFlow(最流行、最易访问的python深度学习库)的开发人员与使用Torch、DeepLearning4j或Caffe的开发人员之间存在明显的区别。前者大多喜欢在他们的笔记本电脑或台式机上运行代码,而后者则倾向于使用混合和多云、本地服务器和大型机。这些差异主要是由于开发人员在机器学习开发方面的经验造成的。例如,只有19%的TensorFlow用户拥有3年以上的经验,而Torch和DeepLearning4j开发人员拥有3年以上经验的比例分别为25%和35%。Torch非常适合关心效率的ML开发人员,因为它拥有简单快速的脚本语言,以及LuaJIT和底层C / CUDA的实现。
ML开发人员在语音识别、网络安全、机器人移动和生物工程等领域使用硬件体系结构的比例较高。这些开发人员更倾向于使用生成对抗网络等高级算法,而且他们需要处理大型数据集,因此需要额外的计算机功能。同样,当前正在使用C++机器学习库的开发人员也会大量使用除CPU(38%,其他开发人员为31%)和大型机以外的硬件体系结构,大概是因为他们非常在意性能。
最后,ML开发人员运行代码的方式与他们从事机器学习/数据科学哪个阶段的工作之间存在明显的联系。参与数据提取的ML开发人员更倾向于在私有云和本地服务器上运行代码,而参与模型部署的ML开发人员则更多地使用公共云来部署机器学习解决方案。31%的开发人员参与了机器学习工作流程的所有阶段(端到端),而未能参与全过程的开发人员为26%。他们也更倾向于在公共云和混合云上运行代码。
相比之下,参与数据可视化或数据探索的开发人员倾向于在本地环境中运行其代码(分别为62%和60%),甚至比参与数据科学工作流其他阶段的ML开发人员(54%)还要多。