34

陈天奇创业公司首个SaaS产品:快速构建部署ML应用,跨平台优化、基准和封装一条龙

 4 years ago
source link: https://www.jiqizhixin.com/articles/2020-03-26-11
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

我们都知道,将机器学习模型部署到设备时需要耗费大量的时间和算力,有时会力不从心。去年,知名人工智能青年学者、华盛顿大学博士陈天奇参与创建了 ML 创业公司 OctoML 。该公司致力于打造一个可扩展、开放、中立的端到端栈,用于深度学习模型的优化和部署。这不,他们推出了首个 SaaS 产品 Octomizer,其能够帮助开发者或数据科学家更方便、更省事省力地将 ML 模型部署到设备上。

今日,OctoML 公司正式在 Medium 上发表了一篇博文,介绍了他们正在进行的 Octomizer 项目——这是一个推动 ML 研究和实际应用部署的软件平台,力求让 ML 的应用简洁、快速、方便。

ZB36Fvf.png!web

机器之心对博客内容编译如下:

长期以来的 ML 痛点

机器学习和深度学习对计算机领域产生了巨大的影响,其发展看起来非常光明,很多工程师可能会将其加入到自己的工具中。但是,学界的快速发展和一些可以看到的应用外,ML 到真正的产品之路依然是由昂贵的专家铺就的——这些专家需要找到一种复杂而混乱的方案。但是,方案出来的时候,产品可能已经错过了市场周期,成本超支。总而言之:机器学习依然困难。

虽然很多科技巨头都在大力招聘优秀人才,但在机器学习社区中,所有人都会遇到以下两个难题:

痛点 1:机器学习库和服务依然处在低层等级,不能够很好地抽象复杂性。尽管有很多开源项目力求加快 ML 模型的应用,但是这些项目无疑都需要使用者对底层算法和计算细节有很好的认识。另外,这些项目的抽象性不一定很好,所以它们声称能够实现的「一键部署」或「易用」特性是达不到的。

痛点 2:ML 的计算很慢,而且不能够很好地支持移动端。很多时候,在某些硬件和软件上拟合地很好的模型换了平台和部署环境就会出现性能下降的问题。例如,你有一个不错的 ResNet-50 模型,在你最喜欢的硬件或软件平台上有着不错的性能表现。但是,如果将其部署在其他平台上,或者增加了几个训练的窍门,性能会大幅下降。

OctoML 推出首个 SaaS 产品 Octomizer

出现问题就要解决问题。几年前,我们中的一些人开始从头开始重新构建 ML 软件堆栈,从而修复机器学习存在的问题。2017 年 8 月,陈天奇等人开源了深度学习自动代码生成方法 TVM,对业界产生了深远的影响。利用这一工具,机器学习算法可以自动编译成可供下层硬件执行的机器语言,从而可以利用多种类型的算力。现在,大多数主要深度学习公司都在使用 TVM 框架,为亚马逊Alexa 唤醒词检测提供支持,并促使 Facebook 语音模型获得 80 多倍的性能提升。

通过与不断发展的社区共同构建深度学习编译器,亚马逊、Facebook、微软以及其他公司已经能够为它们的工作负载生成跨平台、高性能代码,这要比编写低级核心程序这种传统做法更为省时省力。

基于 TVM 的这些良好用例,我们意识到可以并且需要向更多的开发者展示该框架所带来的好处及其良好性能,所以创立了 OctoML 并创建了首个产品:Octomizer。

Octomizer 是一种软件即服务(SaaS)产品,旨在帮助任何人更方便地将 ML 模型部署为应用程序的一部分。开发者或者数据科学家只需上传机器学习模型(TF、PyTorch、ONNX 等),然后由我们在不同的硬件平台和应用语言运行时上对模型进行优化、基准测试和封装。

借助于 Octomizer,用户可以更方便地:

  • 减少从模型训练到模型部署期间的周转时间,进而提升数据科学团队工作效率;

  • 降低 ML 云操作成本;

  • 将更多模型部署到边缘、移动端和 AIoT 设备上,实现云操作零成本。

下图为 Octomizer 的整体工作流程:

iQryEfB.png!web

Octomizer 工作流程。

Octomizer 的效果

用户可以使用 Octomizer 来对模型在不同云 CPU 和 GPU 实例类型上的性能进行对比,并评估将模型部署到 ARM 移动端或嵌入式处理器上的设备分级需求,从而增强数据保密性,降低潜在硬件成本。接着就可以选择你所需要的部署封装格式了,如 Python wheel、具有 C API 的共享库、无服务器的云打包工具、具有 gRPC 或 REST 包装器的 Docker 图像以及 Maven Java 伪影等。

在收到二进制文件之后,用户即可以使用手头的任何部署装置来部署模型,并且借助 Octomizer API 进一步实现部署流程的自动化,进而作为应用现有 CI/CD pipeline 的一部分来构建或优化模型。

以往而言,用户需要耗费数周甚至数月时间将训练好的模型在不同设备上投入生产。借助于 Octomizer,所有这些耗时耗力的工作都可以避免了,并且也不用再担心性能、运算子和不同平台封装不一致的问题了。如此一来,更为接近边缘的部署可以节省计算成本、降低延迟、增强用户隐私和数据安全。

效果不仅仅如此,通过「ML applied to ML」编译流程在底层的更充分利用,用户还可以持续地改善模型的性能、内存占用和磁盘占用。并且,随着我们添加更多硬件、基准测试、封装格式以及更快的优化流程,Octomizer 能够继续提升自身效果。

目前,Octomizer 提供了内测的 beta 版,用户可以登记试用。

参考链接:https://medium.com/octoml/octoml-easier-machine-learning-67e217fffa20


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK