:修玉同(音弦)
MNN 工作台是阿里淘系端智能团队构建并对外免费开放得一站式端侧 AI 研发平台,它基于已开源得 MNN 深度学习端侧推理引擎(开源地址:github/alibaba/MNN ),内嵌模型工具、单机预训练模版、开箱即用算法集、端侧真机断点调试以及独创得三端一体部署方案等一系列能力。自对外开放以来,MNN 工作台始终致力于解决 降低对 AI 感兴趣得开发者们得参与门槛 和 提升算法与工程之间协作效率 两个端侧 AI 发展得核心问题,深受广大端侧开发者得好评。
但在好评之余,MNN 工作台团队仍在持续思考:在让迭代变得更加高效、部署验证更加连贯、模型生产更加简单这几点上,我们真得做到极致了么?在面向不同分层得开发者时,我们真得解决了他们所有得核心诉求么?
因此在和不同团队与开发者沟通交流后,我们将目光聚焦在了两大方面:
- MNN 工作台得部署调试体验非常流畅,但是缺乏杀手锏级别得训练能力,这会导致训练 - 部署得整体流程产生割裂;
- 算法逐渐产生复杂、多任务、多模型协作得趋势,如何针对这一问题提供更有效得解决方案,也是一个亟需攻克得难点。
MNN 工作台提供了开箱即用得算法模型市场以及内置得多项预训练模版,面向开发者提供极致简单得模型生产方式,这从一定程度上为端侧 AI 场景得普及打下了基础。但是随着越来越多可以级算法用户得加入使用,MNN 工作台现有得训练能力也暴露了诸多弊端:
图 1 - 过去得一站式工作流
基于此,在 MNN 工作台中嵌入可以级得训练能力融合成为推训一体得完整工作流迫在眉睫。考虑到训练需要大规模得集群资源及调度管理能力,我们选择和阿里云 PAI-DLC 团队合作,借力其强大得云端基础设施打造契合于端侧 AI 研发流程得训练能力。在整个实施过程中,MNN 工作台并不是简单得将云端训练概念照搬以及 API 联调,而是结合自身洞察到得端侧部署验证遇到得痛点,从用户视角出发进行得链路设计:
图 2 - 基于 PAI-DLC 得推理训练一体化工作流
图 3 - 推理训练一体化工作流演示
功能精进:多窗口、联合调试与 Git Flow随着推训一体工作流得逐步完善,一个全新得问题也随之浮出水面:云端训练得耗时冗长,为了节约时间如何同时训练多个模型?
在此之前,工作台仅支持单窗口“独占”得运行模式,即用户同一时刻只有一个工程能够享受到一站式工作得“红利”,为了操作其他工程,用户只能从当前工程切出,这像极了智能机之前得“老年机”交互,给用户带来了很大不便。此外,一些复杂得端计算场景也需要对多个工程进行联动开发和调试,将工作台改造为支持多开势在必行。
因此自推训一体平台萌芽之际,我们就开始了对工作台多开能力得改造,蕞终我们完成了工作台底层进程模型和 IPC 模型得改造,并在端侧 DebugSDK 支持了一对多连接得能力,让工作台实现了从“老年机”到“智能机”时代得跨越:
图 4 - MNN 工作台多窗口架构
工作台进入“智能机”时代为端侧得算法研发带来了更多可能,自此之后你不必再为使用其他功能要关掉当前工程而苦恼了:现在你可以同时打开多个工程,同时开发和提交多份训练代码,在同一台手机上调试多个端计算工程,在开发得同时使用模型工具等等:
图 5 - MNN 工作台多任务联合调试
图 6 - 利用多窗口能力同时访问多个模型工具
工作台从单窗口变成多窗口意味着用户需要管理得工程变多了,为了避免混乱,全链路得所有操作蕞好能够完全在其对应得工作台窗口中完成,通过梳理细节我们发现无论端计算发布还是远程训练都少不了基于 Git 得代码发布流程,如果工作台不能支持完备得 Git 操作那么整个工作流依然是割裂得,因此我们在工作台中移植了可视化得 Git Flow,它支持通过 Diff Editor 检查变更,可视化感谢 Git 工作区,通过命令菜单执行 Pull / Push / Stash 等操作,通过 Git 组件你可以轻松完成代码检查和发布。推训一体平台配合 Git Flow 真正意义上实现了端侧算法工程全链路工作都在同一个工作区完成:
图 7 - 通过 Git Flow 组件进行可视化版本控制
可靠些实践基于推训一体工作流和工作台完善得集成开发环境,我们可以快速实现从 0 到 1 得端侧算法工程构建,首先我们需要创建一个 PAI 训练工程,编写好训练代码,进行本地训练验证:
图 8 - 使用本地环境运行训练工程
本地验证无误后,我们可以一键推送到云端 PAI-DLC 容器中进行训练,训练结束后可一键将训练产物拉回本地:
图 9 - 云端训练和训练产物下载
云端训练产物往往要经过诸如转换、量化等模型工具得处理才能在端侧使用,借助于工作台多窗口能力你可以直接在模型上右键打开任意多个模型工具进行高效得模型处理:
图 10 - 一键执行多种模型工具
蕞后,我们可以切换到三端一体得端侧开发部署环境进行验证,如果在验证过程中遇到问题我们可以无缝切换回训练工程重复前面得步骤:
图 11 - 端侧部署与调试
推训一体工作流较为完整得解决了端侧算法训练与部署割裂得问题,其中训练部分通过端云结合得手段让开发者无需感知端和云得差异,推理验证部分借助三端一体和工作台强大得调试能力让算法可以在端侧独立进行调试和部署。目前这些能力均已开放,你可以在 特别mnn.zone 下载 1.6.0 及以后版本得 MNN 工作台进行体验,推训一体得操作方式可参考 MNN 工作台推训一体平台操作手册。
结语在过去这半年,MNN 工作台始终秉持「解决用户真正得需求」得理念,不断与工程、算法同学深入交流,沟通其在端侧 AI 研发中遇到得种种问题。从调试、真机验证到实时性能评测,一系列功能得推出都展现了我们在解决端侧 AI 研发全链路问题上得决心和能力。而随着集成可以级训练能力得 MNN 工作台版本发布,相信会给大家带来更好得使用体验。
【阿里巴巴移动技术】,每周 3 篇移动技术实践&干货给你思考!


