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

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
简介: 本文聚焦MNN 工作台的两个方面:如何构建强大专业的训练能力、如何解决多任务多模型协作的算法。

1.gif

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

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

因此在和不同团队与开发者沟通交流后,我们将目光聚焦在了两大方面:

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

构建强大专业的训练能力


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

image.png

image.gif图 1 - 过去的一站式工作流

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

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

image.png

image.gif图 2 - 基于 PAI-DLC 的推理训练一体化工作流

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

02.gif

image.gif图 3 - 推理训练一体化工作流演示

功能精进:多窗口、联合调试与 Git Flow

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

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

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

image.png

image.gif图 4 - MNN 工作台多窗口架构

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

3.gif

image.gif图 5 - MNN 工作台多任务联合调试

4.gif

image.gif图 6 - 利用多窗口能力同时访问多个模型工具

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

image.png

image.gif图 7 - 通过 Git Flow 组件进行可视化版本控制


最佳实践


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

image.png

image.gif图 8 - 使用本地环境运行训练工程

本地验证无误后,我们可以一键推送到云端 PAI-DLC 容器中进行训练,训练结束后可一键将训练产物拉回本地:
image.png

图 9 - 云端训练和训练产物下载

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

图 10 - 一键执行多种模型工具

最后,我们可以切换到三端一体的端侧开发部署环境进行验证,如果在验证过程中遇到问题我们可以无缝切换回训练工程重复前面的步骤:

image.png

image.gif图 11 - 端侧部署与调试

推训一体工作流较为完整的解决了端侧算法训练与部署割裂的问题,其中训练部分通过端云结合的手段让开发者无需感知端和云的差异,推理验证部分借助三端一体和工作台强大的调试能力让算法可以在端侧独立进行调试和部署。目前这些能力均已开放,你可以在 https://www.mnn.zone 下载 1.6.0 及以后版本的 MNN 工作台进行体验,推训一体的操作方式可参考 MNN 工作台推训一体平台操作手册。


结语


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


团队介绍


我们是来自大淘宝技术的端智能团队,是淘宝端侧智能基础技术的奠基者和应用创新的开拓者,也是 AR/VR 方向的探索先锋队。我们负责淘宝的开源推理引擎 MNN、搜推场景的端计算框架 Walle、AR 试妆试鞋等创新应用。团队具备行业领先的技术实力和业务能力,是一支专业极致、应用创新的全栈团队,包含算法、渲染、移动端、服务端等多工种同学。现邀请有技术、有理想、有追求的同学加入我们。

相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
19天前
|
人工智能
一键生成视频!用 PAI-EAS 部署 AI 视频生成模型 SVD 工作流(清晰的实例)
用 PAI-EAS 部署 AI 视频生成模型 SVD 工作流(清晰的实例)
153 2
|
3月前
|
机器学习/深度学习 数据采集 自然语言处理
机器学习模型的部署与上线:从训练到实际应用
在机器学习中,模型训练只是整个过程的一部分。将训练好的模型部署到实际应用中,并使其稳定运行,也是非常重要的。本文将介绍机器学习模型的部署与上线过程,包括数据处理、模型选择、部署环境搭建、模型调优等方面。同时,我们也会介绍一些实际应用场景,并分享一些经验和技巧。
|
4月前
|
机器学习/深度学习 弹性计算 TensorFlow
阿里云GPU加速:大模型训练与推理的全流程指南
随着深度学习和大规模模型的普及,GPU成为训练和推理的关键加速器。本文将详细介绍如何利用阿里云GPU产品完成大模型的训练与推理。我们将使用Elastic GPU、阿里云深度学习镜像、ECS(云服务器)等阿里云产品,通过代码示例和详细说明,带你一步步完成整个流程。
865 0
|
3月前
|
人工智能 算法 开发工具
Mixtral 8X7B MoE模型在阿里云PAI平台的微调部署实践
Mixtral 8x7B 是Mixtral AI最新发布的大语言模型,是当前最为先进的开源大语言模型之一。阿里云人工智能平台PAI,提供了对于 Mixtral 8x7B 模型的全面支持,开发者和企业用户可以基于 PAI-快速开始轻松完成Mixtral 8x7B 模型的微调和部署。
|
4月前
|
机器学习/深度学习 异构计算 AI芯片
云端开炉,线上训练,Bert-vits2-v2.2云端线上训练和推理实践(基于GoogleColab)
对于笔者这样的穷哥们来讲,GoogleColab就是黑暗中的一道光,就算有训练时长限制,也能凑合用了,要啥自行车?要饭咱也就别嫌饭馊了,本次我们基于GoogleColab在云端训练和推理Bert-vits2-v2.2项目,复刻那黑破坏神角色莉莉丝(lilith)。
云端开炉,线上训练,Bert-vits2-v2.2云端线上训练和推理实践(基于GoogleColab)
|
24天前
|
人工智能 编解码 对象存储
一键生成视频!用 PAI-EAS 部署 AI 视频生成模型 SVD 工作流
本教程将带领大家免费领取阿里云PAI-EAS的免费试用资源,并且带领大家在 ComfyUI 环境下使用 SVD的模型,根据任何图片生成一个小短视频。
|
3月前
|
机器学习/深度学习 自动驾驶 搜索推荐
大模型技术的端侧部署
【1月更文挑战第14天】大模型技术的端侧部署
194 4
大模型技术的端侧部署
|
3月前
|
机器学习/深度学习 人工智能 安全
多模态将成为大模型标配
【1月更文挑战第10天】多模态将成为大模型标配
42 1
多模态将成为大模型标配
|
4月前
|
机器学习/深度学习 人工智能 算法
极智AI | 教你简化onnx upsample算子
本文介绍了简化 onnx upsample 算子的方法。
99 0
|
4月前
|
人工智能 Ubuntu C++
极智AI | ncnn模型转换及量化流程
本文介绍一下 ncnn 模型转换及量化流程,以 from_darknet yolov4 为例。
146 0