月度归档:2023年12月

2.1 Adam算法的优点

Adam算法一直是优化算法中优等生,它有很多优点,如下图所示:

adam
以Adam为代表的优化算法,能够避开鞍点最快抵达目标。传统SGD(不带动量)算法方法
容易受到外界干扰,其行走路线比较曲折。

2.2 Adam算法的表现不尽如人意

虽然Adam很多的优点(带有动量,学习率的自适应性),但在深度学习的很多数据集上的最好效果还是用SGD with Momentum细调出来的。可见Adam的泛化性并不如带有动量(Momentum)的SGD。【https://arxiV.org/pdf/1711.05101.pdf 】中提出其中一个重要原因就是Adam中L2正则化项并不像在SGD中那么有效。

2.3 Adam算法表现不佳的原因是什么?

Adam算法表现不佳的原因就是其梯度更新与权重衰减耦合在一起,如下图所示:

2.4 如何解决这个问题?

这是PyTorch平台给出的解决方案

2.5 AdamW算法的优点

在优化算法中,AdamW相对于Adam的改进主要表现在权重衰减的处理方式上。具体来说,AdamW在应用权重衰减时,将其与梯度更新解耦,避免了两者之间的耦合问题。这种改进的背后原因主要有以下几点:
(1)更稳定的优化过程:原始的Adam算法在权重衰减与梯度更新的耦合方式可能会导致优化过程中的不稳定。当权重衰减较大时,这种耦合可能导致梯度更新变得非常小,从而使得学习率变得非常慢。解耦后,梯度更新和权重衰减可以独立调整,从而使得优化过程更加稳定。
(2)避免不一致性:权重衰减与梯度更新的耦合可能导致算法的不一致性。当权重衰减变化时,它可能会影响到梯度的计算,这可能导致算法在优化过程中行为不一致。解耦后,权重衰减只作为一个单独的项来处理,避免了这种不一致性。
(3)更好的泛化性能:权重衰减作为一种正则化技术,有助于防止模型过拟合。通过解耦,AdamW可以更好地利用权重衰减的正则化效果,从而提高模型的泛化性能。
(4)更广泛的适用性:由于AdamW在权重衰减方面的改进,它可能更适合于一些需要较强正则化的场景。通过独立调整权重衰减和梯度更新,AdamW可以更好地适应不同的任务和数据集,从而提高算法的适用性。
(5)灵活的超参数调整:解耦后,可以更加灵活地调整超参数。例如,可以独立调整权重衰减和学习率,而不会相互影响。这为超参数调整提供了更大的灵活性,有助于找到最优的超参数配置。
总之,AdamW通过改进权重衰减的处理方式,提高了优化算法的稳定性、一致性和泛化性能,使其在各种机器学习任务中更具竞争力,能用Adam的地方可以都用AdamW来代替。

1.1大模型Emergent Abilities(新兴能力)现象

模型规模达到某个阈值时,模型对某些问题的处理性能呈现快速增长。这个过程类似于水加热到100度的过程。
目前一些大模型已达或接近这个阈值,个人觉得这些技术或方法功不可没:
一、软件方面
1.BP算法
2.注意力机制
3.强化学习
强化学习一大贡献就是弥补了传统机器学习评估标准的不足,传统机器学习一般基于损失函数进行评估,希望预测与标签的差平方(或两者的分布近似度)越小越好。这种评估方式是一种绝对值的近似,不利于输出多样性的结果。而强化学习采用奖励或评分的方式,看重的是输出与期望值的对齐程度。

4.大数据平台,如PyTorch,TensorFlow,及CUDA架构等
5.GEMM
二、硬件方面
GPU、TPU等地助力。

1.2 几种正助力拓展序列长度的几种算法

(1)FlashAttention,FlashAttention-2
FlashAttention从软件和硬件两个方面对Transformer模型进行优化,软件方面采用了分块、在线softmax,重计算(一种类似于Python迭代器的思路,用规则或算法表示数据,而不实际存在大数据);硬件方法,充分考虑了GPU的架构特点,如A100,H100等HBM,SRAM等优缺点。

HBM,SRAM等优缺点

(2)Learned、Relative、RoPE等位置编码方法

(3)多种注意力机制

1.3.各种大模型使用技术概览

下面我选择8个比较典型的大模型,统计了它们使用的一些技术,供大家参考。

————————————————
版权声明:本文为CSDN博主「wumg3000」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wumg3000/article/details/135242873