从深度学习技术被提出以来,始终践行着“think big”的理念。特地是当预训练技术被广泛应用之后,更多的数据联合更大的模型参数量会继续带来模型性能的晋升,这条定律一直被近期公布的各种大模型所验证。在刚刚过来的 2021 年,百度文心大模型中的 ERNIE3.0、微软和英伟达联合推出的 MT-NLP 以及谷歌的 Switch Transformer 等等,参数量可达千亿甚至万亿。
在取得高性能大模型后,如何将大模型与业务联合实现落地变得尤为重要。以后预训练模型的落地流程可被演绎为:针对只有大量标注数据的特定工作,应用工作数据 fine-tune 预训练模型并部署上线。然而,当预训练模型参数量一直增大后,该流程面临两个无奈回避的问题。首先,随着模型参数量的急剧减少,大模型 fine-tuning 所须要的计算资源将变得十分微小,一般开发者通常无奈累赘。其次,随着 AIOT 的倒退,越来越多 AI 利用从云端往边缘设施、端设施迁徙,而大模型却无奈间接部署在这些存储和算力都极其无限的硬件上。
针对预训练大模型落地所面临的问题,百度提出对立特色示意优化技术(UFO:Unified Feature Optimization),在充分利用大数据和大模型的同时,兼顾大模型落地老本及部署效率。UFO 技术计划的次要内容包含:
- All in One:设计视觉示意多任务协同训练计划,免去了上游工作 fine-tuning 的过程,实现单模型在智慧城市多个外围工作成果全面当先
- One for All:独创针对视觉多任务的超网络与训练计划,反对各类工作、各类硬件的灵便部署,解决大模型推理性能差的问题。
All in One:
性能更弱小、更通用的视觉模型
之前支流的视觉模型生产流程,通常采纳单任务“Train from scratch”计划。每个工作都从零开始训练,各个工作之间也无奈互相借鉴。因为单任务数据有余带来偏置问题,实际效果过分依赖工作数据分布,场景泛化成果往往不佳。
近两年蓬勃发展的大数据预训练技术,通过应用大量数据学到更多的通用常识,而后迁徙到上游工作当中,实质上是不同工作之间互相借鉴了各自学到的常识。基于海量数据取得的预训练模型具备较好的常识齐备性,在上游工作中基于大量数据 fine-tuning 仍然能够取得较好的成果。不过基于预训练 + 上游工作 fine-tuning 的模型生产流程,须要针对各个工作别离训练模型,存在较大的研发资源耗费。
百度提出的 UFO All in One 模型,通过应用多个工作的数据训练一个功能强大的通用模型,可被间接利用于解决多个工作。不仅通过跨工作的信息晋升了单个工作的成果,并且免去了上游工作 fine-tuning 过程。UFO All in One 模型研发模式可被广泛应用于各类多任务 AI 零碎,以智慧城市的多任务大模型为例,UFO All in One 能够用单模型实现多个工作的 SOTA 辨认成果,同时多任务模型可取得显著优于单任务模型的成果,证实了多任务之间信息借鉴机制的有效性。
单模型笼罩智慧城市 4 大工作
智慧城市是目前计算机视觉技术最重要的利用场景之一,在智慧城市的各个工作中,往往要同时解决人脸、人体、车辆和通用物体等指标,这对 AI 零碎的多任务协同能力提出了十分高的要求。现有的视觉模型大多只能检测或辨认其中的一类指标,百度通过 UFO 计划中的多任务协同学习技术,产出城市视觉 UFO 模型同时解决这 4 类工作,并在 10 项公开数据集上成果获得 SOTA。上面具体介绍 UFO 的多任务协同训练计划。
工作设置与数据
为验证计划的有效性且便于偏心比照,应用 10 项公开数据集进行训练和测试。各个数据集的统计信息如表所示:
对立各工作的配置
从模型优化的层面来说,以往不同任务模型训练的 batch size、学习率乃至于优化器都各不相同。为了不便后续的多任务训练,UFO 计划对立了各个工作的模型构造以及优化办法。工作配置如下表所示:
异构数据采样策略和 Drop Path 正则技术
多任务学习首先面临的问题是如何构建 Batch。罕用的形式有两种,一种是同数据域的 Batch 组成,即 Batch 内的数据均来自同一个工作,通过不同的 Batch 抉择不同的工作来保障训练所有工作。另一种是不同数据域的 Batch 组成,即 Batch 内的数据来自不同的工作。同数据域的 Batch 组成面临的问题是当模型中应用 BatchNorm 这一常见的操作时,因为训练时的统计值(单任务统计值)和测试时的统计值(多任务统计值)差别较大,导致模型成果较差。如下表所示,通过 ResNet50 构造在人体 Market1501 和物品 SOP 两个工作中验证,应用混合数据域计划能够大幅提高两工作的成果。
在四个工作中,人体和物品的训练集数量最小,都只有 6 万张图片左右,而人脸和车辆则各有约 500 万和 40 万张图片。因而在多任务训练过程中,呈现出了人体、物品疾速过拟合,而人脸和车辆欠拟合的景象。为解决各个工作数据不平衡导致的过拟合问题,通过在训练过程中应用 Drop Path 正则化办法,在人体和物品工作中实现 mAP1%~3% 的晋升,同时其余工作成果持平或更好。
单模型刷新 10 项公开数据集 SOTA 后果
基于多任务协同训练计划失去的城市视觉 All in One UFO 模型,和之前的单任务 SOTA 后果相比,在 4 个工作的 10 个测试集上都达到了新的 SOTA,同时相比应用同样模型构造的单任务后果,在少数工作上 UFO 也体现的更好,证实了多任务之间信息借鉴机制的有效性。
在上图中,灰色示意示意城市视觉 All in One UFO 模型的后果,橙色示意和 UFO 模型应用雷同模型构造的单任务后果,蓝色示意之前同样数据集上最优的单任务后果。以上所有后果都不应用预训练数据,同时无重排序策略。
One for All:
灵便、可伸缩的弹性部署计划
受算力和存储的限度,大模型无奈间接部署在边缘设施上。一个针对云端设施开发的模型要部署到边缘设施或端设施时往往要进行模型压缩,或齐全从新设计,而预训练大模型的压缩自身须要消耗大量的资源。
另外,不同工作对模型的性能和性能要求也不同,例如人脸识别门禁系统只需具备人脸识别性能即可,智慧社区的管控零碎则须要同时具备人脸识别和人体剖析的能力,局部场景还须要同时具备车型辨认及车牌辨认能力。即使是同样的人脸识别工作,门禁系统和金融领取零碎对模型的精度和性能要求也不同。目前针对这些工作往往须要定制化开发多个单任务模型,加之须要适配不同的硬件平台,AI 模型开发的工作量显著增长。
针对大模型的开发和部署问题,UFO 给出了 One for All 的解决方案,通过引入超网络的概念,超网络由泛滥稠密的子网络形成,每个子网络是超网络中的一条门路,将不同参数量、不同工作性能和不同精度的模型训练过程变为训练一个超网络模型。训练实现的 One for All UFO 超网络大模型即可针对不同的工作和设施低成本生成相应的可即插即用的小模型,实现 one for all tasks 和 one for all chips 的能力。
超网络设计与训练计划
UFO 基于 Vision Transformer 结构设计了多任务多路径超网络。超网络分为多路径 FFN 超网和与可伸缩 attention 超网两局部。与谷歌 Switch Transformer 不同的是,UFO 的超网不同的门路除可抉择不同 FFN 单元,同时 Attention 模块反对依据不同工作弹性伸缩,实现网络的搜寻空间扩大,为硬件部署提供更多可选的子网络,并晋升精度。
UFO 还专门设计了针对多任务超网络的训练计划。首先针对超网络中的 FFN 超网模块,每个工作的每个 block 中会主动学习共享 FFN(FFN-shared)和该工作专属 FFN(FFN-taskX)的加权系数,所有工作都会更新共享 FFN 的参数,特定工作只会更新专属的 FFN 参数。在 FFN 超网训中,对于每个 block, 每个子网络都有三种不同的门路抉择,即抉择共享 FFN,抉择专属 FFN 或者抉择加权的 FFN。对于所有的 FFN,都能够抉择不同的放缩系数。因而 FFN 超网络中共有中共有(T3ratio)^L 种不同的 FFN 门路,其中 T 为 task 的数量,L 为网络的层数, ratio 为放缩系数的数量。而对于 self-attention 超网,每个子网络能够抉择不同的 Head 数量以及 block 的反复次数。
One for all tasks
因为在训练超网的过程中应用了各个工作的数据,并对超网施加工作束缚,能够让相干的工作共享更多的参数,而不相干的工作之间尽量减少烦扰,从而取得针对不同工作最优的子网络模型。在业务利用时,只须要依据不同子网络在特定工作的成果,抽取出对应的子网络结构和参数,即可间接部署,无需反复训练。
One for all chips
针对不同平台存储容量和算力不同,从训练好的 UFO 超网络模型中抉择不同大小和计算量的子网络进行部署。因为超网络中子网络的数据泛滥,每个子网逐个测试精度和延时并不事实,因而在 UFO 中,应用了 GP-NAS【1】中的基于高斯过程的超参数超参预计技术,只需采样超网络中大量子网络进行评估,即可精确预测出其余网络的精度和速度。
单超网络撑持智慧城市多任务灵便部署
基于上述计划,应用公开数据训练的 One for All UFO 超网络模型能够在智慧城市人脸、人体、车辆和物品 4 类工作的 6 个公开测试集上精度达到 SOTA,同时从 UFO 超网络中抽取的子网络,在参数量压缩 20%~30% 的状况下,同样能够超过之前 SOTA 的后果。
结语
只管大模型一次次刷新了记录,展现出惊人的成果,但对于工业界而言,势必要面对如何利用落地的问题。百度提出的对立特色示意优化技术(UFO),给出了预训练之外的另一个解决方案:在模型生产层面,通过 All in One 计划,充分利用大数据和大模型带来的收益,将多任务整合至一套训练框架和模型,通过跨工作的信息量带来更高的特定工作收益。在部署层面,基于 One for All 计划,仅应用单个超网便可撑持不同任务模型在不同平台、不同算力设施上的自适应部署,实现模型的即插即用。
目前 UFO All in One 模型曾经在飞桨 PaddlePaddle 上凋谢,UFO One for All 模型也将在近期凋谢,理解更多 UFO 技术细节,能够通过以下链接:
https://github.com/PaddlePadd…
附录
【1】GP-NAS: Gaussian Process based Neural Architecture Search,CVPR 2020