Acumos机器学习平台的模型打包与共享部署

Posted 跳动的数据

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Acumos机器学习平台的模型打包与共享部署相关的知识,希望对你有一定的参考价值。

说背景有点老生常谈了,那就不说了,直奔主题吧。

现如今,机器学习平台很多,根据笔者的浅薄认识,应该没有一家公司提供的平台能解决所有的环境的问题,比如有:

微软的Azure, https://docs.azure.cn/

谷歌的Cloud AI

亚马逊的AWS ML


在未来AI 普及的前提,ML模型的封装以及容器化镜像的运行方式是要解决的一个挑战,这样的话就可以很方便去共享、使用部署模型。


下图是对ML模型共享开源平台的对比




Acumos流程设计


Acumos机器学习平台的模型打包与共享部署



上传:从一个贡献者开始(即建模者,数据科学家)将预先训练好的本地模型上传到Acumos上。参与者能够使用各种现有的ML库来构建和训练他的ML模型。训练的框架及语言不做过多的限制,由贡献者喜好而定。


发布上传后,模型存储在一个私人区域,只有贡献者才能访问。然后,贡献者可以选择何时以及如何共享他的模型。由于模型是封装的,并以“黑盒子”的形式存在,因此发布时需要参与者描述模型的元数据,例如功能描述、输入和输出格式以及模型类别。其他用户可以根据元数据搜索模型并找到合适的模型。


预测Acumos平台将上传的模型打包成Docker映像中的微服务,该映像可以部署并执行其功能(预测、分类等)。一旦部署,用户就可以向这个正在运行的微服务发送输入,并通过restfulapi接收其输出。



Acumos架构




模型接口统一


Acumos的一个特点是它的拖放设计器。为了能够安全地重用和组合模型,我们需要理解和描述模型的接口(即输入和输出)。Acumos使用ProtocolBuffers提供跨语言和跨平台支持。ProtocolBuffers用于序列化训练和测试数据,以便在本地客户端和服务之间以及服务之间进行传输。ProtocolBuffers支持多种语言,并且是跨平台的。ProtocolBuffers最大优点是,与类似XML的方案相比,它紧凑高效,能够处理大量数据。



模型序列化


上传模型时,Acumos API需要在本地序列化模型,然后在Acumos平台内反序列化。其中最具挑战性的方面是理解模型的软件依赖性。Acumos不需要用户手动提供依赖关系列表;反之,我们通过内省模型来推断这些依赖关系。在Pythoy client库中,在序列化期间遍历对象,然后标识和记录所需的库。此外,使用静态分析技术来检查源代码并找到所需的依赖。



微服务生成与部署


Acumos平台将模型打包为Docker映像,可将其部署到适当的运行时环境中。Docker镜像存储在Acumos数据库中。最终用户可以下载Docker映像并启动 Dockerized 模型服务。可以通过启动的模型服务进行预测。


最后一步是将工作应用程序部署到运行时系统中。Acumos将解决方案打包成Docker映像,然后可以将其部署到任何Docker环境中,并通过一组容器管理工具(如Kubernetes)进行管理。这样的镜像可以很容易地部署到Google云、Azure、AWS或其他流行的云服务,部署到任何企业数据中心或任何实时环境,只要它支持Docker。然后应用程序开发人员可以通过Restful API使用。


示例





总结


通过工程化的手段与容器化特性相结合,实现模型标准与部署的灵活性。


参考

Packaging and Sharing Machine Learning Models via the Acumos AI Open Platform



机器学习平台历史文章



以上是关于Acumos机器学习平台的模型打包与共享部署的主要内容,如果未能解决你的问题,请参考以下文章

机器学习PMML简述

机器学习模型高性能高并发部署实践探索

机器学习模型高性能高并发部署实践探索

机器学习平台带给QA的挑战

云计算与数据科学:Microsoft Azure 机器学习与R 简介

年末抽奖送书 | 《机器学习:软件工程方法与实现》助力AI算法部署落地