如何提升深度学习算法效率,谷歌有这些绝招(下)

简介: 如何提升深度学习算法效率,谷歌有这些绝招(下)

正文


数据效率


在许多任务中,深度神经网络严重依赖于大型数据集。除了大型数据集带来的存储成本和潜在的安全 / 隐私问题外,在此类数据集上训练现代深度神经网络还会产生很高的计算成本。解决这个问题的可行方法之一是对数据子集进行选择。

研究人员分析了子集选择框架,设计用于实际批处理设置中的任意模型族。在这种情况下,学习器可以一次采样一个示例,同时访问上下文和 true 标签,但为了限制开销,只有在选择了足够多的示例批次后才能更新其状态(即进一步的训练模型权重)。研究人员开发了一种算法,称为 IWeS,它通过重要性抽样来选择示例,其中分配给每个示例的抽样概率是基于在先前选择的批次上训练的模型的熵。研究所提供的理论分析证明了泛化和抽样率的界限。

19.png

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

训练大型网络的另一个问题是,它们可能对训练数据和部署时看到的数据之间的分布变化高度敏感,特别是在使用有限数量的训练数据时,这些数据可能无法覆盖所有部署时场景。最近的一项研究假设「极端简单性偏差」是神经网络这种脆弱性背后的关键问题,其使这一假设成为可行,导致了两种新的互补方法 ——DAFT 和 FRR—— 结合在一起时,可以提供明显更鲁棒的神经网络。特别是,这两种方法使用对抗性微调以及反向特征预测来加强学习网络。

18.png

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


推理效率


事实证明,增加神经网络的规模能够提高其预测准确性,然而,在现实世界中实现这些收益是具有挑战性的,因为大型模型的推理成本对于部署来说非常高。这促使策略提高服务效率,而不牺牲准确性。在 2022 年,专家研究了实现这一目标的不同策略,特别是基于知识蒸馏和自适应计算的策略。


蒸馏


蒸馏是一种简单而有效的模型压缩方法,极大地扩展了大型神经模型的潜在适用性。已有研究证明蒸馏能在广告推荐等一系列实际应用中发挥其作用。蒸馏的大多数用例涉及基本配方在给定领域的直接应用,对何时以及为什么这应该起作用的理解有限。谷歌今年的研究着眼于针对特定环境定制蒸馏,并正式研究了控制蒸馏成功的因素。

在算法方面,研究通过仔细建模教师标签中的噪声,开发出了一项重新加权训练示例的重要途径,以及一项有效措施来对数据子集进行采样以获得教师标签。谷歌在《Teacher Guided Training: An Efficient Framework for Knowledge Transfer》中表明:不是被动地使用教师来注释固定的数据集,而是主动地使用教师来指导选择要注释的信息性样本。这使得蒸馏过程在有限的数据或长尾设置中脱颖而出。

17.png

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

除此之外,谷歌还研究了从交叉编码器 (dual-encoder, 例如 BERT) 到因子双编码器(dual-encoder)的新方法,这也是对(query, document)对的相关性进行评分的重要设置。研究人员探讨了交叉编码器和双编码器之间性能差距的原因,注意到这可能是泛化的结果,而不是双编码器的容量限制。精馏损失函数的精心构造可以缓解这种情况,并减少交叉编码器和双编码器性能之间的差距。随后,在 embedtitil 中,研究通过匹配教师模型中的嵌入来进一步改进双编码器蒸馏。这种策略也可以用于从大到小的双编码器模型中提取信息,其中继承和冻结教师的文档嵌入可以证明是非常有效的。

16.png

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

理论方面,研究从监督复杂性角度出发,提供了一个关于蒸馏的新视角,这是一种衡量学生预测教师标签程度的方法。NTK(neural tangent kernel )理论提供了概念性的见解。研究进一步证明,蒸馏会导致学生不适合教师模型认为难以建模的点。直观地说,这可以帮助学生将有限的能力集中在那些可以合理建模的样本上。

15.png

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


自适应计算


虽然蒸馏是一种降低推理成本的有效手段,但它在所有样本上都是一致的。然而,直观地说,一些简单(easy)样本可能天生就比困难(hard)样本需要更少的计算。自适应计算的目标是设计能够实现这种依赖于样本的计算的机制。

CALM(Confident Adaptive Language Modeling)为基于 Transformer 的文本生成器(如 T5)引入了受控的早期退出(early-exit)功能。

14.png

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

在这种形式的自适应计算中,模型动态地修改每个解码步骤使用的 Transformer 层数。早期退出门使用带有决策阈值的置信度测量,该决策阈值经过校准,以满足统计性能保证。通过这种方式,模型只需要为最具挑战性的预测计算解码器层的完整堆栈。更简单的预测只需要计算几个解码器层。在实践中,该模型平均使用大约三分之一的层进行预测,在保持相同水平的生成质量的同时,速度能提升 2-3 倍。


13.gif

使用常规语言模型(top)和 CALM (bottom)生成文本。CALM 试图做出早期预测。一旦对生成的内容足够自信(深蓝色调),它就会跳过来节省时间。

一种流行的自适应计算机制是两个或多个基本模型的级联。使用级联的一个关键问题:是简单地使用当前模型的预测,还是将预测推迟到下游模型。学习何时延迟需要设计一个合适的损失函数,它可以利用适当的信号作为延迟决策的监督。为了实现这一目标,研究人员正式研究了现有的损失函数,证明由于隐含的标签平滑应用,它们可能不适合训练样本。研究展示了可以通过延迟规则的 post-hoc 训练来缓解这种情况,这并不需要以任何方式修改模型内部。

12.png

论文地址:https://openreview.net/pdf?id=_jg6Sf6tuF7

对于检索应用,标准语义搜索技术对大型模型生成的每个嵌入使用固定表示。也就是说,无论下游任务及其相关的计算环境或约束如何,表示的大小和能力基本上是固定的。MRL(Matryoshka representation learning)引入了根据部署环境调整表示法的灵活性。当与标准的近似最近邻搜索技术(如 ScaNN)结合使用时,MRL 能够提供高达 16 倍的低计算,同时具有相同的召回率和准确率指标。

11.png

论文地址:https://openreview.net/pdf?id=9njZa1fm35

原文链接:https://ai.googleblog.com/2023/02/google-research-2022-beyond-algorithms.html?m=1#ToC

相关文章
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习算法:探索人工智能的前沿
深度学习算法:探索人工智能的前沿
|
1月前
|
机器学习/深度学习 算法 计算机视觉
基于yolov2深度学习网络的视频手部检测算法matlab仿真
基于yolov2深度学习网络的视频手部检测算法matlab仿真
|
4天前
|
机器学习/深度学习 人工智能 算法
揭秘深度学习中的优化算法
【4月更文挑战第24天】 在深度学习的广阔天地中,优化算法扮演着至关重要的角色。本文将深入探讨几种主流的优化算法,包括梯度下降法、随机梯度下降法、Adam等,并分析它们的特点和适用场景。我们将通过理论分析和实例演示,揭示这些优化算法如何帮助模型更高效地学习参数,从而提高模型的性能。
|
17天前
|
机器学习/深度学习 自然语言处理 算法
|
1月前
|
机器学习/深度学习 算法
m基于深度学习的64QAM调制解调系统相位检测和补偿算法matlab仿真
MATLAB 2022a仿真实现了基于深度学习的64QAM相位检测和补偿算法,有效应对通信中相位失真问题。通过DNN进行相位检测和补偿,降低解调错误。核心程序生成随机信号,模拟AWGN信道,比较了有无相位补偿的误码率,结果显示补偿能显著提升性能。
28 8
|
1月前
|
机器学习/深度学习 算法 生物认证
基于深度学习的人员指纹身份识别算法matlab仿真
这是一个关于使用深度学习进行指纹识别的算法概述。在matlab2022a环境下,通过预处理指纹图像(灰度化、二值化等)并利用卷积神经网络(CNN)提取特征。CNN架构包含卷积、池化、归一化和全连接层。特征向量通过余弦相似度计算匹配,训练时采用triplet loss优化。部分核心代码展示了加载预训练模型进行测试集分类预测并计算准确率的过程。
|
1月前
|
机器学习/深度学习 算法
m基于深度学习的32QAM调制解调系统相位检测和补偿算法matlab仿真
m基于深度学习的32QAM调制解调系统相位检测和补偿算法matlab仿真
27 1
|
1月前
|
机器学习/深度学习 算法
机器学习与深度学习的算法分类
机器学习与深度学习的算法分类
|
1月前
|
传感器 算法 计算机视觉
基于肤色模型和中值滤波的手部检测算法FPGA实现,包括tb测试文件和MATLAB辅助验证
该内容是关于一个基于肤色模型和中值滤波的手部检测算法的描述,包括算法的运行效果图和所使用的软件版本(matlab2022a, vivado2019.2)。算法分为肤色分割和中值滤波两步,其中肤色模型在YCbCr色彩空间定义,中值滤波用于去除噪声。提供了一段核心程序代码,用于处理图像数据并在FPGA上实现。最终,检测结果输出到"hand.txt"文件。
|
1月前
|
算法
【MATLAB】语音信号识别与处理:移动中位数滤波算法去噪及谱相减算法呈现频谱
【MATLAB】语音信号识别与处理:移动中位数滤波算法去噪及谱相减算法呈现频谱
23 2