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

    知识蒸馏综述:蒸馏机制

    ,可以分为离线蒸馏,在线蒸馏和自蒸馏。 感性上理解三种蒸馏方式: 离线蒸馏可以理解为知识渊博的老师给学生传授知识。 在线蒸馏可以理解为教师和学生一起学习。 自蒸馏意味着学生自己学习知识。 1. 2. 在线蒸馏 Online Distillation 上图中,教师模型和学生模型都是to be trained的状态,即教师模型并没有预训练。 使用在线蒸馏的时候,教师网络和学生网络的参数会同时更新,整个知识蒸馏框架是端到端训练的。 自蒸馏 Self-Distillation 在自蒸馏中,教师和学生模型使用相同的网络。自蒸馏可以看作是在线蒸馏的一种特殊情况,因为教师网络和学生网络使用的是相同的模型。

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

    知识蒸馏

    知识蒸馏概述 蒸馏指的是把不纯净的水加热变成蒸汽,蒸汽冷凝之后变成冷凝水。知识蒸馏也是把有杂质的东西,大的东西变成小的东西,纯的东西。 把一个大的模型(教师模型)里面的知识给萃取蒸馏出来浓缩到一个小的学生模型上。 教师网络是一个比较大的神经网络,它把知识传递给了小的学生网络。这个过程称之为蒸馏或者叫迁移。 比方说手写数字集中的这个2,第一个22但也像3,第二个22但也像7。由此可见,Soft Label包含了更多的“知识”和“信息”,像谁不像谁,有多像,有多不像,特别是非正确类别概率的相对大小。 知识蒸馏的过程 我们来看一下学生网络、教师网络到底是怎么样来进行蒸馏学习的,首先有一个已经训练好的教师网络,然后我们把很多数据喂给教师网络,这里会给一个温度为t的时候的softmax。 知识蒸馏是把一个模型的知识迁移到另一个模型上。 知识蒸馏的原理 上图中大的绿色的矩形为非常大的教师网络,中间的蓝色的矩形是学生网络。

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

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

    一个是知识蒸馏的方法用于深度学习,同时也需要深入学习;另一个则是本文的核心:蒸馏中如何合理运用温度,让隐藏的知识更好地挥发和凝结。 蒸馏模型 模型蒸馏或知识蒸馏,最早在 2006 年由 Buciluǎ 在文章 Model Compression [14] 中提出(很多博主把人名都写错了。 正是在这篇文章 [2] 中,Hinton 首次提出了 Softmax with Temperature 的方法。 先简要概括一下模型蒸馏在做什么。 其他场景 这里我们天马行空地设想一个场景:在一些序列生成任务中,比如 seq2seq 的机器翻译模型,或者是验证码识别的 CTC 算法 [9] 中,输出的每一个时间步都会有一个分布。 the edgehttps://proceedings.neurips.cc/paper/2020/file/a1d4c20b182ad7137ab3606f0e3fc8a4-Paper.pdf [2]

    2.2K30编辑于 2022-12-06
  • 来自专栏机器之心

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

    /R2L/ 核心方法 我们所提出的核心方法从整体范式上来说非常简单: 通过数据蒸馏将神经辐射场 (NeRF) 转化为神经光场(Neural Light Field, or NeLF) -- 从 NeRF 到 NeLF, 所以我们把方法命名为 R2L。 (2) 同样一堆图片, 用来训练 NeLF 的话, 样本量会大幅降低. 代码已经开源: https://github.com/snap-research/R2L, 欢迎尝试! 总结与未来工作 本文提出了一种全新的数据蒸馏方法来加速 NeRF: 我们使用训练好的 NeRF 模型产生伪数据, 来训练提出的深度残差 NeLF 网络。

    70210编辑于 2022-08-25
  • 来自专栏NLP/KG

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

    Distillation for Task-Agnostic Compression of Pre-Trained Transformers 2020 和 MiniLMv2: Multi-Head TD1阶段:蒸馏中间层a.只对学生模型的最后一层进行蒸馏,将学生模型transformer的attention层的k-q矩阵和v-v矩阵与教师模型的对应矩阵做KLloss,可参考 :MiniLMV2。 反向传播阶段只更新学生模型参数,教师模型参数不更新;TD2阶段:蒸馏预测层,产出最终的学生模型。a. 2. 常见问题问题1:怎么修改学生模型的层数?上面提供了多种不同的学生模型,但每个学生模型的层数、hidden size等都是固定的,如果想更改,需要在哪些地方更改? 三种数据增强策略包括:(1)添加噪声:对原始样本中的词,以一定的概率(如0.1)替换为”UNK”标签(2)同词性词替换:对原始样本中的所有词,以一定的概率(如0.1)替换为本数据集中随机一个同词性的词(

    1.8K31编辑于 2022-11-14
  • 来自专栏NLP/KG

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

    Distillation for Task-Agnostic Compression of Pre-Trained Transformers 2020 和 MiniLMv2: Multi-Head Self-Attention TD1阶段:蒸馏中间层 a.只对学生模型的最后一层进行蒸馏,将学生模型transformer的attention层的k-q矩阵和v-v矩阵与教师模型的对应矩阵做KLloss,可参考 :MiniLMV2 反向传播阶段只更新学生模型参数,教师模型参数不更新; TD2阶段:蒸馏预测层,产出最终的学生模型。 a. 2. 常见问题 问题1:怎么修改学生模型的层数?上面提供了多种不同的学生模型,但每个学生模型的层数、hidden size等都是固定的,如果想更改,需要在哪些地方更改? 三种数据增强策略包括: (1)添加噪声:对原始样本中的词,以一定的概率(如0.1)替换为”UNK”标签 (2)同词性词替换:对原始样本中的所有词,以一定的概率(如0.1)替换为本数据集中随机一个同词性的词

    1.6K20编辑于 2022-12-21
  • 来自专栏机器之心

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

    如图所示,学生的表现可以胜过老师(详情见图 2、3 和 41)。 苹果研究者认为,该发现降低了大规模使用蒸馏的风险,现在我们可以基于此优化教师和学生模型的计算分配,以最大化学生模型的性能。 该工作提供的计算最优的蒸馏方案适用于两种情况:1)已有教师模型,或 2)需要训练教师模型。 一个大小为 N_S 的学生模型,通过从大小为 N_T 的教师模型中蒸馏 D_S 个 token 所得到的交叉熵,可以通过蒸馏扩展定律(公式 8)进行预测。 2. 用于学生的总计算或 token 不大于新扩展定律给出的学生大小相关阈值; 2. 老师已经存在,或者要训练的老师有超出单次蒸馏的用途。 对于每一个教师模型,本文按照标准训练成本,将其蒸馏到具有四种 IsoFLOP 配置的学生模型中。最终得到的学生模型交叉熵如图 2 所示。

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

    逐步蒸馏论文复现

    为此,研究人员通常通过微调(finetuning)或蒸馏(distillation)训练更小的任务特定模型,但这两种方法都需要大量的训练数据。 2.论文方法 逐步蒸馏(Distilling Step-by-Step),其核心思想是利用大规模语言模型(LLMs)推理预测的能力,通过生成带有理由的标签数据来辅助训练更小的下游模型。 逐步蒸馏方法:采用多任务学习方式,将标签预测和理由生成结合起来,训练小模型同时具备预测能力和推理能力。 return ( loss, [pred_outputs[1], expl_outputs[1]], [pred_outputs[2] , expl_outputs[2]], ) ​​

    55210编辑于 2025-01-02
  • 来自专栏OpenMMLab

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

    知识蒸馏系列文章继续更新啦!在上一篇文章中,我们介绍了三类基础知识蒸馏算法,今天我们一起来学习知识蒸馏的迁移学习应用。 本文内容 1 前言 2 蒸馏特征的迁移学习 3 蒸馏参数的迁移学习 4 总结 1. 值得注意的是,在降水预测任务中采用跨任务数据集(2-DIGITS MNIST & KTH)作为教师模型进行参数蒸馏的效果优于采用当前任务(降水预测)的广州数据集(GUANGZHOU2014, GUANGZHOU2016 ]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 4133-4141. [2] representation learning[C]//Proceedings of the AAAI Conference on Artificial Intelligence. 2021, 35(2)

    2.1K10编辑于 2022-12-30
  • 来自专栏机器学习与生成对抗网络

    综述 | 知识蒸馏(1)

    2 原始的蒸馏模型 Bucilua等 (2006年)首先提出模型压缩,以将信息从大型模型或模型集合中转移到训练小型模型,而准确率无明显下降。主要思想是学生模型模仿老师模型,并获取相近甚至超越的性能。 另一个例子是,手写数字2的图像与数字3相比更类似于数字7。这种由教师模型学习的知识在(Hinton et al。,2015)中被称为dark knowledge。 ? 4 蒸馏的策略 根据教师模型是否与学生模型同时更新,知识蒸馏的学习方案可以直接分为三大类:离线蒸馏,在线蒸馏和自蒸馏,如图6所示 ? 离线蒸馏 在原始知识蒸馏方法中(Hinton等,2015),知识从预训练的教师模型转移到学生模型,整个训练过程有两个阶段,即:1)教师模型是在蒸馏之前、首先在一组训练样本上训练的;2)教师模型用logit 学生网络通常选择为:1)教师网络的简化版本:更少层数,每层通道数更少(Wang等人,2018a);2)教师网络的量化版本,其中网络的结构是保留着的(Polino等人,2018; Mishra和Marr,

    1.8K20发布于 2020-07-24
  • 来自专栏我爱计算机视觉

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

    3.3 Self-LD 蒸馏学习使得轻量化学生网络拥有高性能教师网络的性能,而对教师网络本身使用蒸馏方法,即自蒸馏,也能提高教师网络本身的性能。 即学习教师网络,后面的Teacher Assistant依次学习前面的Teacher Assistant,学生网络学习,对应于上图中最下面的一条路径,这种方法得到的学生网络性能最好,训练时间最长; 也可以介于上述2种极端情况之间 ,使用个Teacher Assistant,对应于上图中间的某条路径,这种方法得到的学生网络性能和训练时间位于上述2种情况之间。 05 实验 5.1 使用LD提升学生网络性能 在PASCAL VOC和COCO这2个数据集上验证LD对于学生网络的性能提升。在实现过程中,中的值为10。 从上面2个表格中可以看出,使用LD能使得学生网络有更高的性能。

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

    模型蒸馏-学习笔记

    模型蒸馏一. 核心问题由于知识蒸馏在训练过程中,有两个模型(teacher模型和student模型),3个loss(teacher loss、student loss、蒸馏loss),因此如何平衡不同模型之间的训练会是影响模型效果的重要因素 (pool_size=(2, 2), strides=(1, 1), padding="same"), layers.Conv2D(512, (3, 3), strides=(2, 2), (pool_size=(2, 2), strides=(1, 1), padding="same"), layers.Conv2D(32, (3, 3), strides=(2, 2), .png]解决方法: 直接保存student模型, tensorflow2的api太乱了, 直接保存蒸馏模型内部会存在一些api冲突.

    9.8K22编辑于 2022-06-30
  • 来自专栏图与推荐

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

    ,现有的图数据蒸馏(图压缩)方法往往是将面向图像数据的数据蒸馏方法简单扩展到图数据上,忽视了图结构在图数据蒸馏中的关键作用。 2. 从谱域的角度衡量图结构信息对生成图性能的影响 为了可以定量的探究结构对方法的影响,我们选取了谱域角度进行分析。 进一步地,为了探究谱域滤波器响应范围和生成图之间的关系,我们引入可变频率响应的带通图滤波器BWGNN[2],通过调控滤波器的频率响应范围(p, q)来展示 系数和跨框架性能的关系。 (2). 在异常检测数据集上,我们的⽅法的改进更为明显。在YelpChi和Amazon数据集上,与GCond⽐,我们的⽅法分别提⾼了9.6%和7.7%。 ICLR 2022. [2] Jianheng Tang, et al. Rethinking Graph Neural Networks for Anomaly Detection.

    76710编辑于 2024-01-23
  • 来自专栏GiantPandaCV

    知识蒸馏综述:代码整理

    【GiantPandaCV导语】 收集自RepDistiller中的蒸馏方法,尽可能简单解释蒸馏用到的策略,并提供了实现源码。 1. Distilling the Knowledge in a Neural Network 链接:https://arxiv.org/pdf/1503.02531.pd3f 发表:NIPS14 最经典的,也是明确提出知识蒸馏概念的工作 全称:Fitnets: hints for thin deep nets 链接:https://arxiv.org/pdf/1412.6550.pdf 发表:ICLR 15 Poster 对中间层进行蒸馏的开山之作 Congruence for Knowledge Distillation 链接:https://arxiv.org/pdf/1904.01802.pdf 发表:ICCV19 CC也归属于基于关系的知识蒸馏方法 发表:ICLR20 将对比学习引入知识蒸馏中,其目标修正为:学习一个表征,让正样本对的教师网络与学生网络尽可能接近,负样本对教师网络与学生网络尽可能远离。

    1.5K21编辑于 2022-02-11
  • 来自专栏AI系统

    【AI系统】知识蒸馏原理

    我们将探讨知识蒸馏的不同知识类型,包括基于响应的、基于特征的和基于关系的知识点,以及不同的知识蒸馏方式,如离线蒸馏、在线蒸馏和自蒸馏。 此外,还将解读 Hinton 提出的经典知识蒸馏算法,以及知识蒸馏与自然界中物理蒸馏过程的相似之处。 上图展示了数据样本之间的关系知识蒸馏的过程,其蒸馏损失函数可以表述为: L_{RelD}(F_t,F_s) = L_{R^2}(\psi_{t}(t_i,t_j),\psi_{s}(s_i,s_j)) , s_j\in F_s ,而 \psi_{t}(\cdot) 与 \psi_{s}(\cdot) 分别是 (t_i,t_j) 和 (s_i,s_j) 的相似度函数,L_{R^2} 例如 MNIST 数据集中存在一个数字 2 的样本被预测为 3 的概率为 10^{-6} ,被预测为 7 的概率为 10^{-9} ,这部分负标签的信息就意味着这个数字 2 有可能与 3 和 7 有些相像

    85010编辑于 2024-12-06
  • 来自专栏GiantPandaCV

    【知识蒸馏】Deep Mutual Learning

    但是不同于传统知识蒸馏的单向蒸馏(教师→学生),DML认为可以让学生互相学习(双向蒸馏),在整个训练的过程中互相学习,通过这种方式可以提升模型的性能。 如果传统的知识蒸馏是由教师网络指导学生网络,那么DML就是让两个学生互帮互助,互相学习。 DML 小型的网络通常有与大网络相同的表示能力,但是训练起来比大网络更加困难。 那么先训练一个大型的网络,然后通过使用模型剪枝、知识蒸馏等方法就可以让小型模型的性能提升,甚至超过大型模型。 以知识蒸馏为例,通常需要先训练一个大而宽的教师网络,然后让小的学生网络来模仿教师网络。 (2)在扰动下对loss的变动接受能力更强。(3)给出的class置信度不会过于高。 DML中使用到了KL Divergence衡量两者之间的差距: P1和P2代表两者的逻辑层输出,那么对于每个网络来说,他们需要学习的损失函数为: 其中 代表传统的分类损失函数,比如交叉熵损失函数。

    1.1K30发布于 2021-11-19
  • 来自专栏null的专栏

    BERT知识蒸馏TinyBERT

    2. 知识蒸馏 知识蒸馏(knowledge distillation)[2]是模型压缩的一种常用的方法,对于一个完整的知识蒸馏过程,有两个模型,分别为Teacher模型和Student模型,通过学习将已经训练好的 Transformer-layer Distillation Transformer-layer的蒸馏由Attention Based蒸馏和Hidden States Based蒸馏两部分组成,具体如下图所示 Tinybert: Distilling bert for natural language understanding[J]. arXiv preprint arXiv:1909.10351, 2019. [2] 知识蒸馏基本原理

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

    知识蒸馏(Knowledge Distillation)

    /szq0214/MEAL-V2 MEAL V2的基本思路是通过知识蒸馏,将多个Teacher模型的效果ensemble、迁移到一个Student模型中,包括:Teacher模型集成,KL散度loss以及判别器 .expand(-1, -1, 3*batch).transpose(0, 2) aug_rep = aug_rep.unsqueeze(2).expand(-1, -1, 1*batch) # cosine ,考虑了中间层Feature Maps之间的关系,可参考: 结合量化的知识蒸馏(Quantization Mimic)_AI Flash-CSDN博客 ——– 知识蒸馏与Hint Learning相结合 ,可以训练精简的Faster-RCNN,可参考: 目标检测网络的知识蒸馏_AI Flash-CSDN博客_目标检测 知识蒸馏 ——– 网络结构搜索(NAS)也可以采用蒸馏操作,改善搜索效果,可参考(Cream NAS的Inter-model Distillation): 自蒸馏One-shot NAS——Cream of the Crop_AI Flash-CSDN博客 ——– 知识蒸馏在Transformer

    3.3K10编辑于 2022-07-01
  • 来自专栏null的专栏

    BERT知识蒸馏TinyBERT

    2. 知识蒸馏知识蒸馏(knowledge distillation)[2]是模型压缩的一种常用的方法,对于一个完整的知识蒸馏过程,有两个模型,分别为Teacher模型和Student模型,通过学习将已经训练好的 Transformer-layer DistillationTransformer-layer的蒸馏由Attention Based蒸馏和Hidden States Based蒸馏两部分组成,具体如下图所示 Tinybert: Distilling bert for natural language understandingJ. arXiv preprint arXiv:1909.10351, 2019.[2] 知识蒸馏基本原理

    90260编辑于 2022-11-12
  • 来自专栏集智书童

    离线蒸馏奢侈?在线蒸馏难?都不再是问题DKEL统统帮你解决,蒸馏同质化问题也解决!

    离线知识蒸馏是一种需要昂贵资源训练教师网络,然后将知识蒸馏到学生网络进行部署的两阶段 Pipeline 。另一方面,在线知识蒸馏是一种一阶段策略,通过互相学习和合作学习来缓解这种需求。 2 Related work 知识蒸馏通常用于模型压缩,这被分为离线和在线知识蒸馏: 离线知识蒸馏需要一个预训练的教师网络和一个学生网络,学生网络同时学习教师网络和真实值。 i}^{2},\cdots,s_{i}^{C}] 。 具体而言,知识蒸馏损失函数可以表示为: L_{KD}(s,t)=\frac{1}{N}\tau^{2}\sum_{i=1}^{N}KL(\sigma(\frac{t_{i}}{\tau}), \sigma \tag{8} 由于初始化的随机性,有可能导致 t^{[2]} 和 P^{*} 位于 s^{[1]} 的相反一侧,即 \angle t^{[2]}s^{[1]}P^{*} 也是一个明显的钝角,以及 \angle

    1.2K10编辑于 2024-01-03
领券