像是机器学习算法库(scikit-learn)和 Spark MLlib 这样的东西储存了一系列独特的算法。这是一个库。而数据科学和机器学习平台则是一个注册表。它包括了一个算法的多种执行方法,有不同的来源,而且每个算法都有自己的版本(或族系),这些版本的可发现性和可获取性是同等的。一个注册表用户能很容易找到并对比一个算法的不同执行方法的输出。 训练 vs. 推理 数据科学家会用合适的工具来解决对应的问题。有时这些工具就是一种机器学习算法库(scikit-learn)和 Keras 的结合,或者 Caffe 和 Tensorflow 的结合体,又或者是一个用 R 语言写的 H2O 脚本。一个平台不会对这门技艺的工具发出指令,但能够注册并运营这些模型,这个过程独立于模型训练和实现的方式。 人工 vs. 自动部署 把一个模型部署到生产中的方式有很多,最终结果都会是一个 REST API。不同的部署途径会引发很多风险,包括前后不一致的 API 接口设计、不一致的认证和登录,以及逐渐枯竭的开发资源。一个平台应该能够用最少的步骤自动完成这个工作,通过一致的 API 和授权来提供模型,并降低开发运营的执行压力。 如何区别不同的数据科学和机器学习平台? 从表面来看,所有的数据科学平台都差不多,但魔鬼隐藏在细节里。下面是一些可比较的数据点: 支持的语言 R 语言和 Python 对绝大部分数据科学和机器学习项目都是标配。Java 是接近的第二选择,因为有着像 deeplearning4j 和 H2O 的 POJO 模型提取器这样的库。而 C++ 在科学计算或 HPC 的环境下尤其适用。其他执行时间则是可有可无的,这取决于你的用例和你的非数据科学同事所用的主要技术堆栈,比如 NodeJS/Ruby/.NET 这些。 CPU vs. GPU(深度学习) 随着这一领域的成熟和模型规模的增长,atv,深度学习在数据科学和机器学习中的重要性会日益凸显。TensorFlow 虽然很受欢迎,但它并不能总是做到反向兼容,Caffe 则需要特定的编译器标识,cuDNN 只会给你的 GPU 簇增加一层管理的复杂度。在没有强制要求的情况下,完全容器化(containerizing)且产品化的异构模型(在代码、节点权重、框架和底层驱动方面),和在 GPU 架构上运行它们对一个平台来说是非常不同的。 单一 vs. 多重的版本控制 版本化是指能够把模型的族系演变列出来并获取每个版本独立访问权限的能力。当模型被版本化以后,数据科学家就能测试模型随时间的变化规律。一个单一版本的架构只会显示出模型(目前稳定的那个版本)的单个 REST API 端点,而只有创作者能通过他们的控制面板在不同的模型间「切换」。一个多版本的架构除了显示「稳定」版本的一个 REST API 端点之外,还能显示以往每个版本的,使得它们都能同时可被获取,这能消除反向兼容困难,还能让后端工程师进行局部发布展示或实时 A/B 测试。 垂直 vs. 水平扩展 仅仅让模型作为一个可获取的 REST API 是不够的。垂直拓展就是在一个更大型的机器上部署你的模型。水平扩展就是在多个机器上部署你的模型。而 Algorithmia Enterprise 所执行的无服务器扩展,这是应需求进行的垂直拓展,这里的需求是指把模型封装进一个专用容器中,把容器沿计算集群即时部署,并且在执行完成后将其消除以释放资源。无服务器计算带来了拓展和经济性方面的好处。 单一 vs. 多个租户 当你在共享硬件资源时,处理敏感或保密性的模型是很有挑战的。单一租户的平台会在同样的资源(机器实例、虚拟内存等)上运行所有的产品模型。多租户平台把模型作为虚拟隔离的系统(给每个模型不同的容器或虚拟机)来部署,可能会提供额外的安全措施(比如防火墙规则和审计跟踪)。 固定的 vs. 可交替的数据源 数据科学家可能需要在来自 S3 的模型上运行离线数据,而一个后端工程师则同时通过 HDFS 在同一个模型上运行产品数据。一个固定的数据源平台需要模型的作者安装两种数据连接器:HDFS 和 S3。而一个可交替的数据源则只需要作者安装一个通用的数据连接器,它可以作为多种数据源的适配器,同时也是一种让不会过时的模型与以后出现的任何数据源都能兼容的方式。 数据科学和机器学习平台的实例 这绝不是一个详尽的清单。如果有建议的话请留下你的评论。 Algorithmia Enterprise: Domino Data Lab: yHat:https://www.yhat.com/ Dataiku:https://www.dataiku.com/ Cloudera Workbench:https://www.cloudera.com/products/data-science-and-engineering/data-science-workbench.html Alteryx: RapidMiner:https://rapidminer.com/ (责任编辑:本港台直播) |