做一下投机解码这一块的笔记,感觉这一块还是很重要的,所以就自己实现一下。
投机解码主要的逻辑就是我如果线性的一个个的去求decode出来的token,那么GEMM就会退化成GEMV,因为是流水线型的。为了缓解这种情况所以就采取了投机解码的方式,意思是我拿一个小模型一次性的多生成几个token,然后统一的再去验证它。
这里我采取的是复现EAGLE这个方法,它是利用了hidden_state这个东西和最后的token去投入到自己的小模型进行训练,算是SOTA,而且也能让我熟悉整个训练的流程。
做一下投机解码这一块的笔记,感觉这一块还是很重要的,所以就自己实现一下。
投机解码主要的逻辑就是我如果线性的一个个的去求decode出来的token,那么GEMM就会退化成GEMV,因为是流水线型的。为了缓解这种情况所以就采取了投机解码的方式,意思是我拿一个小模型一次性的多生成几个token,然后统一的再去验证它。
这里我采取的是复现EAGLE这个方法,它是利用了hidden_state这个东西和最后的token去投入到自己的小模型进行训练,算是SOTA,而且也能让我熟悉整个训练的流程。