问题
尽管围绕机器学习 (ML) 和人工智能 (AI) 大肆宣传,但企业中的大部分努力仍处于试验阶段。这种现象的部分原因是与机器学习项目相关的自然实验,但也有一个重要的组成部分与机器学习架构缺乏成熟度有关。这个问题在企业环境中尤为明显,在这些环境中,现代机器学习解决方案的新应用程序生命周期管理实践与企业实践和监管要求相冲突。在采用机器学习解决方案时,组织应该采用哪些关键的架构构建块?
互联网大公司
为大规模机器学习解决方案建立参考架构的挑战因两个主要因素而加剧:
- 机器学习框架和基础设施的发展速度远远快于主流环境中采用这些技术的速度。
- 机器学习解决方案的生命周期与其他软件学科有着根本的不同。
我们可以做的一件事是从世界上一些正在大规模部署机器学习的大公司中汲取灵感,以减轻这些风险。今天,我们想讨论谷歌、Facebook、LinkedIn 和优步等人工智能巨头使用的一些参考架构,以支持他们的机器学习。
技术一览
优步的米开朗基罗
Uber的米开朗基罗系统是给数百个机器学习的工作流程提供支持。从实验到模型服务,米开朗基罗结合主流技术,将机器学习应用的生命周期自动化。Michelangelo 背后的架构使用基于 HDFS、Spark、Samza、Cassandra、MLLib、XGBoost 和 TensorFlow 等技术的现代但复杂的堆栈。
Michelangelo 为 Uber 不同部门的数百个机器学习场景提供支持。例如,Uber Eats 使用在 Michelangelo 上运行的机器学习模型来对餐厅推荐进行排名。类似地,Uber 应用程序中极其精确的预计到达时间 (ETA) 是使用在 Michelangelo 上运行的极其复杂的机器学习模型计算得出的,该模型逐段估计 ETA。
Facebook 的 FBLearner Flow
FBLearner Flow 是 Facebook 机器学习应用程序的支柱。该平台自动化了机器学习工作流的不同元素,例如特征提取、训练、模型评估和推理。FBLearner Flow 与多个机器学习框架和工具集成,如 Facebook 自己的 Caffe2、PyTorch 和 ONNX。
谷歌的 TFX
谷歌还创建了自己的运行时来执行机器学习工作流。TFX基于最近发表的一篇研究论文,该论文提出了一种用于简化 TensorFlow 程序操作的架构。TFX 包括 TensorFlow 架构的几个关键组件,例如用于基于训练数据生成模型的学习器、用于分析和验证数据和模型的模块,以及用于在生产中提供模型的基础设施。
图片来源:SIGKDD
TFX 背后的想法以称为 TensorFlow Extended(也称为 TFX