【模型性能杀器解读】如果项目的模型遇到瓶颈,用这些Tricks就对了!!!(一)

本文涉及的产品
交互式建模 PAI-DSW,每月250计算时 3个月
模型训练 PAI-DLC,100CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: 【模型性能杀器解读】如果项目的模型遇到瓶颈,用这些Tricks就对了!!!(一)

1、Introduction


近年来ImageNet的榜单一直在被刷新,从2012年的AlexNet,再到VGG-Net、NiN、Inception、ResNet、DenseNet以及NASNet;Top-1精度也从62.5%(AlexNet)->82.7%(NASNet-A);但是这么大精度的提升也不完全是由模型的架构改变所带来的,其中 训练的过程也有会起到很大的作用,比如,损失函数的改进、数据的预处理方式的改变、以及优化方法的选择等;但是这也是很容易被忽略的部分,因此这篇文章在这里也会着重讨论这个问题。

表1为各种模型的计算成本和验证精度以及ResNet使用“Tricks”训练结果,能够超越使用pipeline进行训练的架构。同时证明了这些Tricks在其他模型也是有效果的,比如Inception-V3、MobileNet等模型。


2、Efficient Training


近年来硬件发展迅速,特别是GPU。因此,许多与性能相关的权衡的最佳选择也会随之发生变化。例如,在训练中使用较低的数值精度和较大的Batch_Size更有效。

在本节中将在不牺牲模型精度的情况下实现低精度和大规模批量训练的各种技术。有些技术甚至可以提高准确性和训练速度。

2.1、Large-batch training

Mini-Batch SGD将多个样本分组到一个小批量中,以增加并行性,降低传输成本。然而,使用Large Batch-size可能会减慢训练进度。对于凸优化问题,收敛率随着批量大小的增加而降低。类似的经验结论已经被发表。

换句话说,在相同的epoch数量下,使用Large Batch-size的训练会与使用较小批次的训练相比,模型的验证精度降低。很多研究提出了启发式搜索的方法来解决这个问题。下面将研究4种启发式方法,可以在单台机器训练中扩大Batch-size的规模。

1)Linear scaling learning rate

在Mini-Batch SGD中,由于样本是随机选取的,所以梯度下降也是一个随机的过程。增加批量大小不会改变随机梯度的期望,但会减小随机梯度的方差。换句话说,大的批量降低了梯度中的噪声,因此我们可以通过提高学习率来在梯度相反的方向上取得更大的进展。

Goyal等人提出对于ResNet-50训练,经验上可以根据批大小线性增加学习率。特别是,如果选择0.1作为批量大小256的初始学习率,那么当批量大小b变大时可以将初始学习率提高到:

2)Learning rate Warmup

在训练开始时,所有参数通常都是随机值,因此离最优解很远。使用过大的学习率可能导致数值不稳定。在Warmup中,在一开始使用一个比较小的学习率,然后当训练过程稳定时切换回初始设置的学习率base_lr。


Goyal等人提出了一种Gradual Warmup策略,将学习率从0线性地提高到初始学习率。换句话说,假设将使用前m批(例如5个数据epoch)进行Warmup,并且初始学习率为,那么在第批时将学习率设为i=m。

3)Zero

一个ResNet网络由多个残差块组成,而每个残差块又由多个卷积层组成。给定输入,假设是Last Layer的输出,那么这个残差块就输出。注意,Block的最后一层可以是批处理标准化层。

BN层首先标准化它的输入用表示,然后执行一个scale变换。两个参数都是可学习的,它们的元素分别被初始化为1s和0s。在零初始化启发式中,剩余块末端的所有BN层初始化了。因此,所有的残差块只是返回它们的输入,模拟的网络层数较少,在初始阶段更容易训练。

4)No bias decay

权值衰减通常应用于所有可学习参数,包括权值和偏差。它等价于应用L2正则化到所有参数,使其值趋近于0。但如Jia等所指出,建议仅对权值进行正则化,避免过拟合。无偏差衰减启发式遵循这一建议,它只将权值衰减应用于卷积层和全连通层中的权值。其他参数,包括偏差和和以及BN层,都没有进行正则化。

LARS提供了分层自适应学习率,并且对大的Batch-size(超过16K)有效。本文中单机训练的情况下,批量大小不超过2K通常会导致良好的系统效率。

2.2、Low-precision training

神经网络通常是用32位浮点(FP32)精度训练的。也就是说,所有的数字都以FP32格式存储,输入和输出以及计算操作都是FP32类型参与的。然而,新的硬件可能已经增强了新的算术逻辑单元,用于较低精度的数据类型。

例如,前面提到的Nvidia V100在FP32中提供了14个TFLOPS,而在FP16中提供了超过100个TFLOPS。如下表所示,在V100上从FP32切换到FP16后,整体训练速度提高了2到3倍。尽管有性能上的好处,降低的精度有一个更窄的范围,使结果更有可能超出范围,然后干扰训练的进展。Micikevicius等人提出在FP16中存储所有参数和激活,并使用FP16计算梯度。同时,FP32中所有的参数都有一个用于参数更新的副本。此外,损失值乘以一个比较小的标量scaler以更好地对齐精度范围到FP16也是一个实际的解决方案。

2.3、Experiment Results


3、Model Tweaks


模型调整是对网络架构的一个小调整,比如改变一个特定卷积层的stride。这样的调整通常不会改变计算复杂度,但可能会对模型精度产生不可忽略的影响。

3.1、ResNet Tweaks

回顾了ResNet的两个比较流行的改进,分别称之为ResNet-B和ResNet-C。在此基础上,提出了一种新的模型调整方法ResNet-D。

1)ResNet-B

ResNet-B改变的下采样块。观察到路径A中的卷积忽略了输入feature map的四分之三,因为它使用的内核大小为1×1,Stride为2。ResNet-B切换路径A中前两个卷积的步长大小,如图a所示,因此不忽略任何信息。由于第2次卷积的kernel大小为3×3,路径a的输出形状保持不变。

2)ResNet-C

卷积的计算代价是卷积核的宽或高的二次项。一个7×7的卷积比3×3的卷积的计算量更大。因此使用3个3x3的卷积替换1个7x7的卷积,如图b所示,与第1和第2个卷积block的channel=32,stride=2,而最后卷积使用64个输出通道。

3)ResNet-D

受ResNet-B的启发,下采样块B路径上的1x1卷积也忽略了输入feature map的3/4,因此想对其进行修改,这样就不会忽略任何信息。通过实验发现,在卷积前增加一个平均为2x2的avg pooling层,将其stride改为1,在实践中效果很好,同时对计算成本的影响很小。

相关文章
|
8月前
|
机器学习/深度学习 计算机视觉 网络架构
【GhostNet】复现CVPR2020| 保证模型轻量化的同时,提升网络的性能表现
【GhostNet】复现CVPR2020| 保证模型轻量化的同时,提升网络的性能表现
785 0
【GhostNet】复现CVPR2020| 保证模型轻量化的同时,提升网络的性能表现
|
3月前
|
机器学习/深度学习 人工智能
昂贵LLM的救星?Nature新研究提出新型忆阻器,比Haswell CPU高效460倍
【10月更文挑战第11天】《自然》杂志最新研究介绍了一种新型忆阻器——线性对称自选14位动能分子忆阻器。该技术在神经网络训练和推理中表现出线性对称的权重更新、460倍于现有CPU的高能效及多级编程能力,有望大幅提升AI硬件的能源效率。尽管前景广阔,但仍需解决制造工艺复杂和环境影响等问题。
49 1
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
还是原装Transformer好!北大清华团队同时揭示Mamba等推理短板
北京大学和清华大学的研究团队分别发表论文,探讨了高效Transformer模型如Sparse Transformer和Linear Transformer在推理能力和上下文检索上的局限性,强调了原装Transformer在处理复杂任务上的优势。研究显示,尽管高效模型提升了计算效率,但在某些任务上,如动态规划问题和算法问题,以及上下文信息的精准提取方面,仍不及原装Transformer。这突显了原装Transformer在复杂推理任务中的不可替代性及其架构的灵活性和可扩展性。同时,研究也为未来高效Transformer的优化提供了方向。
47 4
|
5月前
|
机器学习/深度学习 人工智能 前端开发
BladeDISC 深度学习编译器问题之在动态shape下优化整体性能如何解决
BladeDISC 深度学习编译器问题之在动态shape下优化整体性能如何解决
|
5月前
|
自然语言处理 iOS开发 开发者
ChatGPT 等相关大模型问题之大模型提升开发效率如何解决
ChatGPT 等相关大模型问题之大模型提升开发效率如何解决
|
7月前
|
机器学习/深度学习 自然语言处理 物联网
ICML 2024:脱离LoRA架构,训练参数大幅减少,新型傅立叶微调来了
【6月更文挑战第4天】在ICML 2024上,研究团队提出了傅立叶变换微调(FourierFT),一种减少训练参数的新方法,替代了依赖LoRA的微调。FourierFT通过学习权重变化矩阵的稀疏频谱系数,实现了LFMs的高效微调。在多项任务上,FourierFT展示出与LoRA相当或更优的性能,参数量却大幅减少,如在LLaMA2-7B模型上,仅需0.064M参数,对比LoRA的33.5M。广泛实验验证了其在NLP和CV任务上的效果,但未来还需探索其适用性和泛化能力。论文链接:[arxiv.org/abs/2405.03003](https://arxiv.org/abs/2405.03003)
139 0
|
8月前
|
人工智能 安全 测试技术
Infection-2.5登场,训练计算量仅40%、性能直逼GPT-4!
【2月更文挑战第18天】Infection-2.5登场,训练计算量仅40%、性能直逼GPT-4!
77 3
Infection-2.5登场,训练计算量仅40%、性能直逼GPT-4!
|
8月前
|
人工智能 物联网 开发者
田渊栋等人新作:突破内存瓶颈,让一块4090预训练7B大模型
【2月更文挑战第18天】田渊栋等人新作:突破内存瓶颈,让一块4090预训练7B大模型
130 2
田渊栋等人新作:突破内存瓶颈,让一块4090预训练7B大模型
|
8月前
|
机器学习/深度学习 编解码 数据可视化
南开大学提出YOLO-MS | 超越YOLOv8与RTMDet,即插即用打破性能瓶颈
南开大学提出YOLO-MS | 超越YOLOv8与RTMDet,即插即用打破性能瓶颈
127 1
|
机器学习/深度学习 数据采集 人工智能
头疼!卷积神经网络是什么?CNN结构、训练与优化一文全解
头疼!卷积神经网络是什么?CNN结构、训练与优化一文全解
112 0

热门文章

最新文章