乐趣区

关于程序员:OpenMMLab-20新架构新算法新生态

2022 年 9 月 1 日,2022 世界人工智能大会(WAIC)在上海隆重开幕,上海人工智能实验室公布了“OpenXLab 浦源”人工智能开源凋谢体系。作为其中重要我的项目之一,OpenMMLab 2.0 浦视视觉算法体系也正式亮相,展现了新架构、新算法、新生态,迎来开源后最大版本升级!

系列直播为了向大家更好地介绍 OpenMMLab 2.0 的技术升级,咱们策划了系列直播,间断 3 天,13 个算法库的研究员亲临,你所有的疑难,这里都能解答!欢送大家在开播工夫进入 OpenMMLab 知乎和 B 站直播间观看直播~OpenMMLab 知乎直播间 OpenMMLab B 站直播间具体直播安顿见下图:

开发保护打算社区力量是 OpenMMLab 生态中至关重要的局部,OpenMMLab 2.0 还处于初期阶段,咱们欢送社区和咱们一起欠缺。咱们有如下开发保护打算:

公测流动 OpenMMLab 2.0 公测流动期待你的参加!咱们将提供:新性能优先体验 / 一对一答疑与技术支持 / 优先提交 PR 获取荣誉处分 非常欢送:抉择感兴趣或罕用的算法库最新版试用 / 提交应用反馈或是提交问题 issue/pr 点击下方链接,填写问卷申请,通过审核的社区用户将受邀退出 OpenMMLab 2.0 公测用户群。OpenMMLab 2.0 公测流动申请问卷总体介绍 OpenMMLab 首次公布于 2018 年,过后算法开源还没有蔚然成风,复现靠运气,比照凭人品,PyTorch 生态也远不足以抗衡 TensorFlow。模块化设计、算法反对丰盛的检测算法库 MMDetection 的呈现,为这个钻研畛域带来了新的气味。自此之后,越来越多的标准化算法工具箱涌现进去,开源也逐步成为研究者们天经地义的事件。从 2018 年到 2021 年,OpenMMLab 也一直推出新的算法框架,笼罩更多的钻研畛域和算法,从一枝独秀到百花齐放,造成了 OpenMMLab 1.0 版本。代码品质和易用性始终是咱们关注的重点,造成了良好的开发体验和口碑,被寰球 100 多个国家和地区的开发者应用。通过一年的潜心研发,OpenMMLab 2.0 正式亮相。咱们公布了新一代训练架构 MMEngine,以对立的执行引擎,灵便反对了各算法库中 20 个以上的计算机视觉工作和半监督、自监督等丰盛的训练流程。在此基础上,OpenMMLab 2.0 还新增了 MMRotate,MMFewshot,MMFlow,MMHuman3D,MMSelfSup,MMRazor 六个算法库和 MMDeploy 模型部署框架,实现了从模型训练、部署到推理的无缝连接,买通了 AI 落地的最初一公里。OpenMMLab 2.0 还对训练和推理芯片进行了宽泛适配,并在新一代外围架构设计之初就将多训练芯片的反对纳入考量,促成了国产软硬件生态独特倒退。

新架构基于 MMEngine,OpenMMLab 2.0 的外围架构面目一新,具备通用、对立、灵便三大特点。通用 OpenMMLab 2.0 中的 20 多个算法工作都基于一个弱小且通用的训练器。和 OpenMMLab 1.0 中的训练器相比,新的训练器以对立的形式实现了数据、模型、评测等组件的结构流程供各算法库调用,以更加可拓展的形式反对了不同芯片环境(CPU,GPU,Apple M1,MLU 等)下的分布式和非分布式训练,并反对了一些最新的大模型训练技术如 FullyShardedDataParallel。上游的各种算法库都能够间接应用这个训练器,在简化代码的同时,通过依赖最新的 MMEngine 享受最新的训练技术和芯片反对。同时,这个通用的训练器还反对被 OpenMMLab 体系外的算法库独自应用,它能够做到以大量代码训练不同工作:例如仅应用 80 行代码训练 imagenet(而 pytorch example 须要 400 行),100 行代码训练 CLIP(OpenCLIP 中有上千行训练代码),还能轻松兼容以后风行的算法库中的模型,例如 TIMM,TorchVision 和 Detectron2。对立 OpenMMLab 1.0 中的各算法库别离反对了感知、生成、预训练等 30 多个算法方向,每个算法方向中还有各种不同的算法和训练范式,各算法库也因而在接口上存在细微差别,难以兼容,使得反对新芯片和训练技术的开发成本和算法库数量成正比。在 OpenMMLab 2.0 中,咱们将不同算法的训练流程对立拆解成了数据、数据变换、模型、评测、可视化器等形象,并且将这些接口进行了对立设计,在 MMEngine 和 MMCV 中实现了若干基类来定义它们的接口。为了放弃架构的开放性,上述要害形象都在 MMEngine 中有一个对应的注册器进行治理,使得合乎接口定义的扩大模块只有被正确注册进了注册器中,就能够通过配置文件进行应用。OpenMMLab 2.0 中的各个算法库都继承了这些注册器,并且基于 MMEngine 的基类和接口约定重构了相干组件,领有了对立的训练 / 测试 / 可视化形象、对立的数据接口和数据流。示意如下:

同时,OpenMMLab 2.0 中的各个算法库也继承了 MMEngine 中的注册器,使得一个合乎接口约定的拓展模块只须要被实现一次,就能够被 OpenMMLab 2.0 中的其余算法库应用。例如,咱们能够基于一份代码搞定所有工作的轻量化,使得 MMRazor 1.x 能够优化 36% 的代码量;训练芯片等上下游也只需一次性对接 MMEngine 接口,便可适配多个算法库。灵便在 OpenMMLab 2.0 中,咱们对算法训练流程进行了更细粒度的模块化设计,使得整个训练流程中有了更多可定制化的空间,包含在训练器中减少更多形象模块、更多可自定义的插入点,和组件之间的信息交换渠道 MessageHub 等。上述贴心的设计提供了一个“乐高”式的训练流程,用户能够像拼乐高一样,得心应手地“插拔”各种模块,实现训练流程的定制化,例如:依据迭代数、loss 和评测后果等动静调整的训练流程、优化策略和数据加强策略,实现 early stopping,ReduceLROnPlateau 等任意模式的模型权重均匀,如 Exponential Momentum Average (EMA) 和 Stochastic Weight Averaging (SWA) 训练过程中针对任意数据和任意节点的灵便可视化和日志管制逐参数的优化配置混合精度训练的灵便管制新的架构除了通用、对立、灵便等三大亮点,还针对各个模块进行了精心设计和优化(设计的工夫和开发工夫五五开),均衡兼顾了简略性、扩展性和效率。在代码可读性和文档方面,咱们对 MMEngine 的要求也比以往的各个算法库都要严格,心愿大家在浏览 MMEngine 的源码时还能有所播种(copy 的时候记得 star),也欢送大家试用 MMEngine。新算法 OpenMMLab 2.0 中,咱们还公布了:6 个新的算法库 MMRotate 将指标检测从程度框拓展到旋转框,为场景文字、遥感影像、主动驾驶等畛域的利用打下了根底,为学术界和产业界提供了高效弱小的基准模型。MMFlow 高质量地反对了支流的光流预计算法模型,使得大量光流预计模型开箱即用,撑持了光流预计在动作辨认和视频超分辨率等视频工作中的广泛应用,促成社区的倒退。MMHuman3D 为人体参数化模型的研发提供了一个对立的测试基准,并且以对立的数据结构反对了 16 个罕用数据集,助力人体参数化模型的学术研究和利用研发。MMSelfSup 反对了多种自监督学习工作和一系列前沿算法,为自监督学习方向的钻研提供了对立的基准。MMFewShot 针对当下风行的少样本分类与检测算法,提供了对立的训练、推理、评估的算法框架,解决了因为样本选取的随机性,不同视觉工作中的少样本学习办法难以对立评估比拟的难题。MMRazor 整合了支流的模型轻量化算法,包含模型构造搜寻,模型剪枝与蒸馏,同时反对各类轻量化算法灵便组合利用于 OpenMMLab 其余算法库中,为模型在理论场景的应用提供了解决方案。1 个模型部署库 MMDeploy 建设了一个对立高效的模型转换框架,并实现了高度可扩大的组件式 SDK,反对了 7 种后端推理引擎,反对将 OpenMMLab 各算法库训练的模型一键式部署到硬件设施上并高效运行。为人工智能利用部署建设了一套适应全场景、高性能的部署框架,可高效适配各类芯片硬件,满足终端用户对人工智能利用的需要。CV 技术盛宴,期待你的参加!github.com/open-mmlab​…

退出移动版