加速100倍,性能媲美SOTA,浙大提出无数据知识蒸馏新方法FastDFKD

简介: 加速100倍,性能媲美SOTA,浙大提出无数据知识蒸馏新方法FastDFKD

在无法获取到原始训练数据的情况下,你可以尝试一下这种新型蒸馏算法 FastDFKD,数据合成与现有的生成方法相比,可以实现 10 倍的加速,与非生成方法相比,甚至可以达到 100 倍以上的加速。


知识蒸馏(KD)最近成为一种流行的范式,它是一种很典型的模型压缩方法,可以复用如今在线流行的预训练模型。随着自然语言处理模型等进入了预训练模型的时代,模型的规模也在极速增长,例如 GPT-3 参数量达到 1750 亿。如何在资源有限的情况下部署使用这些庞大的模型是一个很大的挑战。

知识蒸馏在解决这一问题中占据了重要的地位。我们可以用它来有效地从大型教师模型学习小型学生模型,并且学生模型的性能也很不错。

KD 的传统设置需要拥有原始训练数据作为输入以训练学生模型。不幸的是,由于隐私或版权原因,在很多情况下,原始数据无法发布,用户只能使用预先训练好的模型,反过来,这对 KD 应用于更广泛的领域构成了主要障碍。

为了解决这个问题,有研究者(Lopes, Fenu,Starner 2017)提出了无数据知识蒸馏 (DFKD,Data-free knowledge distillation) 方法,这种方法假设根本无法获得训练数据。由于 DFKD 对训练数据的约束非常宽松,其在自然语言处理、计算机视觉等领域受到越来越多的关注。

DFKD 虽然取得了一些比较好的结果,但 SOTA 性能的 DFKD 方法仍然存在数据合成效率较低的问题,这使得无数据训练过程非常耗时,因此不适用于大规模训练任务。

在这项研究中,来自浙江大学、新加坡国立大学等机构的研究者引入了一种有效的解决方案 FastDFKD,其能够将 DFKD 加速一个数量级。FastDFKD 的核心是:复用训练数据中共享的公共特征,从而合成不同的数据实例。不同于之前单独优化一组数据,该研究建议学习一个元合成器(meta-synthesizer),可以寻求共同特征作为快速数据合成的初始化。因此,FastDFKD 只需几步即可实现数据合成,显着提高了无数据训练的效率。在 CIFAR、NYUv2 和 ImageNet 上的实验表明,所提出的 FastDFKD 实现了 10 倍甚至 100 倍的加速,同时保持了与当前 SOTA 相当的性能。


论文地址:https://arxiv.org/pdf/2112.06253.pdf

方法

在 DFKD 中,求解如下等式 (2) 的一种流行方法是直接按批次优化多种样本。


如下图 2 (a) 所示,基于批的方法独立合成不同的实例,仅考虑样本之间的关系。尽管这种方法取得了不错的结果,但 DFKD 方法通常存在数据合成效率低下的问题,因为制作大规模数据集需要大量优化问题,每个问题都需要数千步才能收敛。然而,来自同一域的数据通常具有一些共同特征,这些特征可以重复用于合成不同的样本。因此,FastDFKD 旨在提供一种学习共同特征来加速等式 (2) 优化的新型有效方法。


FastDFKD 方法的核心是复用共同特征,这是基于来自同一领域的数据通常共享一些模式,而这些模式可以被复用以合成不同的实例。该研究从生成的角度对共同特征进行了新的定义,并提出 FastDFKD 来捕获共同特征,以便通过元学习过程进行快速合成。

共同特征

作为快速无数据训练的关键步骤,需要给共同特征一个明确的定义,以构建用于网络训练的可优化目标。如图 2 (b) 所示,一种简单的复用策略是顺序特征复用,其中在先前合成中学得的特征直接用作初始化以制作新样本。然而,这种简单的方案存在一些问题,因为学得的特征仅来自单个数据点,可能并不总是可用于其他样本。

为了解决这个问题,该研究从生成的角度为共同特征创建了一个更自然的定义。首先考虑一个生成网络 G(z;θ),其中 z 为潜码(latent code),θ是可训练参数。对于每个样本 x_i ∈ D’ ,都可以找到一个潜码 z_i 来生成 x_i = G(z_i ; θ)。生成器描述了不同样本 x_i 的生成过程。在某种程度上,一组样本之间是否存在共同特征 D’ = {x_1, x_2, ..., x_N } 通常与不同数据实例的相似度高度相关,这意味着如果能找到最优参数 θ 使得不同样本的潜码 z = {z_1, z_2, ..., z_N } 在潜在空间中接近,那么生成器就可以隐式地捕获共同特征。基于此,该研究发现可以通过解决以下问题来学习共同特征:


上式 (3) 中 d_z 和 d_x 分别代表潜在空间和输入空间中的距离指标。上述优化旨在为数据集 D’找到一种生成过程,其潜在空间中的 z 距离尽可能的小,借助学得的共同特征和潜码 z 就可以有效获得多种样本。

然而在无数据环境中,合成数据集 D’在合成完成之前还不可用。因此,该研究用 DFKD 的逆向损失(inversion loss)L 替换式子 (3) 中第二项的 d_x,这就形成了用于共同特征学习的无数据目标:


元生成器

上述式子 (4) 的优化具有挑战性,因为它需要使用单个生成网络生成完整的数据集 D’,其中包括许多不可复用的特征。为此,该研究提出训练一个只包含共同特征的生成器,并在数据合成过程中动态合成其他缺失的特征,如图 2 (c) 所示。

具体来说,该研究用共同特征学习的目标来训练一个轻量级生成器,该生成器可以适应为在 k 步内合成不同的实例,表述为元学习问题的形式:


其中元学习的内循环(inner loop),它指的是从用于 x_i 合成的和潜码初始化的一种 k 步优化。内循环可以以如下形式展开:


值得注意的是,式子 (5) 与式子 (4) 中的共同特征损失起着相似的作用。内循环(即 k 步自适应)旨在通过显式优化式子 (4) 的第二项来学习用于合成的生成器。另一方面,外循环(outer loop)试图通过隐式优化式子 (4) 的第一项来使不同样本均能在 k 步优化中可达。优化方程 (6) 会自然地形成一个元学习问题,其中要用到初始化来实现快速适应。经过 k 步梯度下降后,该研究在损失函数 L_i 的指导下得到一组新的参数,梯度是:


其中代表使用等式(6)k 步自适应得到的优化结果,代表损失 L_i 指导下的合成结果。但是,请注意,公式 6 中的 k-step 自适应涉及 k 个梯度更新:


其中 g_k 是指在方程 6 的第 k 步计算的梯度,这将高阶梯度引入到生成器训练中,使的反向传播非常低效。受元学习先前工作的启发,该研究应用一阶近似来进一步加速梯度计算,将 3 中的高阶梯度视为常数并替换,在这种情况下,方程 7 中的梯度计算只涉及一阶梯度,可以简化为:


一阶近似直接使用在内循环中的自适应生成器上计算的梯度来更新元生成器。此外,通过使用自适应生成器和元生成器之间的参数差异来逼近方程 9 中的梯度,可以实现更有效的梯度近似,这进一步将方程 9 简化为:


综上所述,可以对元生成器进行如下优化:


算法 1 分为三个阶段:用于数据合成的 k-step 适应;用于通用特征学习的元学习 step;通过优化 KL 散度来更新学生模型的的步骤如下:



实验

基线:实验比较了两种 DFKD 方法:(1)和生成方法训练合成的生成模型进行比较,包括 DAFL、ZSKT、DFQ 和 Generative DFD(2)与分批(batch-by-batch)方式制作迁移集的非生成方法比较,包括 DeepInv 和 CMI。

CIFAR-10 和 CIFAR-100 分类结果。在 CIFAR-10 和 CIFAR-100 数据集上获得的学生模型准确率如表 1 所示。在表中,基线「Teacher」、「Student」和「KD」使用原始训练数据训练网络,不需要数据合成。


如表 1 所示,生成方法通常比 DeepInv 和 CMI 等非生成方法快 10 倍,因为生成方法只需要训练一个生成器进行合成就可以了。然而,由于生成网络的容量有限,我们发现数据集从 CIFAR-10 增加到 CIFAR-100,生成方法的性能趋于下降。相比之下,非生成式通常比生成式更灵活,因此更适用于不同的任务。

与非生成方法一样,FastDFKD 还可以优化用于数据合成的小批量。如表 1 所示,5-step FastDFKD,即 Fast_5,与现有的生成方法相比,可以实现 10 倍的加速,与非生成方法相比,甚至可以达到 100 倍以上的加速。

ImageNet:为了验证 FastDFKD 的有效性,该研究在更具挑战性的数据集(即 ImageNet)上进行了评估。ImageNet 显然比 CIFAR 复杂得多,因此无数据训练要耗时得多。结果如表 2 所示:相比之下,FastDFKD(Fast_50)只需要 6.28 小时就能进行图像合成,并保持了与现有方法相当的性能。


在分割任务中,该研究仅使用特征正则化损失和对抗性损失进行数据合成。学生模型的 mIoU,以及数据量和合成时间,如表 3 所示:相比之下,FastDFKD 仅在 0.82 小时内成功合成了一个训练集,这比 DAFL(3.99 小时)和 DFAD(6.0 小时)高效得多。


Few-step 合成:如前所述,FastDFKD 只需几步即可实现高效的数据合成。下表比较了 FastDFKD 与现有非生成方法的「fewstep」版本的比较。如表 4 所示,当优化 step 减少时,DeepInv 和 CMI 的学生精度严重下降,这意味着现有方法无法仅在 few step 内完成数据合成。相比之下,FastDFKD 即使只部署了 2-step 优化,也能很好地工作,这为 FastDFKD 的有效性提供了强有力的证据。


消融研究:表 5 考虑了图 2 中的三种复用策略:1)没有特征复用;2)序列特征复用;3)提议共同特征复用,结果如下:


可视化:在 ImageNet 上的合成结果如图 3 所示,其中所有样本都是通过在现有的 ResNet50 分类器上部署 50-step FastDFKD 获得的。与现有方法相比,FastDFKD 可以在几个步骤内合成出合理的样本。

相关文章
|
6月前
|
人工智能 算法 安全
AI时代:不可替代的“人类+”职业技能
在生成式人工智能快速发展的背景下,关于“人类工作者是否会被算法取代”的焦虑日益增加。本文探讨了AI对职业的重塑作用,指出真正的挑战在于如何通过职业技能培训重新定义人类的不可替代性。文章分析了替代与创造的辩证关系,强调人机协作时代的核心能力,如架构设计力、情感智慧和伦理决策力,并提出职业技能培训应从岗位技能导向转向能力生态构建。最终,通过系统性培训发展“人类+”特质,使AI成为解放人类潜能的工具,而非竞争对手。
|
存储 大数据 数据挖掘
大数据中的交易数据
【4月更文挑战第11天】大数据中的交易数据,包含购买记录、订单详情等,为企业决策提供关键信息。通过分析,企业能理解客户习惯、优化产品与定价,预测市场趋势,发现新机会。结合其他数据类型可做全面分析,但需应对数据量大、存储处理难及隐私安全问题。利用交易数据,企业能提升营销精准度,实现持续增长。
312 4
|
Kubernetes Linux 调度
k8s环境设置-pod下载及重启策略
k8s环境设置-pod下载及重启策略
288 1
|
存储 NoSQL 数据库
Harbor 共享后端高可用-简单版
主机配置包括3台服务器,运行Harbor v2.10.0和Docker 24.0.5,其中10.0.90.68额外运行Postgres+Redis。基础安装配置中详细描述了Docker的安装步骤,包括添加仓库、安装、配置国内镜像源和启动Docker。安装postgres+redis服务使用docker-compose.yml文件,通过`docker-compose up -d`命令启动。最后,安装Harbor涉及修改harbor.yml配置文件,设置主机名、数据库和Redis连接信息,然后运行`install.sh`脚本。
|
Kubernetes Java Shell
Kubernetes(K8S) Deployment 升级和回滚
Kubernetes(K8S) Deployment 升级和回滚
338 0
|
数据可视化 搜索推荐 Devops
从DevOps实践者的角度谈谈云效Flow
一名DevOps实践者参与了云效流水线Flow的评测,认为Flow对新手友好,具有可视化编排功能。但在上手过程中,了解相关术语和流畅编排设计可能构成一些挑战。Flow的功能基本满足需求,但开放性有待提高,建议开放插件开发以丰富生态。YAML编排作为趋势,Flow在易用性和功能完善上仍有进步空间,如语法检查、智能提示等功能。此外,产品模块间的逻辑性和交互清晰度也需改进。总结来说,Flow功能齐全,适合中小企业,但在用户体验和生态建设上有改进余地。
630 3
|
Java 关系型数据库 MySQL
【Java Spring开源项目】新蜂(NeeBee)商城项目运行、分析、总结
【Java Spring开源项目】新蜂(NeeBee)商城项目运行、分析、总结
822 4
|
前端开发 C# 开发工具
在WPF中使用WriteableBitmap对接工业相机及常用操作
注意事项 1:像素格式问题,相机SDK提供转化成你需要的格式的方法,在接收图像时要确保两边像素格式一致。相机SDK中提供的像素格式、Bitmap的System.Drawing.Imaging.PixelFormat和WriteableBitmap的System.Windows.Media.PixelFormats对同一像素格式的命名是不同的。比如本文中的PixelFormats.Bgr24对应的是Bitmap中的PixelFormat.Format24bppRgb。可以通过解析同一张图像来确定两者之间的对应关系。 2:使用工业相机采图的方式一般都是使用回调函数的形式,所以在回调函数的多线程环境
582 0
|
监控 NoSQL 大数据
深入解析 MongoDB Map-Reduce:强大数据聚合与分析的利器
深入解析 MongoDB Map-Reduce:强大数据聚合与分析的利器
252 0
|
数据建模 BI 数据处理
Power BI案例-医院数据集的仪表盘制作
Power BI案例-医院数据集的仪表盘制作