Make Your Pre-trained Model Reversible: From Parameter to Memory Efficient Fine-Tuning
论文地址:
整体思路以及计算方式
在介绍论文之前,首先回顾一下可逆神经网络,其思路很简单:
我们知道在前向传播中,第i层的结果可以由第i−1层(前一层)计算得到;但是在反向传播时,计算第i层的结果ablaiL需要第i+1层(前一层)的梯度ablai+1L,和前向计算的中间结果fi。在一般情况下,fi无法通过fi+1计算得到,所以fi是必须要缓存的,可能神经网络就是通过巧妙的设计,使得fi可以通过fi+1计算得到,从而减少了内存开销。其思路如下,首先输入部分变成两个部分:
hn+11hn+12=λhn1+Fn(hn2)=βhn2+Gn(hn+11) 其中Fn,Gn是两个任意函数,根据上式可得:
hn2hn1=(hn+12−Gn(hn+11))/β=(hn+11−Fn(hn2))/λ 本文主要就是基于可逆神经网络进行adapter设计,作者指出当前的PEFT并不一定能省内存,然后利用可逆神经网络缓解了这点。
代码
简评
作者提出的方法在inference的时候会降低速度,也许是一个可改进的点。