云计算机器学习平台提供多种功能支持完整的机器学习生命周期。为了创建有效的机器学习和深度学习模型,组织需要获取大量数据、对其执行特征工程的方法以及在合理时间内对数据训练模型的方法。然后,组织需要一种方法来部署模型,监控它们是否随时间变化,并根据需要重新训练它们。如果组织已经投资了计算资源和加速器(如GPU),它可以完成所有这些本地基础设施,但可能会发现,如果资源充足,它们会闲置很多时间。另一方面,有时在云端运行整个管道可能更具成本效益,根据需要使用大量计算资源和加速器,然后将它们释放出来。主要的云提供商(和其他公司)已经投入大量精力来构建他们的机器学习平台,以支持从规划项目到维护生产模型的完整机器学习生命周期。组织如何确定哪些云平台可以满足他们的需求?以下是每个端到端机器学习平台都应提供的12项功能。1.接近你自己的数据如果一个组织拥有构建准确模型所需的大量数据,它不希望将这些数据传输到世界各地。这里的问题不是距离,而是时间:数据传输速度最终会受到光速的限制,即使在具有无限带宽的完美网络上也是如此。长距离意味着更长的等待时间。对于非常大的数据集,理想的做法是在数据已经存在的地方构建模型,这样就不需要传输大量数据。一些数据库在某种程度上支持这一点。下一个最好的情况是数据与模型构建软件位于同一高速网络上,这通常意味着位于同一数据中心内。如果组织拥有数TB或更多的数据,即使将数据从一个数据中心迁移到云可用性区域内的另一个数据中心也会造成严重的延迟。组织可以通过执行增量更新来缓解这种情况。在最坏的情况下,组织必须通过带宽受限和高延迟的路径远程移动大量数据。在这方面,澳大利亚为此部署的跨太平洋电缆工程令人惊叹。2.支持ETL或ELT管道ETL(Export,TransformandLoad)和ELT(Export,LoadandTransform)是数据库领域常见的两种数据管道配置。机器学习和深度学习放大了对此类内容的需求,尤其是转换部分。ELT在转换需求发生变化时为组织提供更大的灵活性,因为加载阶段通常是大数据最耗时的阶段。通常,未处理的数据是嘈杂的,需要过滤。此外,这些数据的范围各不相同:一个变量可能具有数百万的最大值,而另一个可能在-0.1到-0.001之间。对于机器学习来说,需要将其变量转化为标准化的范围,以防止更大范围的变量主导模型。归一化的确切范围取决于模型使用的算法。3.支持在线模型构建环境传统观点认为,组织应该将数据导入桌面设备进行模型构建。构建良好的机器学习和深度学习模型所需的大量数据改变了现状:组织可以将一小部分数据样本下载到他们的桌面以进行探索性数据分析和模型构建,但对于生产模型,则需要访问完整的模型数据。JupyterNotebooks、JupyterLab和ApacheZeppelin等基于Web的开发环境是模型构建的理想选择。如果组织的数据驻留在与笔记本电脑环境相同的云平台上,则可以对数据进行分析以最大限度地减少数据移动所花费的时间。4.支持扩展训练除了训练模型外,笔记本电池的计算和内存需求通常很小。如果笔记本可以生成在多个大型虚拟机或容器上运行的训练作业,那将会很有帮助。如果训练可以访问GPU、TPU和FPGA等加速器,它也会有很大帮助;这些模型可以将几天的训练变成几个小时。5.支持AutoML和自动特征工程并非每个组织都擅长选择机器学习模型、选择特征(模型使用的变量)以及根据原始观察设计新特征。即使组织擅长这些任务,它们也很耗时并且可以在很大程度上实现自动化。AutoML系统通常会尝试多种模型以查看哪些模型产生良好的目标函数值,例如回归问题的最小平方误差。好的AutoML系统还会执行特征工程并有效地利用其资源来追求具有尽可能多的特征集的高质量模型。6.支持高质量的机器学习和深度学习框架大多数数据科学家都有自己喜欢的机器学习和深度学习技术框架和编程语言。对于喜欢Python的人来说,Scikit-learn通常是机器学习的最爱,而TensorFlow、PyTorch、Keras、MXNet通常是深度学习的首选。在Scala中,SparkMLlib通常是机器学习的首选。在R中,有许多本机机器学习包,以及与Python的良好接口。在Java中,H2O.ai的评价很高,Java-ML和DeepJavaLibrary也是如此。云机器学习和深度学习平台往往有自己的算法集合,它们通常支持至少一种语言的外部框架或作为具有特定入口点的容器。在某些情况下,组织可以非常方便地将自己的算法和统计方法与平台的AutoML功能集成。一些云平台还提供自己的主要深度学习框架的调整版本。例如,AWS有一个优化版本的TensorFlow,该公司声称它为深度神经网络训练提供了近线性的可扩展性。7.提供预训练模型并支持迁移学习并不是每个人都愿意花时间和资源来训练自己的模型,即使有预训练模型,他们也不应该这样做。例如,ImageNet数据集非常庞大,在其上训练更高级的深度神经网络可能需要数周时间,因此尽可能使用预训练模型是有意义的。另一方面,预训练模型可能并不总能识别组织感兴趣的对象。迁移学习可以帮助组织为特定数据集定制神经网络的最后几层,而无需花费更多时间和金钱来训练整个网络。8.提供优化的AI服务主要云平台为很多应用提供强大和优化的AI服务,而不仅仅是图像识别。示例包括语言翻译、语音转文本、文本转语音、预测和推荐。这些服务已经过数据量的培训和测试,超出了企业通常可用的数据量。它们还部署在具有足够计算资源(包括加速器)的服务端点上,以确保在全球负载下具有良好的响应时间。9.管理实验为组织的数据集找到好的模型的唯一方法是尝试所有方法,无论是人工方法还是使用AutoML。这就留下了另一个问题:管理实验。一个好的云机器学习平台将为组织提供一种查看和比较每个实验的目标函数值(训练和测试数据)以及模型和混淆矩阵大小的方法。能够将它们全部绘制出来具有一定的优势。10.支持预测模型部署一旦组织有办法根据自己的条件选择好的实验,他们就需要一种简单的方法来部署模型。如果一个组织为同一目的部署多个模型,它还需要一种方法来在它们之间分配流量以进行a/b测试。11.随着世界的变化监控预测性能数据。这意味着组织不能部署一个模型而忘记它。相反,组织需要监控提交用于预测的数据。当数据从原始训练数据集的基线发生显着变化时,组织需要重新训练模型。12.控制成本最后,组织需要一些方法来控制模型所产生的成本。部署用于生产推理的模型通常占深度学习成本的90%,而训练仅占成本的10%。控制预测成本的最佳方式取决于您组织的负载和模型复杂性。如果负载很高,您可以使用加速器来避免添加更多VM实例。如果负载是可变的,组织可能能够随着负载的增加或减少动态更改实例或容器的大小或数量。此外,如果您的组织负载较轻,您可以使用非常小的实例和一些加速器来处理预测。
