面向推理训练一体化的 MNN 工作台

作者:修玉同(音弦)

MNN 工作台是阿里淘系端智能团队构建并对外免费开放的一站式端侧 AI 研发平台,它基于已开源的 MNN 深度学习端侧推理引擎(开源地址:github.com/alibaba/MNN ),内嵌模型工具、单机预训练模版、开箱即用算法集、端侧真机断点调试以及独创的三端一体部署方案等沟通的三要素是什么一系列能力。自对外开放以来,MNN 工作台始终致力于解决 降低对 AI 感兴趣的开发者们的参与门槛提升算法与工程之间协作效率 两个端侧 AI 发展的核心问题,深受广大端侧开发者的好评。

但在好评之余,MNN 工作台团队仍在持续思考:在让迭代算法是什么变得更加高效、部署验证更加连贯、模型生产更加简单这几点上,我们真的做到极致了吗?在面向不同分层的开发者时,我们真的解决了他们所有的核心诉求吗?

因此在和不同团队与阿里众包开发者沟通交流后,我们将目光聚焦在算法设计与分析了两大方面:

  1. MNN 工作台的阿里云邮箱个人版部署调试体验非常流畅,但是缺乏杀手锏级别的训练能力,这会导致训练 – 部署的整体流程产生割裂;
  2. 算法逐渐产生复沟通杂、多任务、多模型协作的趋势,如何针对这一问题提供更有效的解决方案,也是一个亟需攻克的难点。

构建强大专业的训练能力

MNN 工作台提供算法导论了开箱即用的算阿里巴巴股票法模型市场以及内置的多项预训练模版,面向开发者提沟通作文供极致算法是什么简单的模型生产方式,这从一定程度上为端侧 AI 场景的普及打下了基础。但是随着越来越多专业级算法用户的加入使用,MNN 工作台现有的训练能力也暴露了诸多弊端:

面向推理训练一体化的 MNN 工作台
图 1 – 过去的一站式工作流

  • 模型市场 / 预训练模版面向的是简单通用的场景,仅对外暴露了非常少的模型参数,无法按照专业算法的诉求进行个性化修改和定制;
  • MNN 工作台先github直播平台永久回家前的训练流程都是基阿里巴巴股票于 MNN 训练机制运行在单一设备上,这从一定算法的特征程度上限制了数据集与训练参数,导致最终的模型效果无法满足复杂业务场景下的高质量要求。

基于此,在 MNN 工作台深度学习中嵌入专业级的训练能力融合成为推训一体的完整工作算法设计与分析流迫在眉睫。考虑到训练需要大规模的集群资源及调度管理能力,我们选择和阿里云 PAI-DLC 团队合作,借力其沟通作文强大的云端基础设施打造契合于端侧 AI 研发算法的空间复杂度是指流程的训练能力。在整个实施过程中,MNN 工作台并不是简沟通100单的将云端训练概念照搬以及 API 联调,而是结合自身洞察到的端侧部署验证遇到的痛点,从用户视角出发进行阿里云盘的链路设计:

面向推理训练一体化的 MNN 工作台
图 2 – 基于 PAgithub打不开I-DLC 的推理训练一体化工作流

  • PAI-DLC 是一个独立的训练集群,训练过程涉及的代码需要通算法分析的目的是过 GiGitHubt 提交阿里巴巴1688货源批发官网,数据、样本及模型等还需要通过 NAS / OSS 提供,这些环节都需要人为的进行配置,配置成本较高。因此 MNN 工作台整体串联了相关系统,仅需要用户简单点击几下鼠标,相关数据github是干什么的github是干什么的等就会自动同步对应的位置,再配合相关自动化脚本协助用户完成繁琐重复性的工作;
  • 模型产出到部署到终端设备上还有一定距离。千万沟通的艺术别小看这最后一公里,传统的端侧算阿里法部署流程需要工程算法分析的目的是团队的介入支持,相关参数效果调沟通整还需要不断沟通联调,消耗算法耐心和精力。而利用 MNN 工沟通技巧作台三端一体的特性,算法同学一键下载对应的模型文件、编写简短几行代码就可以完成真机效果验证,真正做到一站式训练部署的顺滑体验;
  • 针对端侧模型轻量化的特点,我们也在流程中融入了 MNN 量化稀疏算法能力,让算法可以高效对比不同模型参数计算量下的效果。

面向推理训练一体化的 MNN 工作台
图 3 – 推理训练一体化工作流演示

功能精进:多窗口、算法设计与分析联合调试与 Git Flow

随着推训一体工作流的逐步完善,一个全新的问题也随之浮出水面:云端训练的耗时冗长,为了节阿里巴巴1688货源批发官网约时间如何同时训练多个模型?

在此之前,工作台仅支持单窗口“独占”的运行模式,即用户同一时刻只有一个工程能够享受到沟通的重要性一站式工作的“红利”,为了操作其他工程,用户只能从当前工程切出,这像极了智能机之前的“老年机”交互,给用户带来了很大不便。此外,一些复杂算法工程师的端计算场景也需要对多个工程进行联动开发和调试,将工作台改造为支持多开势在必行。

因此自推训一体平台萌芽之际,我们就开始了对工作台多开能力的改造,阿里云最终github中文社区我们完成了工作台底层进程模型和 IPC 模型的改造,并在端侧算法是什么 DebugSDK 支持了一对多连接的能力,让工作台实现了从“老年机”到“智能机”时代的跨越:

面向推理训练一体化的 MNN 工作台
图 4 – MNN 工作台多窗口架构

工作台进入“智能机”时代为沟通的三要素是什么端侧的算沟通的三要素是什么法研发带来了更多可能,自此之后你不必再为使用其他功能要关掉当前工程而苦恼了:现在你可以同时打开多个工程,同时开发和提交多份训练代码,在同一台手机上调试多个端计算工程,在开发的同时使用模型工具等等:

图 5 – MNN 工作台多任务联合调试github中文社区

图 6 – 利用多窗口能力同时访问多个模型工具

工作台从单窗口变成多窗口意味着用户需要管理的工程变多了,为了避阿里云盘免混乱,全链路的所有操作最好能够完全GitHub在其对应的工作台窗口中完成,通过梳理细节我们发现无论端计算发布还是远程训练都少不了基于 Git 的代码发布流程,如果工作台不能支持完备的算法工程师 Git 操作那么整个工作流依然是割裂的因此算法工程师我们在工作台中移植了可视化的 Git Flow,它支持通过 Diff Edit阿里拍卖or 检查变更,可阿里拍卖视化编辑 Git 工作区,通过命令菜单执行 Pull / Push / Stash 等操作,通过 Git 组件你可以轻松完成代码github下载检查和发布。推训一体平台配合 Git Flow 真正意义上实现了端侧算法工程全链路工作都在同一个工作区完成

面向推理训练一体化的 MNN 工作台
图 7 – 通过 Git Flow 组件进行可视化版本控制

最佳实践

基于推训一体工作流和工作台完善的集成开发环境,我们可以快速实现从 0 到 1 的端侧算法工程构建,首先我们需要创建一个 PAI 训练工程,编写好训练代码,进行本地阿里嘎多训练验证:

面向推理训练一体化的 MNN 工作台
图 8 – 使用本地环境运行训练工程

本地验证无阿里巴巴股票误后,算法设计与分析我们可以一键推送到云端 PAI-DLC 容器中进行训练,训沟通能力练结束后可一键将训练产物拉回本地:

面向推理训练一体化的 MNN 工作台
图 9 – 云端训练和训练产物下载

云端训练产物往往要经过诸如转换阿里嘎多、量化等模型工具的处理才能在端侧使用,借助于工作台多窗口能力你可以直接在模型上右键打开任意多个模型工具进行高效的模型处理:

面向推理训练一体化的 MNN 工作台
图 10 – 一键执github汤姆行多种模型工具

沟通的重要性后,我们可以切换到三端一体的端侧开发部署环境进行验证,如果阿里云邮箱个人版在验证过程中遇到问题我们可以无缝切换回算法导论训练工程重复前面的步骤:

面向推理训练一体化的 MNN 工作台
图 11 – 端侧部署与调试

推训一体工作流较为完整的解决了端侧算法训练与部署割裂的问题,其中训练部分通过端云结合的github直播平台永久回家手段让开发者无需感知端和云的差异,推理验证部分借助三端一体和工作台强大的调试能力让算法可以在端侧独立进行调试和部沟通的重要性心得体会署。目前这些能力均已开放,你可以在 w沟通100ww.mnn.zone 下载 1.6.0 及以后版本的 MNN 工作台进行阿里巴巴1688货源批发官网体验,推训一体的操作方式可参考 MNN 工作台推训一体平台操阿里云邮箱个人版作手册。

结语

在过沟通的重要性心得体会去这半年,MNN 工作台github直播平台永久回家始终秉持「解决用户真正的需求」的理念,不断与工程、算法同学深入交流,沟通其在端侧 AI 研发中遇到的种种问题。从调试、真机验证到实时性能评测,一系列沟通技巧功能的推出都展现github是干什么的了我们在解决端侧 AI 研发全链路问题上的决心和能力。而随着集成专业级训阿里供应链练能力的 MNN 工作台版本发布,相github是干什么的信会给大家带来更好的使用体验。

关注【阿里巴沟通技巧巴移动技术】微信公众号,每周 3 篇移动技术实践&干货给你思考!