为了创建有效的机器学习和深度学习模型,组织需要获取大量的数据,并对其执行特征工程的方法,以及在合理的时间内训练数据模型的方法。然后,组织需要一种方法来部署模型,监视它们是否随时间的推移而改变,以及根据需要重新训练它们。
如果组织已经在计算资源和加速器(例如GPU)上进行了投资,则可以在内部部署基础设施完成所有这些操作,但是可能会发现,如果资源足够,它们在很多时间都处于闲置状态。另一方面,有时在云平台中运行整个管道,根据需要使用大量计算资源和加速器,然后释放它们,可能更具成本效益。
主要的云计算提供商(以及其他云计算提供商)已投入大量精力来构建其机器学习平台,以支持从计划项目到维护生产模型的完整机器学习生命周期。组织如何确定哪些云平台可以满足其需求?每个端到端机器学习平台都应提供以下12种功能。
1.接近自己的数据
如果组织拥有建立精确模型所需的大量数据,则不希望将其传输到世界各地。这里的问题并不是距离,而是时间:数据传输速度最终受到光速限制,即使在带宽无限的完美网络上也是如此。长距离意味着等待时间更长。
对于非常大的数据集,理想的情况是在已经存在数据的地方建立模型,从而不需要传输大量数据。一些数据库在一定程度上支持这一点。
下一个最佳情况是数据与模型构建软件位于同一高速网络上,这通常意味着在同一数据中心内。如果组织拥有TB或更大容量的数据,即使将数据从一个数据中心迁移到云计算可用性区域内的另一个数据中心,也可能会造成严重的延迟。组织可以通过执行增量更新来缓解这种情况。
最坏的情况是,组织必须在带宽受限和高延迟的路径上远程移动大量数据。而在这方面,澳大利亚为此部署的跨太平洋电缆的工程令人惊叹。
2.支持ETL或ELT管道
ETL(导出、转换和加载)和ELT(导出、加载和转换)是数据库领域中常见的两种数据管道配置。机器学习和深度学习扩大了对这些内容的需求,尤其是转换部分。当转换需要更改时,ELT为组织提供更大的灵活性,因为加载阶段通常是大数据最耗时的阶段。
通常情况下,没有进行处理的数据很嘈杂,需要过滤。此外,这些数据的范围也有所不同:一个变量的最大值可能高达数百万,而另一个变量的范围可能是-0.1至-0.001。对于机器学习来说,必须将其变量转换为标准化的范围,以防止较大范围的变量控制模型。具体的标准化范围取决于模型使用的算法。
3.支持在线环境进行模型构建
传统的观点是,组织应该将数据导入桌面设备以进行模型构建。建立良好的机器学习和深度学习模型所需的大量数据改变了局面:组织可以将一小部分数据样本下载到桌面设备上,以进行探索性数据分析和模型构建,但是对于生产模型,则需要访问完整的模型数据。
Jupyter Notebooks、JupyterLab和Apache Zeppelin等基于Web的开发环境非常适合模型构建。如果组织的数据与笔记本电脑环境位于同一云平台中,则可以对数据进行分析,以很大程度地减少数据移动的时间。
4.支持扩展训练
除了训练模型之外,笔记本电池的计算和内存要求通常很小。如果笔记本可以生成在多个大型虚拟机或容器上运行的训练作业,则将大有帮助。如果训练可以访问加速器(例如GPU、TPU和FPGA),也将有很大帮助;这些模型可以将数天的训练过程变成数小时。
5.支持AutoML和自动特征工程
并不是每个组织都擅长于选择机器学习模型、选择特征(模型使用的变量),以及从原始观察中设计新特征。即使组织擅长这些任务,它们也很耗时,而且可以在很大程度上实现自动化。
AutoML系统经常尝试使用许多模型来查看哪些模型可以产生优秀目标函数值,例如回归问题的最小平方误差。出色的AutoML系统还可以执行功能工程,并有效地利用它们的资源,以尽可能多的特征集合来追求优质的模型。