MLModelCI – 自动化机器学习服务构建平台

黄以正

前不久,南洋理工大学的科研人员发布了一项最新的机器学习系统工作: MLModelCI — 一站式机器学习模型部署推理服务平台,该工作现在已经成功被接收为 ACM Multimedia 2020 的Open Source Competition Paper,欢迎访问开源地址:https://github.com/cap-ntu/ML-Model-CI

试用、反馈、贡献代码、参与到我们的开源工作中!

本篇将简要介绍我们的平台特性。

机器学习的“后五年”

ML-Model-CI 的研发处于一个关键的时代:当今社会 Machine Learning (机器学习) 技术,特别是 Deep Learning (深度学习) 已经被广泛的应用到各种多媒体应用当中,从日常生活中处处可见的炫酷的短视频分析,精准的淘宝天猫推荐系统,到震惊全球的 Google Alpha GO (围棋AI) 和让人叹为观止的波士顿动力机器人。AI, ML 这些关键词已经深深地影响了我们这一代人……

但是机器学习的挑战却没有因为这些成就而消失,在资本和人力的注入下,深度学习科研得到了一个爆发性的增长,大量新型的网络结构被每时每刻研发出来,庞大的训练时长和参数量为深度学习训练的硬件带来了巨大的挑战,同时也为大规模的模型部署和线上服务系统带来了新的机遇和挑战。

有人说机器学习的前五年是在集中力量研发更加准确的AI模型和算法,而后五年是什么呢?个人觉得后五年科研圈和工业界都会将更多的精力放在新型硬件的研发,大规模机器学习系统的设计和AI落地上。最近知乎上有一个回答非常的火爆:“如何看待2021年秋招算法岗灰飞烟灭?”,这个问题引发了一众领域内从业者的回答和感慨。

其中有一位机器学习算法工程师回答了自己对于招人的需求:

可以很明显的感受到,现在的社会更加需要技术的落地,能够将机器学习模型和算法快速变成实际应用的人才能够在这样激烈的竞争中存活下来。

但纷繁复杂的AI 模型,多如天星的网络结构,工程师在实际落地中要如何进行选择,并且如何最快速度地将一个模型变成能够与前后端对接的预测接口呢?

MLModelCI 应运而生。

从 “模型” 到 “应用”

从模型到实际的应用,这是一个学术界常常忽视的gap。实际上,考虑到不同的生产环境场景,模型部署往往需要很多繁琐的转化和部署工作。Ml-Model-CI 就是为了解决这么一个问题,我们将机器学习模型部署到创建前后端应用的中间流程抽象出几个部分,通过软件工程中持续集成/分发 (CI/CD) 的思想,构建了一个可以自动化这些流程的一站式平台,让多软件开发和科研人员能够在第一时间获得模型之后对模型进行类型转化,优化,管理,测试和分发部署。

关于ML-Model-CI 系统的具体实现,由于机器学习模型部署涉及到不同的模型训练框架以及模型部署工具,为了兼容这些不同的平台,使得各种不同的模型都能够在 ML-Model-CI 中成功优化部署。ML-Model-CI 选择使用 Python 对这些基层的工具进行了一个封装,并且在此基础上添加用于管理模型信息和权重的数据库、自动化测试以及数据处理的功能。ML-Model-CI 的具体架构如下所示:

在 ML-Model-CI 的支持下,构建一个机器学习应用变得更加的简单:工程师只需要获得预训练模型,将模型注册到ML-Model-CI 中,ML-Model-CI 就会自动地将模型转化为其他可用的平台格式 (目前支持 TensorFlow-SavedModel, TensorRT, TorchScript, ONNX 模型的相互转化),并且将转化好的模型添加到本地的一个数据库中。有了这个数据库,管理大量的模型和实验变得更加井井有条。

当ML-Model-CI 运行的机器上有空闲的计算力(如空闲的GPU)时,它会自动地将模型部署到空闲的机器上对其进行基准测试。测试的结果包括硬件利用率,推理的延迟和吞吐量,这些基准测试的信息将会被自动地存储到数据库中。工程师在进行模型选择的时候会因为这些信息而更好的做出判断,从而提高构建的机器学习应用的性能。

当然,ML-Model-CI 也可以帮助工程师将模型一键分发到指定的机器上,在部署成功之后返回用于推理的 RESTful 或者 gRPC 接口,工程师只要开始编写软件客户端即可。构建机器学习的高性能应用从此变得更加的简单快速。

从模型到最终的应用,ML-Model-CI 提供了一种端到端的实验平台,同时也为机器学习推理部署系统的设计和之后利用自动化测试的数据进行的科研探索,提供了新的机会和方式。在此基础上仍然有许多的工作,ML-Model-CI 目前的开源软件仍然存在许多的不足,希望有兴趣的朋友们积极地加入到我们的社区,帮助 ML-Model-CI 变得更好。

参考链接:

[1] https://arxiv.org/pdf/2006.05096 (ML-Model-CI paper link)

[2] https://github.com/cap-ntu/ML-Model-CI (ML-Model-CI Github link)

[3] https://www.zhihu.com/question/406974583 (知乎问题 《如何看待2021年秋招算法岗灰飞烟灭?》)

Leave a Reply

Your email address will not be published. Required fields are marked *