自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

圖解新穎LLM的CoPE位置編碼

發(fā)布于 2025-1-23 09:08
瀏覽
0收藏

圖解新穎LLM的CoPE位置編碼-AI.x社區(qū)


1.快速總覽

研究人員提出了一種新穎的位置編碼方法,稱為上下文位置編碼(下文稱之為CoPE),它有別于基于標(biāo)記的傳統(tǒng)位置編碼范式。


  • 它以上下文依賴的方式測量位置,在按位置尋址時會更加自由
  • 它在如下的任務(wù)中獲得不錯的收益:Flip-Flop, Selective Copy, Counting, Language Modeling, and Code Modeling tasks
  • 它優(yōu)于現(xiàn)有方法,尤其是在域外泛化場景
  • 它有可能改善其他領(lǐng)域的編碼,例如視頻和語音。在這些領(lǐng)域,基于Token位置的編碼不太合適。

2.位置編碼的思考

大型語言模型(LLMs)如何理解句子中單詞的順序?這是語言理解的關(guān)鍵部分,這樣的機制稱為位置編碼( Positional Encoding)。

先考慮一個簡單的例子:“狗坐在椅子上”。若只給出LLM一個單詞列表“dog、sat、on、the、chair”,它不知道哪個單詞排在第一位、第二位,而位置編碼此時就大派用場。

位置編碼主要是用于添加有關(guān)序列中每個單詞位置的信息,幫助大模型解碼個中含義。從常識出發(fā),有很多不同的方法可以實現(xiàn)。例如絕對位置編碼,其中每個單詞都被分配一個表示其位置的唯一向量;還有相對位置編碼,其中相對于當(dāng)前單詞測量位置。但是,這兩種方法都基于對Token進行計數(shù)編碼,而不考慮上下文。

圖解新穎LLM的CoPE位置編碼-AI.x社區(qū)上圖為傳統(tǒng)Transformer的位置編碼?

在這里舉個例子,假如n=10000(超參數(shù),可以設(shè)置),L=6(輸入序列長度),d_model=4(向量維度)。那么下圖為每個Token的編碼向量P0,……,P5的計算方法。這里值得一提的是P下標(biāo)0,……5某種意義上就是每個Token的位置信息。

圖解新穎LLM的CoPE位置編碼-AI.x社區(qū)圖片

研究人員認(rèn)為現(xiàn)有的位置編碼方法不足以完成更復(fù)雜的任務(wù),例如理解句子或段落的結(jié)構(gòu),因此CoPE(上下文位置編碼)誕生。它與上下文相關(guān),也意味著一個單詞的位置不僅取決于它在序列中的數(shù)字位置,還取決于它與其他單詞的關(guān)系以及文本的整體結(jié)構(gòu)。

圖解新穎LLM的CoPE位置編碼-AI.x社區(qū)圖片

上圖體現(xiàn)了新的位置編碼和傳統(tǒng)相對位置編碼之間的區(qū)別。傳統(tǒng)的方法從11開始一直延續(xù)到0(最近)。仔細(xì)觀察,CoPE的位置編碼和Q和K相關(guān)。

3.傳統(tǒng)的位置編碼

絕對位置編碼:想象一個單詞序列,每個單詞都有一個與之關(guān)聯(lián)的唯一向量。此向量表示其在序列中的位置。因此,第一個單詞有一個表示位置 1 的向量,第二個單詞有一個表示位置 2 的向量,依此類推。

相對位置編碼:相對位置編碼考慮單詞在序列中的相對位置。它不是為每個位置分配一個固定的向量,而是計算當(dāng)前單詞和它所關(guān)注的單詞之間的距離。例如“前N個單詞”、“后退M個單詞”等。

論文中給出了一個例子,給出一段文字,問它某個單詞出現(xiàn)幾次。結(jié)果GPT4和Llama2都撲街了

因為模型依賴于標(biāo)記位置,當(dāng)單詞與上次出現(xiàn)之間的距離很大或序列長度不可預(yù)測時,標(biāo)記位置可能不精確。

下圖為論證過程,沒興趣的讀者可以跳過。大致的意思就是假設(shè)有個輸入“yyyyxyyyy……”,若是序列過長,大于某個閾值(i > Δ/δ )則大模型則無法關(guān)注到x。

圖解新穎LLM的CoPE位置編碼-AI.x社區(qū)圖片

4.CoPE

CoPE提供了一種新穎的方法,通過考慮上下文來解決現(xiàn)有方法的局限性。對于序列中的每個單詞,CoPE 會計算每個前一個單詞的門值(gate value)。門值是通過將當(dāng)前單詞的查詢向量與前一個單詞的鍵向量進行比較來確定的。門值為 1 表示前一個詞很重要,在位置測量中應(yīng)予以考慮。值為 0 表示前一個單詞不相關(guān)。

CoPE 使用門值的累積總和來計算每個單詞相對于當(dāng)前單詞的位置。這意味著位置編碼不僅是一個數(shù)字,而是相關(guān)單詞的計數(shù)。

由于位置編碼不一定是整數(shù),所以CoPE使用整數(shù)位置之間的插值來生成位置嵌入(Embedings)。然后嵌入添加到K向量,從而允許Q向量在注意力機制中使用。

一頭霧水,沒關(guān)系,拿論文的實例來講解下。

圖解新穎LLM的CoPE位置編碼-AI.x社區(qū)圖片

假如輸入為“Alice was tired. She tried reading. A rabbit came”,當(dāng)前的單詞為“came”。

  • CoPE 將首先計算此序列中每個單詞的門值。例如,單詞“tired”的門值可能為1,表示它與當(dāng)前單詞相關(guān),而“rabbit”的門值可能為0,表示不相關(guān)。
  • 然后,CoPE 將使用這些門值的累積總和來計算數(shù)值。例如,“tired”相對于最后一個單詞“came”的位置可以認(rèn)為是2。
  • 緊接著CoPE 將為位置2生成一個位置嵌入,該位置嵌入將是位置1和3的之間的插值。
  • 最后,將獲得到的位置嵌入加到單詞“tired”的K向量中,允許模型根據(jù)其上下文位置(而不僅僅是其在序列中的數(shù)字位置)來關(guān)注“tired”。

當(dāng)然實際的算法比較復(fù)雜,上面僅僅是為了輔助理解。一般而言注意力的運算如下公式,其實就是上面那張可視化的數(shù)學(xué)表達方法

圖解新穎LLM的CoPE位置編碼-AI.x社區(qū)圖片

圖解新穎LLM的CoPE位置編碼-AI.x社區(qū)

而CoPE則利用Qi和Kj相乘過激活函數(shù)σ,累加得到Pij

圖解新穎LLM的CoPE位置編碼-AI.x社區(qū)圖片

圖解新穎LLM的CoPE位置編碼-AI.x社區(qū)

圖解新穎LLM的CoPE位置編碼-AI.x社區(qū)

這個時候pij不一定是個整數(shù),因此不能像RoPE一樣將Pij進行變換得到位置編碼向量。因此首先針對每個p ∈ [0, T]分配一個可以學(xué)習(xí)的編碼向量e[p],然后按照下面的公式進行插值處理。

圖解新穎LLM的CoPE位置編碼-AI.x社區(qū)

最終在進行注意力的計算:

圖解新穎LLM的CoPE位置編碼-AI.x社區(qū)

5.小結(jié)

圖解新穎LLM的CoPE位置編碼-AI.x社區(qū)圖片


這幅圖展示了CoPE可以將注意力集中在抽象元素上,例如當(dāng)前段落(左)和章節(jié)(右)。這里展示了Wikitext-103上僅由位置引起的注意力。由于CoPE是語境化的,它根據(jù)段落和章節(jié)的位置來關(guān)注它們。在左側(cè),可以它留意到了各段由換行符分隔(用黑色加號標(biāo)記),而右側(cè)則留意到章節(jié)標(biāo)題分隔,例如“==說明==”(黑色加號記)。

最后來看看它的榮譽墻,F(xiàn)lip-Flop Task要求模型記住特定單詞的最后一次出現(xiàn),并在可以有“ignore”指令的序列中找回其相關(guān)的部分。CoPE 在此任務(wù)中的表現(xiàn)優(yōu)于現(xiàn)有方法,尤其是在當(dāng)前單詞與最后一個“w”之間的距離遠遠超出的場景。


Selective Copy Task要求模型有選擇地從序列中復(fù)制標(biāo)記,跳過指定的“空白”標(biāo)記。CoPE 在這項任務(wù)上獲得了滿分,顯示了它處理特定單詞和排除不需要的元素的能力。

圖解新穎LLM的CoPE位置編碼-AI.x社區(qū)圖片

圖解新穎LLM的CoPE位置編碼-AI.x社區(qū)

圖解新穎LLM的CoPE位置編碼-AI.x社區(qū)圖片

圖解新穎LLM的CoPE位置編碼-AI.x社區(qū)

圖解新穎LLM的CoPE位置編碼-AI.x社區(qū)

CoPE 還在代碼任務(wù)上進行了測試。實驗表明與傳統(tǒng)方法相比,它提高了困惑度分?jǐn)?shù)。這表明CoPE在更多結(jié)構(gòu)化數(shù)據(jù)領(lǐng)域中可能有一定的提升。

本文轉(zhuǎn)載自??魯班模錘??,作者: 龐德公 ????

標(biāo)簽
收藏
回復(fù)
舉報
回復(fù)
相關(guān)推薦