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

    知识蒸馏综述:蒸馏机制

    ,可以分为离线蒸馏,在线蒸馏和自蒸馏。 感性上理解三种蒸馏方式: 离线蒸馏可以理解为知识渊博的老师给学生传授知识。 在线蒸馏可以理解为教师和学生一起学习。 自蒸馏意味着学生自己学习知识。 1. 早期的KD方法都属于离线蒸馏,将一个预训练好的教师模型的知识迁移到学生网络,所以通常包括两个阶段: 在蒸馏前,教师网络在训练集上进行训练。 使用在线蒸馏的时候,教师网络和学生网络的参数会同时更新,整个知识蒸馏框架是端到端训练的。 自蒸馏 Self-Distillation 在自蒸馏中,教师和学生模型使用相同的网络。自蒸馏可以看作是在线蒸馏的一种特殊情况,因为教师网络和学生网络使用的是相同的模型。

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

    知识蒸馏

    知识蒸馏概述 蒸馏指的是把不纯净的水加热变成蒸汽,蒸汽冷凝之后变成冷凝水。知识蒸馏也是把有杂质的东西,大的东西变成小的东西,纯的东西。 把一个大的模型(教师模型)里面的知识给萃取蒸馏出来浓缩到一个小的学生模型上。 教师网络是一个比较大的神经网络,它把知识传递给了小的学生网络。这个过程称之为蒸馏或者叫迁移。 这就是知识蒸馏的核心目的。 现在的预训练大模型的参数往往都是成指数型增加。 知识蒸馏的过程 我们来看一下学生网络、教师网络到底是怎么样来进行蒸馏学习的,首先有一个已经训练好的教师网络,然后我们把很多数据喂给教师网络,这里会给一个温度为t的时候的softmax。 知识蒸馏是把一个模型的知识迁移到另一个模型上。 知识蒸馏的原理 上图中大的绿色的矩形为非常大的教师网络,中间的蓝色的矩形是学生网络。

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

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

    一个是知识蒸馏的方法用于深度学习,同时也需要深入学习;另一个则是本文的核心:蒸馏中如何合理运用温度,让隐藏的知识更好地挥发和凝结。 蒸馏模型 模型蒸馏或知识蒸馏,最早在 2006 年由 Buciluǎ 在文章 Model Compression [14] 中提出(很多博主把人名都写错了。 先简要概括一下模型蒸馏在做什么。出于计算资源的限制或效率的要求,深度学习模型在部署推断时往往需要进行压缩,模型蒸馏是其中一种常见方法。 对于相同的输入,让学生输出的概率分布尽可能的逼近教师输出的分布,则大模型的知识就通过这种监督训练的方式「蒸馏」到了小模型里。 后话 写完这篇文章才发现,潘小小【经典简读】知识蒸馏(Knowledge Distillation)经典之作 [17] 一文中已有类似的探讨。

    2.2K30编辑于 2022-12-06
  • 来自专栏NLP/KG

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

    1.1 模型蒸馏原理知识蒸馏是一种模型压缩常见方法,指的是在teacher-student框架中,将复杂、学习能力强的网络(teacher)学到的特征表示"知识"蒸馏出来,传递给参数量小、学习能力弱的网络 实验表明通用蒸馏阶段和任务蒸馏阶段的蒸馏loss不匹配时,学生模型的效果会受到影响。 具体来说,第一阶段,General Distillation,在预训练的老师、一般数据和潜在蒸馏损失的指导下进行蒸馏。 如果已提供的通用蒸馏学生模型尺寸符合需求,用户可以主要关注接下来的任务蒸馏过程。 教师模型和通用数据继续用通用蒸馏的方式蒸馏学生模型,进一步提升学生模型的效果;a.

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

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

    1.1 模型蒸馏原理 知识蒸馏是一种模型压缩常见方法,指的是在teacher-student框架中,将复杂、学习能力强的网络(teacher)学到的特征表示"知识"蒸馏出来,传递给参数量小、学习能力弱的网络 实验表明通用蒸馏阶段和任务蒸馏阶段的蒸馏loss不匹配时,学生模型的效果会受到影响。 具体来说,第一阶段,General Distillation,在预训练的老师、一般数据和潜在蒸馏损失的指导下进行蒸馏。 如果已提供的通用蒸馏学生模型尺寸符合需求,用户可以主要关注接下来的任务蒸馏过程。 fine-tuned教师模型和通用数据继续用通用蒸馏的方式蒸馏学生模型,进一步提升学生模型的效果; a.

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

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

    蒸馏扩展定律的外推。蒸馏扩展定律适用于一系列损失为 LT 的教师的弱学生模型(L_S > 2.3)。 如果要蒸馏多个学生模型,或者已有教师模型,蒸馏在计算水平上优于监督预训练,直到计算水平随着学生模型规模的增加而可预测地增长。如果要蒸馏一个学生模型且还需要训练教师模型,则应采用监督学习。 此外,作者在大规模蒸馏研究中提供了深入的见解,这些见解增加了我们对蒸馏的理解,并为实验设计提供了信息。 老师已经存在,或者要训练的老师有超出单次蒸馏的用途。 新的定律和分析有望指导 AI 社区构建更强大的模型,实现更低的推理成本和总计算成本。 蒸馏扩展率 文章概述了他们如何得出蒸馏扩展率所采取的步骤。 本文的目标是理解教师模型在蒸馏过程中的作用,因此,该研究在纯蒸馏情况下(λ = 1,公式 7)进行蒸馏,以避免数据带来的混淆。本文验证了 λ = 1 的选择能够产生与最优 λ∗ 统计相似的结果。

    27600编辑于 2025-02-19
  • 来自专栏OpenMMLab

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

    知识蒸馏系列文章继续更新啦!在上一篇文章中,我们介绍了三类基础知识蒸馏算法,今天我们一起来学习知识蒸馏的迁移学习应用。 本文内容 1 前言 2 蒸馏特征的迁移学习 3 蒸馏参数的迁移学习 4 总结 1. (feature-based)的知识蒸馏 基于样本或特征层间关系(relation-based)的知识蒸馏 1.3 蒸馏知识迁移的优点及应用领域 相对于基于实例的迁移和基于关系的迁移,蒸馏知识迁移具有的主要优势如下 蒸馏特征的迁移学习 蒸馏特征的迁移学习通过在源域教师模型和目标域学生模型间寻找输出 logits 或中间层特征作为迁移目标的蒸馏知识,实现不同数据域和任务域间的教师—学生关系间的知识蒸馏。 MMRazor 库中实现了蒸馏算法中蒸馏模型结构 distiller、蒸馏特征对齐模块 connector、特征信息传递 recorder、蒸馏损失 loss 的功能抽象解耦和可配置解析,让你可通过配置文件自由调整教师模型向学生模型迁移中的特征选取和特征对齐方式

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

    综述 | 知识蒸馏(1)

    4 蒸馏的策略 根据教师模型是否与学生模型同时更新,知识蒸馏的学习方案可以直接分为三大类:离线蒸馏,在线蒸馏和自蒸馏,如图6所示 ? 在线蒸馏中,教师模型和学生模型同时更新,整个知识蒸馏框架是端到端训练的。 它也可视为在线蒸馏的特殊情况。 为了进一步直观地了解蒸馏,还可以从人类教师-学生学习的角度总结离线,在线和自蒸馏。 离线蒸馏意味着知识渊博的老师向新生传授知识;在线蒸馏是指师生在老师为主要监督下互相学习;自蒸馏是学生无需老师就能自学知识。这三种蒸馏方法可以结合起来进行优势互补。 6 蒸馏算法 7 蒸馏应用

    1.8K20发布于 2020-07-24
  • 来自专栏CSDN社区搬运

    逐步蒸馏论文复现

    为此,研究人员通常通过微调(finetuning)或蒸馏(distillation)训练更小的任务特定模型,但这两种方法都需要大量的训练数据。 本文提出了一种新的方法——逐步蒸馏(Distilling Step-by-Step),它通过提取LLM生成的推理过程作为监督信号,训练小模型并显著减少数据需求。 2.论文方法 逐步蒸馏(Distilling Step-by-Step),其核心思想是利用大规模语言模型(LLMs)推理预测的能力,通过生成带有理由的标签数据来辅助训练更小的下游模型。 逐步蒸馏方法:采用多任务学习方式,将标签预测和理由生成结合起来,训练小模型同时具备预测能力和推理能力。 (Standard Distillation) 使用LLM生成的标签(PaLM label)对模型进行蒸馏: python run.py --from_pretrained .

    54210编辑于 2025-01-02
  • 来自专栏我爱计算机视觉

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

    02 知识蒸馏基础 知识蒸馏(KD,Knowledge Distillation)使得轻量级的学生网络能够模仿高性能的教师网络,提高学生网络的性能。 为预测目标框中某个边框,教师网络和学生网络分别输出和,对它们进行softmax操作,得到概率分布和,可以用下面的公式表示边框的蒸馏损失: 回归框中4个边框的蒸馏损失表示为: 上述关于位置蒸馏的表述可以用下图表示 位置蒸馏和普通的蒸馏在形式上是一样的,而且不依赖于特定的架构,具有很强的通用性。 3.3 Self-LD 蒸馏学习使得轻量化学生网络拥有高性能教师网络的性能,而对教师网络本身使用蒸馏方法,即自蒸馏,也能提高教师网络本身的性能。 同样地,也可以在自蒸馏方法中引入位置蒸馏,即Self-LD,来增强教师网络解决边界模糊性的能力。

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

    模型蒸馏-学习笔记

    模型蒸馏一. 核心问题由于知识蒸馏在训练过程中,有两个模型(teacher模型和student模型),3个loss(teacher loss、student loss、蒸馏loss),因此如何平衡不同模型之间的训练会是影响模型效果的重要因素 模型有以下特点:学生网络和教师网络共享底层参数 [[公式]]教师网络使用更复杂的模型结构 [[公式]]蒸馏目标是logits输出,学生网络logits拟合教师网络logits蒸馏误差表示如下:[image 模型蒸馏实战说明: keras官方提供的蒸馏方案是一个标准的MD方案, teacher和student使用相同的输入, 通过teacher和student的输出拟合来将teacher的信息迁移到student 模型蒸馏这里放一下蒸馏模型的定义, 主要是使用from datetime import timeimport tensorflow as tffrom tensorflow import keras#

    9.8K22编辑于 2022-06-30
  • 来自专栏null的专栏

    BERT知识蒸馏TinyBERT

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

    89560编辑于 2022-11-12
  • 来自专栏null的专栏

    BERT知识蒸馏TinyBERT

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

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

    知识蒸馏(Knowledge Distillation)

    本文主要罗列与知识蒸馏相关的一些算法与应用。但首先需要明确的是,教师网络或给定的预训练模型中包含哪些可迁移的知识? Distilling the Knowledge in a Neural Network Hinton的文章”Distilling the Knowledge in a Neural Network”首次提出了知识蒸馏 ,考虑了中间层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
  • 来自专栏AI系统

    【AI系统】知识蒸馏原理

    我们将探讨知识蒸馏的不同知识类型,包括基于响应的、基于特征的和基于关系的知识点,以及不同的知识蒸馏方式,如离线蒸馏、在线蒸馏和自蒸馏。 此外,还将解读 Hinton 提出的经典知识蒸馏算法,以及知识蒸馏与自然界中物理蒸馏过程的相似之处。 知识蒸馏方式 类似于人类教师和学生之间的学习模式,神经网络的知识蒸馏在学习方式上也有多种模式,一般分为三种:离线蒸馏(offline distillation),在线蒸馏(online distillation 用学习过程比喻,离线蒸馏是知识渊博的老师向学生传授知识;在线蒸馏是老师和学生一起学习、共同进步;自蒸馏是学生自学成才。 自蒸馏的提出主要是为了解决传统两阶段蒸馏方法的一些问题。 知识蒸馏与物理蒸馏的相似之处: 知识蒸馏通过 T 系数控制模型输出的熵;物理蒸馏通过温度改变混合物的形态,影响物理系统的熵 温度系数 T 训练时提高,最后变回 1;物理蒸馏时温度先上升使液体变为气体,气体再回到常温变回液体

    83110编辑于 2024-12-06
  • 来自专栏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也归属于基于关系的知识蒸馏方法 全称:Contrastive Representation Distillation 链接:https://arxiv.org/abs/1910.10699v2 发表:ICLR20 将对比学习引入知识蒸馏

    1.5K21编辑于 2022-02-11
  • 来自专栏GiantPandaCV

    【知识蒸馏】Deep Mutual Learning

    feature distillation): +0.18 DML(deep mutual learning): + 2.24 (ps: 这里教师网络已经训练好了,与DML不同) DML也是传统知识蒸馏的扩展 但是不同于传统知识蒸馏的单向蒸馏(教师→学生),DML认为可以让学生互相学习(双向蒸馏),在整个训练的过程中互相学习,通过这种方式可以提升模型的性能。 如果传统的知识蒸馏是由教师网络指导学生网络,那么DML就是让两个学生互帮互助,互相学习。 DML 小型的网络通常有与大网络相同的表示能力,但是训练起来比大网络更加困难。 那么先训练一个大型的网络,然后通过使用模型剪枝、知识蒸馏等方法就可以让小型模型的性能提升,甚至超过大型模型。 以知识蒸馏为例,通常需要先训练一个大而宽的教师网络,然后让小的学生网络来模仿教师网络。 在Reid数据集Market-1501上也进行了测试: 发现互学习目标越多,性能呈上升趋势: 结论 本文提出了一种简单而普遍适用的方法来提高深度神经网络的性能,方法是在一个队列中通过对等和相互蒸馏进行训练

    1.1K30发布于 2021-11-19
  • 来自专栏图与推荐

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

    最近,图数据集蒸馏/图压缩(Graph Dataset Distillation / Graph Condensation)方法引起了广泛关注,它旨在将庞大的原始图数据蒸馏至一个极小规模且信息丰富的生成图 ,现有的图数据蒸馏(图压缩)方法往往是将面向图像数据的数据蒸馏方法简单扩展到图数据上,忽视了图结构在图数据蒸馏中的关键作用。 因此,我们的研究聚焦于图结构对图数据蒸馏性能的影响。从谱域角度出发,我们定量分析了原始图与生成图间的“结构差异”,并实验性地验证了这种差异与生成图的跨框架泛化性能之间的关系。 现有方法的问题 现有的图数据蒸馏(图压缩)方法往往是将面向图像数据的数据蒸馏方法简单扩展到图数据上,忽视了图结构信息在图数据压缩中的重要影响。 总结 面向图数据的蒸馏目前仍为一个较新的方向,我们的研究着眼于图结构保持对图数据蒸馏的重要性,期望此工作能够引起领域对该方向更多的研究和探讨。 6.

    76510编辑于 2024-01-23
  • 来自专栏集智书童

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

    离线知识蒸馏是一种需要昂贵资源训练教师网络,然后将知识蒸馏到学生网络进行部署的两阶段 Pipeline 。另一方面,在线知识蒸馏是一种一阶段策略,通过互相学习和合作学习来缓解这种需求。 流行的模型压缩技术包括模型剪枝,模型量化,知识蒸馏和轻量级模块设计。 知识蒸馏(KD)提供了一种有效的学习方法,通过模仿来自更优性能的教师网络的输出,来提高紧凑的学生网络。 集成学习,在现有的在线知识蒸馏中广泛使用,如KDCL(图1(b)),通过减少每个个体网络的方差,构建一个强大的伪教师网络,从而减轻在线知识蒸馏早期的不准确监督问题。 2 Related work 知识蒸馏通常用于模型压缩,这被分为离线和在线知识蒸馏: 离线知识蒸馏需要一个预训练的教师网络和一个学生网络,学生网络同时学习教师网络和真实值。 可以实现良好的蒸馏性能,从而大大降低训练开销。

    1.2K10编辑于 2024-01-03
  • 来自专栏人人都是极客

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

    为了解决这个问题,提出了一种叫做知识蒸馏的开创性技术。也就是说,知识蒸馏只需要训练另一个单独的模型就可以匹配集成的输出。 此外,我们是否可以对知识蒸馏后的模型进行集成学习以进一步提高测试精度? 图2:知识蒸馏和自蒸馏也提高了深度学习的性能。 图6:知识蒸馏已经从集成中学习了大多数视图特征,因此在知识蒸馏后对模型进行集成学习不会提供更多的性能提升。 自蒸馏:隐式地结合集成和知识蒸馏 在这项新工作中,我们还为知识自蒸馏提供了理论支持(参见图3)。训练一个单个模型以匹配另一个相同单个模型的输出(但使用不同的随机种子),以某种方式提高了性能。 在较高的层次上,我们把自蒸馏看作是集成蒸馏和知识蒸馏更紧密的结合。当从随机初始化学习单个模型F2以匹配单独训练的单个模型F1的输出时,可以期望F2根据它自己的随机初始化学习特征的子集。

    1.7K11编辑于 2024-04-15
领券