机器学习工作流:新产品范畴诞生记

机器学习被吹捧为软件开发产品周期每个阶段的问题解决方案:从摄取数据的清洗自动化,到替代同聊天机器人交互的文本用户界面。由于软件工程师在开发和部署产品质量机器学习解决方案的经验越来越丰富,机器学习开发同其它种类的软件差异对比也愈加明显。

机器学习工程师通过使用像Jupyter或者Zeppelin等笔记本工具,创建出运行在小样本数据之上的试验模型,并且将这些模型分享给领域专家和数据科学家,以获得反馈。团队一旦决定了值得扩展的模型,他们采取的下一步措施就是摄取、清洗、以及删除重复数据。经过清洗过的数据会被划分为训练数据,这一数据将会被用于调整模型,以及验证用于核实模型的数据。

机器学习工程师通过对大量的数据提供实时更新服务,从而训练出拟建模型。为了加快这一进程,训练会在多处理器间并行运行,并且在过程结束时将中间结果结合起来。这个阶段可以重复,或许也需要对模型进行微调,然后重启训练。在部署之后,需要经常运行训练来升级模型,或者确定问题所在。这不仅需要回滚模型,还要回滚训练数据;而在传统的资源控制系统中,是不需要解决这些问题的。

该团队随后通过运行数据,将模型预测结果同实际结果进行对比的方式,测试训练模型的准确性。一旦团队对训练模型的准确性感到满意,那么他们就会将模型整合到目标应用程序,以及部署在可扩展基础框架中,以此来响应生产中的需求。这一过程依赖模型的种类以及部署条件的性能要求,也需要类似横向扩展、缓存结果、在多个容器中部署模型的并行版本等机制。

机器学习软件的另一个显着特征是它要比传统软件更加难处理。机器学习算法是非确定性的,并且对一同训练的数据特征高度敏感。如果这些特征产生变化,那么模型就会牺牲其准确性,并且需要用另一模型进行替代。机器学习非确定性的另一个原因是每个步骤都是紧密联系的,所以有一句话叫做“牵一发而动全身”。

为了应对这些难题,许多工程团队也利用了现有的开源工具,如Jupyter(机器学习笔记本)、AirFlow(数据管道)、Docker(容器化工具)、以及Kubernetes(容器集群),并将这些工具结合起来,创建出属于自己风格的机器学习操作环境。但是这一方法的潜在成本和复杂性并不适合某些团队。现在出现了一种可供选择的、新的产品范畴,能够提供端到端的机器学习操作环境,这一产品范畴包括:

Amazon SageMaker:一个完整的管理平台,开发者能够容易地构建、训练、以及大范围部署机器学习模型;

Yhat ScienceOps:用于开发、部署和管理实时机器学习API的端到端平台;

Pachyderm:能够对所有开发机器学习流水线步骤进行自动化处理的环境。

这些产品通过一些附加说明,极大地简化了创建和部署机器学习算法步骤:

●这些产品能够让机器学习团队奖机器学习算法部署到产品中。但是要关注这个问题:这是不是可期的?团队是否具备必需的操作经验,通过自动化软件工具的协调,来将代码融合到产品的环境中去?

●和其它的新产品一样,这些新产品在稳定性和性能等方面有相当大的优势。一个很好的经验法则:通过概念验证,来确定产品是否可以在你的环境中运行。

●如果你使用了其中一个产品,那么你就会被局限于该产品的产品路线。因此,他们会加快投放市场的初始时间,但是会影响未来的灵活性。

●在这些产品中,很多都有开源版本。但是如果你想要在生产时使用这个产品,那么你会很快发现你需要的是企业版本。

●有些产品的关注度不高,因为他们想要解决的是机器学习开发过程之外的问题。要保证不论选择的是哪个产品,都要具备你所需要的能力深度。

机器学习已经做好为企业带来爆炸性增长的准备,并且上述提到的一些机器学习工作流环境工具也降低了准入门槛。不妨关注一下这些产品家族如何在未来几个月中成熟发展,这将会很有意思。

原文作者:Moshe Kranc

编译:信软网

end

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180713G1EC9000?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券