我整理了很多的算法題,詳情見參考鏈接1
在大模型中,位置編碼主要分為兩大派:絕對位置編碼和相對位置編碼。主流的幾種膾炙人口的位置編碼如下所示:
-
正弦編碼
正弦曲線(Sinusoidal)位置編碼:這是Transformer原始論文中提出的位置編碼方式。它通過正弦和余弦函數(shù)的組合為每個位置創(chuàng)建編碼,波長呈幾何級數(shù)排列,使得每個位置的編碼都是獨特的,并且能夠捕獲位置之間的相對關(guān)系。公式如下:
其中,表示位置,
代表embedding的維度,
代表的是embedding不同位置的索引。
優(yōu)點:實現(xiàn)簡單,效率高,易用性好,有一定的理論支撐
缺點:絕對位置編碼帶來的靈活性差;外推性較差,難以對超出預(yù)訓(xùn)練長度的文本進(jìn)行很好的外推或者說性能下降;難以表示有效的相對位置間的關(guān)系,也即難以表示前后方向,只能表示距離。 旋轉(zhuǎn)位置編碼
旋轉(zhuǎn)位置編碼(RoPE):這是一種相對位置編碼,通過旋轉(zhuǎn)向量的方式來編碼位置信息。RoPE在特定任務(wù)中表現(xiàn)出獨特的優(yōu)勢,尤其是在處理具有對稱性或周期性特征的數(shù)據(jù)時。
優(yōu)點:能保證相對位置關(guān)系;良好的外推性;可以和線性注意力機制兼容.
缺點:實現(xiàn)上稍微復(fù)制;外推到超長序列也存在性能下降問題
可以參考 https://zhuanlan.zhihu.com/p/647109286 進(jìn)行學(xué)習(xí),十分鐘就精通了
-
ALiBi
相對位置編碼(ALiBi):這是一種微調(diào)Attention結(jié)構(gòu)的方法,使其能夠分辨不同位置的Token。相對位置編碼適用于長文本處理和需要捕捉長距離依賴的任務(wù),如機器翻譯和問答系統(tǒng)ALibi并沒有顯示的在網(wǎng)絡(luò)種加入編碼,唯一的修改是在qk點積之后,加入了一個靜態(tài)的不可學(xué)習(xí)的bias:
m是一個head-specific的超參(multihead),對于n個head而言,步長一般為image優(yōu)點:實現(xiàn)簡單,減少了模型embedding參數(shù),效率高,具有良好外推性,
缺點:外推到超長序列也存在性能下降問題
本文由mdnice多平臺發(fā)布
