首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏NLP/KG

    知识蒸馏相关技术【模型蒸馏数据蒸馏】以ERNIE-Tiny为例

    如果采用数据蒸馏策略,又需要提供海量未标注数据,可能并不具备客观条件。因此,本专题采用主流的知识蒸馏的方案来压缩模型,在满足用户预测性能、预测效果的需求同时,不依赖海量未标注数据,提升开发效率。 知识蒸馏通过在一组数据上将知识从大老师转移到小得多的学生来解决这个问题。我们认为选择三个关键组成部分,即教师、训练数据和学习目标,对于蒸馏的有效性至关重要。 (用户训练数据量到百万样本以上可以考虑尝试一下)3.数据蒸馏任务3.1 简介在ERNIE强大的语义理解能力背后,是需要同样强大的算力才能支撑起如此大规模模型的训练和预测。 因此,我们基于数据蒸馏技术构建了数据蒸馏系统。其原理是通过数据作为桥梁,将ERNIE模型的知识迁移至小模型,以达到损失很小的效果却能达到上千倍的预测速度提升的效果。 3)N-sampling:从原始样本中,随机选取位置截取长度为m的片段作为新的样本,其中片段的长度m为0到原始样本长度之间的随机值数据增强策略可参考数据增强,我们已准备好了采用上述3种增强策略制作的chnsenticorp

    1.7K31编辑于 2022-11-14
  • 来自专栏图与推荐

    NeurIPS23 | 图数据蒸馏 v.s. 图像数据蒸馏,

    ,现有的图数据蒸馏(图压缩)方法往往是将面向图像数据数据蒸馏方法简单扩展到图数据上,忽视了图结构在图数据蒸馏中的关键作用。 现有方法的问题 现有的图数据蒸馏(图压缩)方法往往是将面向图像数据数据蒸馏方法简单扩展到图数据上,忽视了图结构信息在图数据压缩中的重要影响。 3. 实验结果 4.1 节点分类/异常检测/链接预测实验 我们在9个数据集,3种不同任务上测试了SGDD的性能。 总结 面向图数据蒸馏目前仍为一个较新的方向,我们的研究着眼于图结构保持对图数据蒸馏的重要性,期望此工作能够引起领域对该方向更多的研究和探讨。 6.

    75610编辑于 2024-01-23
  • 来自专栏NLP/KG

    知识蒸馏相关技术【模型蒸馏数据蒸馏】以ERNIE-Tiny为例

    如果采用数据蒸馏策略,又需要提供海量未标注数据,可能并不具备客观条件。 知识蒸馏通过在一组数据上将知识从大老师转移到小得多的学生来解决这个问题。我们认为选择三个关键组成部分,即教师、训练数据和学习目标,对于蒸馏的有效性至关重要。 (用户训练数据量到百万样本以上可以考虑尝试一下) 3.数据蒸馏任务 3.1 简介 在ERNIE强大的语义理解能力背后,是需要同样强大的算力才能支撑起如此大规模模型的训练和预测。 因此,我们基于数据蒸馏技术构建了数据蒸馏系统。其原理是通过数据作为桥梁,将ERNIE模型的知识迁移至小模型,以达到损失很小的效果却能达到上千倍的预测速度提升的效果。 (3)N-sampling:从原始样本中,随机选取位置截取长度为m的片段作为新的样本,其中片段的长度m为0到原始样本长度之间的随机值 数据增强策略可参考数据增强,我们已准备好了采用上述3种增强策略制作的

    1.5K20编辑于 2022-12-21
  • 来自专栏人人都是极客

    深度学习中的3个秘密:集成,知识蒸馏和自蒸馏

    神秘之处3:自蒸馏 注意,知识蒸馏至少直观上是有意义的:教师集成模型的测试准确率为84.8%,所以单个学生模型的测试准确率可以达到83.8%。 这就引出了下面的问题: 与随机特征映射(即NTK特征映射)相比,集成/知识蒸馏在深度学习中的工作方式是否相同? **回答:并非如此,下面图3的实验证明了这一点。 **此图比较了深度学习中的集成和知识蒸馏与随机特征映射的线性模型的集成和知识蒸馏。集成在两种情况下都有效。然而,图3中的准确性清楚地表明,它们的工作原因完全不同。 图3:集成在随机特征映射中起作用(但原因与深度学习完全不同),而知识蒸馏在随机特征映射中不起作用。 自蒸馏:隐式地结合集成和知识蒸馏 在这项新工作中,我们还为知识自蒸馏提供了理论支持(参见图3)。训练一个单个模型以匹配另一个相同单个模型的输出(但使用不同的随机种子),以某种方式提高了性能。

    1.7K11编辑于 2024-04-15
  • 来自专栏我爱计算机视觉

    数据蒸馏 by Matching Training Trajectories

    数据蒸馏的核心思想如下所示: 合成数据集可视化: 现有的数据蒸馏方法一些考虑使用端到端训练,但这通常需要大量计算和内存,并且会受到不精确的松弛或执行多次迭代导致训练不稳定的影响。 为了降低优化难度,另一些方法侧重于短程行为,聚焦于使在蒸馏数据上的单步训练匹配在真实数据上的。但是,由于蒸馏数据会被多次迭代,导致在验证过程中错误可能会被累积。 ▊ Contributions 基于此,作者直接模仿在真实数据集上训练模型的长程训练动态。大量实验表明,所提方法优于现有的数据蒸馏方法以及在标准数据集上进行核心子集选择的方法。 ▊ Approach 首先定义文章所用符号:合成数据集:真实训练集: 上图阐述了本文数据蒸馏的核心思想。 下图是在CIFAR-10上蒸馏得到的图像,上边是一类一张图像,下边是一类各十张: 接着作者又与一种最近的数据蒸馏方式KIP[1]比较,可以发现在相同模型宽度的情况下所提方法明显优于KIP,甚至部分优于

    1.3K20编辑于 2022-04-18
  • 来自专栏GiantPandaCV

    知识蒸馏综述:蒸馏机制

    ,可以分为离线蒸馏,在线蒸馏和自蒸馏。 感性上理解三种蒸馏方式: 离线蒸馏可以理解为知识渊博的老师给学生传授知识。 在线蒸馏可以理解为教师和学生一起学习。 自蒸馏意味着学生自己学习知识。 1. 使用在线蒸馏的时候,教师网络和学生网络的参数会同时更新,整个知识蒸馏框架是端到端训练的。 3. 自蒸馏 Self-Distillation 在自蒸馏中,教师和学生模型使用相同的网络。自蒸馏可以看作是在线蒸馏的一种特殊情况,因为教师网络和学生网络使用的是相同的模型。 Rethinking data augmentation: Self-supervision and self-distillation提出的自蒸馏是为数据增强所采用的,并对知识进行增强,以此提升模型本身的性能

    2.1K30编辑于 2021-12-09
  • 来自专栏算法之名

    知识蒸馏

    教师网络可能是用海量的数据,海量的能源训练出来的一个非常臃肿的模型,现在要部署到移动终端设备上,在算力非常受限的场景下,所以需要把大模型变成小模型,把模型部署到终端上。这就是知识蒸馏的核心目的。 知识蒸馏的过程 我们来看一下学生网络、教师网络到底是怎么样来进行蒸馏学习的,首先有一个已经训练好的教师网络,然后我们把很多数据喂给教师网络,这里会给一个温度为t的时候的softmax。 那么对于之前那个动物分类的总体损失函数如下 知识蒸馏的应用场景 模型压缩 优化训练,防止过拟合(潜在的正则化) 无限大、无监督数据集的数据挖掘 少样本、零样本学习 迁移学习和知识蒸馏 上图中的Baseline 而当我们使用3%的数据量投入到网络中训练,它的训练集的准确率为67.3%,而测试集的准确率只有44.5%,这说明过拟合了。 但是当我们使用教师网络传递过来的soft targets来训练该网络,也只使用3%的数据集,则训练数据集的准确率为65.4%,但是它测试集的准确率却达到了接近100%数据集的hard targets的水平

    87130编辑于 2022-03-24
  • 来自专栏自然语言处理(NLP)论文速递

    模型蒸馏升级!高温蒸馏:Softmax With Temperature

    一个是知识蒸馏的方法用于深度学习,同时也需要深入学习;另一个则是本文的核心:蒸馏中如何合理运用温度,让隐藏的知识更好地挥发和凝结。 蒸馏模型 模型蒸馏或知识蒸馏,最早在 2006 年由 Buciluǎ 在文章 Model Compression [14] 中提出(很多博主把人名都写错了。 将原始数据集上训练的重量级(cumbersome)模型作为教师,让一个相对更轻量的模型作为学生。 读完 Hinton 的文章,有两个强烈的感受:一是感觉他太牛了,3 句话让我读了 18 遍,全文很少用公式,基本没有配图,但把算法讲得清清楚楚;二就是,他的写作中长从句实在太多了,一句话 60 个单词 -Paper.pdf [2]Distilling the Knowledge in a Neural Network https://arxiv.org/abs/1503.02531 [3] PR-009

    2.2K30编辑于 2022-12-06
  • 来自专栏我的机器学习之路

    基于GAN的无数据知识蒸馏

    最近在做知识蒸馏的时候了解到了一些无数据蒸馏算法,在无法获取到原始训练数据(机密数据、隐私数据数据集太大或者是没有百度云会员下不动数据)的情况下,可以尝试一下这种类型的蒸馏算法,也许有奇效呢。 Learning of Student Networks arXiv:1904.01186v4和Data-Free Adversarial Distillation arXiv:1912.11006v3. Teacher模型的全连接层之前的特征图的L1范数 作者认为真实图片的输出特征图通常不会是一些随机的向量,而应该有比较高的激活值 3. 有了这三个loss函数、再加上Teacher和Student之间的交叉熵,就可以在无任何真实数据的情况下对模型进行知识蒸馏了。 2. 其他无数据蒸馏的思路 除了利用GAN做无数据蒸馏的方法外,还有一些利用反向传播更新输入数据的方式来获取与训练数据相似的样本的算法(方法类似于图片风格化算法),这方面的算法也有两篇比较典型的论文,分别是利用训练数据产生的激活值以及

    1.5K31发布于 2020-10-26
  • 领域数据优于教师知识的知识蒸馏

    换句话说,在目标领域数据蒸馏比单纯依赖教师知识提供更好的性能。然而,研究也证实了即使是混合数据蒸馏也是有益的,学生模型优于从头训练类似规模的模型。 蒸馏的多样性在实验中,研究者从一个大型多语言教师模型蒸馏出一组多语言学生,使用了三种不同比例的通用数据和任务特定数据混合:比例1:仅通用数据(基线)比例2:通用数据与任务特定数据比例为7:3(模拟低资源场景 )比例3:仅任务特定数据什么是通用数据和任务特定数据? 通用蒸馏基线是通过仅使用通用数据蒸馏学生创建的(比例1)。直接预训练基线是使用通用数据从头预训练,然后在任务特定数据上微调。 研究者创建了四个蒸馏学生编码器,其中两个直接使用比例2和比例3数据集进行蒸馏。其余两个以相同方式创建,但教师在蒸馏前用任务特定数据集各微调了一百万步。这使得能够基准测试教师对目标任务的适应程度。

    7510编辑于 2026-04-05
  • 来自专栏机器之心

    苹果也在蒸馏大模型,给出了蒸馏Scaling Laws

    如图所示,学生的表现可以胜过老师(详情见图 2、3 和 41)。 苹果研究者认为,该发现降低了大规模使用蒸馏的风险,现在我们可以基于此优化教师和学生模型的计算分配,以最大化学生模型的性能。 为了弥补这一知识差距,研究人员对蒸馏进行了广泛研究,学生和老师的参数范围从 1.43 亿到 126 亿,使用训练数据最多达 5120 亿 token。 研究发现: 1. 该结果表明,当两个学习过程都有足够的数据或计算时,蒸馏不能产生比监督学习更低的模型交叉熵。但是,如果以下两个条件都成立,则蒸馏比监督学习更有效: 1. 本文的目标是理解教师模型在蒸馏过程中的作用,因此,该研究在纯蒸馏情况下(λ = 1,公式 7)进行蒸馏,以避免数据带来的混淆。本文验证了 λ = 1 的选择能够产生与最优 λ∗ 统计相似的结果。 最终得到的学生交叉熵如图 3 所示。

    27100编辑于 2025-02-19
  • 来自专栏CSDN社区搬运

    逐步蒸馏论文复现

    为此,研究人员通常通过微调(finetuning)或蒸馏(distillation)训练更小的任务特定模型,但这两种方法都需要大量的训练数据。 本文提出了一种新的方法——逐步蒸馏(Distilling Step-by-Step),它通过提取LLM生成的推理过程作为监督信号,训练小模型并显著减少数据需求。 2.论文方法 逐步蒸馏(Distilling Step-by-Step),其核心思想是利用大规模语言模型(LLMs)推理预测的能力,通过生成带有理由的标签数据来辅助训练更小的下游模型。 逐步蒸馏方法:采用多任务学习方式,将标签预测和理由生成结合起来,训练小模型同时具备预测能力和推理能力。 3.实验部分 3.1数据集 论文中使用了4个流行的基准数据集,涵盖3种不同的自然语言处理(NLP)任务,具体数据集和任务如下: 3.1.1自然语言推理(Natural Language Inference

    52910编辑于 2025-01-02
  • 来自专栏机器学习与生成对抗网络

    综述 | 知识蒸馏(1)

    Baosheng Yu、Stephen John Maybank、Dacheng Tao 前言 近年来,深度神经网络在工业和学术界都取得了较大成功,尤其是在计算机视觉任务方面:主要归因于其可扩展性以编码大规模数据 在典型的图像分类任务中,logit(例如深层神经网络中最后一层的输出)被用作来自教师模型的知识的载体,而训练数据样本并未显示提供该知识。 另一个例子是,手写数字2的图像与数字3相比更类似于数字7。这种由教师模型学习的知识在(Hinton et al。,2015)中被称为dark knowledge。 ? 关于软目标和硬目标的直观示例如图3所示。 ? 此外,温度因子T被引入控制每个软目标的重要性,如 ? 较高的温度会在各个类别上产生较“软”的概率分布。具体来说,当T→∞时,所有类别都具有相同的概率。 显然,离线蒸馏方法总是采用单向知识转移和两阶段训练程序。尽管如此,离线仍需要一个复杂的高容量教师网络及其大量的训练数据和时间。

    1.8K20发布于 2020-07-24
  • 来自专栏OpenMMLab

    知识蒸馏系列(二):知识蒸馏的迁移学习应用

    本文内容 1 前言 2 蒸馏特征的迁移学习 3 蒸馏参数的迁移学习 4 总结 1. 对于解决源域和目标域间的数据分布差异这一问题,根据迁移学习的实现对象目标区别 [3],可以将迁移学习方法分为如下类别: 源自参考文献 [3] 基于实例的迁移(instance-based transfer 实行端到端知识蒸馏,便于对关键特征/输出进行约束。 去除源域和目标域间的数据数据分布(data domain)和任务域下游任务(task domain)约束,得以实现跨数据域和跨任务的知识迁移。 为了避免图片分辨率降低所带来的性能下降,以及弥补高低分辨率间的数据域分布差异,CRKD 提出了采用知识蒸馏进行高低分辨率数据域迁移的方法,将教师模型在高分辨率下的数据域学习的知识迁移至低分辨率数据域下的学生模型 AFD 的 ImageNet 图像分类迁移实验结果 3. 蒸馏参数的迁移学习 3.1.

    2K10编辑于 2022-12-30
  • 来自专栏我爱计算机视觉

    位置蒸馏:针对目标检测提高定位精度的知识蒸馏

    01 动机 定位的准确性对目标检测算法的性能有很大的影响,而在数据集或者实际应用场景中,位置模糊性(localization ambiguity)是广泛存在的,如下图所示: image.png 在Gaussian yolov3中使用高斯分布对目标边框的不确定性进行建模,GFocal使用一般的离散分布表示目标边框的不确定性,将目标的边框表示为没有任何先验知识限制的离散概率分布。 05 实验 5.1 使用LD提升学生网络性能 在PASCAL VOC和COCO这2个数据集上验证LD对于学生网络的性能提升。在实现过程中,中的值为10。 5.2 Self-LD对baseline检测器的性能提升 在COCO数据集上使用ResNet-18、ResNet-50和ResNeXt-101-32x4d-DCN这3个模型进行评估,评估它们使用Self-LD 在COCO数据集上训练,在COCO val2017上的测试结果如下图所示: ?

    1.4K40发布于 2021-05-07
  • 来自专栏代码工具

    模型蒸馏-学习笔记

    模型蒸馏一. 核心问题由于知识蒸馏在训练过程中,有两个模型(teacher模型和student模型),3个loss(teacher loss、student loss、蒸馏loss),因此如何平衡不同模型之间的训练会是影响模型效果的重要因素 模型有以下特点:学生网络和教师网络共享底层参数 [[公式]]教师网络使用更复杂的模型结构 [[公式]]蒸馏目标是logits输出,学生网络logits拟合教师网络logits蒸馏误差表示如下:[image 准备好数据集# Prepare the train and test dataset.batch_size = 64(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data Step3.

    9.8K22编辑于 2022-06-30
  • 来自专栏机器之心

    ECCV 2022|R2L: 用数据蒸馏加速NeRF

    github.com/snap-research/R2L Webpage: https://snap-research.github.io/R2L/ 核心方法 我们所提出的核心方法从整体范式上来说非常简单: 通过数据蒸馏将神经辐射场 这些 triplets 就是训练我们模型的数据, loss 函数是 mean squared error (MSE), 如下所示: 在我们的实验中, 我们收集了 10k 张图片, 是原始数据集 (大概 文中的消融实验也表明, 大量伪数据对性能至关重要 (6.9dB PSNR 提升)! 值得一提的是, 如果仅仅是用伪数据训练, 我们的模型最优也只能复制 teacher NeRF, 无法超越它。 总结与未来工作 本文提出了一种全新的数据蒸馏方法来加速 NeRF: 我们使用训练好的 NeRF 模型产生伪数据, 来训练提出的深度残差 NeLF 网络。 (2) 如何用更少, 更高质量的伪数据 (譬如进行数据筛选) 来加速 NeLF 的训练也非常值得探索。

    69610编辑于 2022-08-25
  • 来自专栏null的专栏

    BERT知识蒸馏TinyBERT

    TinyBERT[1]是一种针对transformer-based模型的知识蒸馏方法,以BERT为Teacher模型蒸馏得到一个较小的模型TinyBERT。 知识蒸馏 知识蒸馏(knowledge distillation)[2]是模型压缩的一种常用的方法,对于一个完整的知识蒸馏过程,有两个模型,分别为Teacher模型和Student模型,通过学习将已经训练好的 Transformer-layer Distillation Transformer-layer的蒸馏由Attention Based蒸馏和Hidden States Based蒸馏两部分组成,具体如下图所示 : 其中,在BERT中多头注意力层能够捕获到丰富的语义信息,因此,在蒸馏到TinyBERT中,提出了Attention Based蒸馏,其目的是希望使得蒸馏后的Student模型能够从Teacher模型中学习到这些语义上的信息 3. 总结 在TinyBERT中,精简了BERT模型的大小,设计了三种层的蒸馏,分别为transformer-layer,embedding-layer以及prediction-layer。

    62140编辑于 2022-11-30
  • 来自专栏null的专栏

    BERT知识蒸馏TinyBERT

    TinyBERT[1]是一种针对transformer-based模型的知识蒸馏方法,以BERT为Teacher模型蒸馏得到一个较小的模型TinyBERT。 知识蒸馏知识蒸馏(knowledge distillation)[2]是模型压缩的一种常用的方法,对于一个完整的知识蒸馏过程,有两个模型,分别为Teacher模型和Student模型,通过学习将已经训练好的 Transformer-layer DistillationTransformer-layer的蒸馏由Attention Based蒸馏和Hidden States Based蒸馏两部分组成,具体如下图所示 :图片其中,在BERT中多头注意力层能够捕获到丰富的语义信息,因此,在蒸馏到TinyBERT中,提出了Attention Based蒸馏,其目的是希望使得蒸馏后的Student模型能够从Teacher模型中学习到这些语义上的信息 3. 总结在TinyBERT中,精简了BERT模型的大小,设计了三种层的蒸馏,分别为transformer-layer,embedding-layer以及prediction-layer。

    88860编辑于 2022-11-12
  • 来自专栏全栈程序员必看

    知识蒸馏(Knowledge Distillation)

    \ F.cross_entropy(outputs, labels) * (1. - alpha) return KD_loss 3、 、再用于模型训练,该方法能够让模型学会从更多视角观察同一样本数据的不同功能: 4、Hint-based Knowledge Transfer Paper地址:https://arxiv.org/abs 并在诱导过程中,能够对抗生成样本,实现数据增强。 在传统KD中,学生网络模仿教师网络关于任务层的预测输出(如分类、位置回归等);而在SSKD中,在变换后的数据集和自监督辅助任务上,能够实现更为丰富的结构化知识迁移。 ,可以训练精简的Faster-RCNN,可参考: 目标检测网络的知识蒸馏_AI Flash-CSDN博客_目标检测 知识蒸馏 ——– 网络结构搜索(NAS)也可以采用蒸馏操作,改善搜索效果,可参考(Cream

    3.3K10编辑于 2022-07-01
领券