DarwinML Inference:
DarwinML Inference流式推理引擎是为人工智能平台量身定做的商业化产品。
对于数据科学家而言,它的接口抽象,贴近其思维。不限定底层人工智能框架,给其足够的自由度。对于复杂的模型,支持DAG形式的工作流和数据流同图定义,一目了然且方便后续运营商部署和弹性伸缩。
对于运营商而言,它采用成熟软件栈和微服务架构,从单机到超大规模集群弹性伸缩。它不挑硬件,支持从嵌入式设备、台式机、大型服务器、云端虚拟机和容器乃至商业集群的各种新老硬件平台。它支持对接模型编译、小型化等优化加速技术,提升模型的适应度,提高单位资源的产出。自动批量功能能充分发挥人工智能模型批量计算和底层硬件向量加速的功能,即成倍提升系统吞吐量,又不增加数据科学家和运营商的成本。
对于用户而言,它提供丰富的接入接口,包括通用RESTful到高性能的RPC,支持从Python和Java的SDK。对于低延迟的场景,能提供毫秒级的相应。对于高并发的场景,支持线性在线自动扩容。
MetaFlow:
MetaFlow是Netflix开源的一款旨在帮助数据科学家开发管理其项目的Python库。他侧重于减轻数据科学家在开发、管理数据科学项目时,对非数据科学类其他工程领域的技能要求与投入。使之能关注于数据科学领域。
对于数据科学家而言,MetaFlow提供的编程规范和接口,将人工智能模型及相关处理的流程以工作流的形式组织起来,其他的事情,都由其后端运营商负责。
对于运营商而言,MetaFlow深度集成Amazon AWS,且是当前唯一支持的运营商,对于需要商用甚至调试的场景,都需要自己在AWS里面操作,完成存储、计算、通讯等适配,才能实现人工智能模型的服务化,对接终端用户。此外,MetaFlow里面的工作流,不处理数据流,完全依赖AWS。
对于终端用户而言,MetaFlow只提供了client,用以在python代码级别发起工作流调用。对于商用而言,相对缺少更加便捷丰富的接入方式。
AirFlow:
AirFlow是Airbnb开源的一款工作流系统,它基础功能简单,通过插件的形式支持各种语言和执行端。
对于数据科学家而言,它不是一款专门为期设计系统,需要引用一系列列插件、甚至是开发一些插件,才能完成与数据科学家及其人工智能模型应用的对接。和MetaFlow一样,它的工作流也只是涵盖业务层逻辑,不处理数据流,它通过插件支持各主流云平台,例AWS、Azure、GCP等,也有着和MetaFlow相同的问题,对数据科学家不太友好,比MetaFlow糟糕的是,它的集成相对MetaFlow来说要晦涩且难用。
对运营商而言,AirFlow更像是一个相对专业的底层工作流管理平台,但对于人工智能推理服务,他不是专业的,缺少直接、简单、易用的东西,比MetaFlow更为不及。
对于终端用户而言,AirFlow提供比较丰富的访问接口,相对更友好。
MLFlow:
MLFlow是有Databricks开源的一款机器学习生命周期管理平台,推理服务是其功能之一。
对于数据科学家而言,MLFlow是一个比较简单易用的机器学习平台,在推理服务环节,支持将同平台的模型导出为其标准的格式,例如Python Function、Scikit-learn、pyTorch、Tensorflow等,通过其部署工具,在支持的运行平台服务化。对比其他的推理引擎,其主要的弱势是模型从概念上不是基于工作流的,在构建复杂的中大型模型推理服务的时候,需要数据科学家自己解决工作流的问题。此外,同MetaFlow和AirFlow一样,他也不解决数据流的问题,需要数据科学家结合运营商的运行平台自己解决。
对于运营商而言,MLFlow支持4种部署方式,本地单机部署、Azure、Amazon SageMaker、Apache Spark UDF,但只有本地单机部署支持多种格式,其他云端、集群部署都只支持Python Function格式。这提高了商业化运行时,对数据科学家建模时的格式要求,削弱了MLFlow在建模阶段的优势。
对于终端用户而言,MLFlow只提供了RESTFul接口,在要求大流量、高性能、低延时的场景,还是缺少一些其他的选择。