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

語(yǔ)言模型窗口外推技術(shù)綜述

人工智能
本次分享的題目為“大語(yǔ)言模型窗口外推技術(shù)進(jìn)展”。介紹了絕對(duì)位置編碼和相對(duì)位置編碼的基本原理,包括三角函數(shù)編碼和旋轉(zhuǎn)位置編碼(RoPE)的運(yùn)作機(jī)制 。

一、摘要

主要內(nèi)容概述:

絕對(duì)位置編碼與相對(duì)位置編碼:介紹了絕對(duì)位置編碼和相對(duì)位置編碼的基本原理,包括三角函數(shù)編碼和旋轉(zhuǎn)位置編碼(RoPE)的運(yùn)作機(jī)制 。

窗口外推的概念與意義:詳細(xì)闡述了什么是窗口外推,為什么窗口外推對(duì)于語(yǔ)言模型的重要性,以及當(dāng)前的研究挑戰(zhàn) 。

當(dāng)前窗口外推技術(shù)的現(xiàn)狀:分析了不同的窗口外推方法及其各自的優(yōu)缺點(diǎn),如限制注意力流派和調(diào)整旋轉(zhuǎn)速度流派 。

未來(lái)展望:展望了未來(lái)窗口外推技術(shù)的發(fā)展方向,特別是對(duì) RoPE 的進(jìn)一步研究和模型架構(gòu)優(yōu)化的可能性 。

二、絕對(duì)位置編碼

1. 三角位置編碼介紹

三角函數(shù)式 (Sinusoidal) 位置編碼是在原 Transformer 模型中使用的一種絕對(duì)位置編碼,其函數(shù)形式是:

圖片

其中 $p_{k,2i},p_{k,2i+1}$ 分別是位置索引 $k$ 處的編碼向量的第 $2i,2i+1$ 個(gè)分量。在一般實(shí)踐中 n=10000。

2. 性質(zhì)

圖片

對(duì)于每個(gè) dimension 而言,有

圖片

因此對(duì)于每個(gè)橫坐標(biāo)而言,都是一個(gè)正弦波,且波長(zhǎng)和 dimension 大小是指數(shù)關(guān)系。這里說(shuō)明了低 dimension 存儲(chǔ)了高頻分量,而高 dimension 存儲(chǔ)了低頻分量。

對(duì)于每個(gè) token 而言,每個(gè)奇數(shù)坐標(biāo)的正弦值如下所示:

圖片

波動(dòng)是隨著 token 靠后變大的,最終波長(zhǎng)趨于 2πn/k。

還有個(gè)性質(zhì)就是對(duì)于每一對(duì)(cos 和 sin),平方和為 1。

計(jì)算 qkv 的時(shí)候,我們知道有:

圖片

于是點(diǎn)積形式:

圖片

我們實(shí)際需要:

圖片

即所有的 p_n,p_m 都轉(zhuǎn)化為 delta 的形式,這樣就不存在基坐標(biāo)的表示形式,有利于我們建模(具有平移不變性)。

3. 推論

另一個(gè)有用的推論,對(duì)于 p_2=p_1+k,有:

圖片

可以看到絕對(duì)位置編碼是可以分解的,系數(shù)和 k 有關(guān)。但這個(gè)分解的結(jié)構(gòu)性質(zhì)告訴我們?nèi)绻枰馔苿t需要兩個(gè)域內(nèi)的特征表示。

三、相對(duì)位置編碼

1. 靜態(tài)位置編碼

ALiBi 的做法是不添加 position embedding,然后添加一個(gè)靜態(tài)的不學(xué)習(xí)的 bias。

圖片

具體而言:

圖片

其中 n 為 attention 頭個(gè)數(shù):

圖片

效果也挺好。

2. 旋轉(zhuǎn)位置編碼

(1)小背景

什么是旋轉(zhuǎn)矩陣,將二維的點(diǎn)逆時(shí)針繞原點(diǎn)旋轉(zhuǎn) θ 的表示。

圖片

目標(biāo),每個(gè)詞都在單位圓上的 unique 位置,每個(gè)詞(或者任意間隔的詞)的距離顯然一致(在 L2 空間上)。

圖片

(2)推理

在二維空間,內(nèi)積空間退化為點(diǎn)積形式(其中?x,y?=x^T My 且 M=I),我們首先讓這個(gè)部分表示為相對(duì)位置編碼:

圖片

因?yàn)槲覀冊(cè)诙S空間,則可以用復(fù)數(shù)推理,復(fù)數(shù)的內(nèi)積有:

圖片

假設(shè)存在復(fù)數(shù)等于該式子,利用歐拉公式有:

圖片

假設(shè)初始輻角為 ?_0=0,幅值為 1,一些特解:

圖片

遞推公式:

圖片

這里多少角度其實(shí)無(wú)所謂,因此有解:

圖片

高維偶數(shù)空間的表示(注意這里只表達(dá)了在每個(gè)子空間上 ?_0=0,幅值為 1 的形式)。

圖片

為什么這是對(duì)的,因?yàn)閮?nèi)積是線性的。

(3)遠(yuǎn)程衰減

當(dāng)距離趨于無(wú)窮時(shí),有:

圖片

如果使用三角位置編碼的方式,即:

圖片

因此內(nèi)積可以被寫作:

圖片

最后一步假設(shè)位置編碼向量長(zhǎng)度趨于無(wú)窮。

這個(gè)編碼確實(shí)有衰減趨勢(shì)。

圖片

但不代表就這一種合理的衰減形式,只要單調(diào)遞減且大于 0 基本都沒(méi)有太大的問(wèn)題。

(4)矩陣形式

于是對(duì)于任意的 qkv 而言,有這樣一般的嵌入(這里只寫了 q 向量,其他向量也是如此):

圖片

二維嵌入:

圖片

RoPE 中,將 hidden states 的每?jī)删S看做一個(gè)二維坐標(biāo)系,位置編碼從“加”的方式變?yōu)閷?duì) hidden states 做“旋轉(zhuǎn)”的方式參與計(jì)算,這也符合上述內(nèi)容。

圖片

不同的“二維坐標(biāo)系”(一般為頭大小 128/2=64 個(gè))有不同的旋轉(zhuǎn)單位角,因此表達(dá)了不同頻率的信息。每個(gè)子空間的旋轉(zhuǎn)角為:

圖片

在 llama 中設(shè)置:

圖片

這個(gè)矩陣為什么保證了相對(duì)位置,因?yàn)椋?/span>

圖片

其中旋轉(zhuǎn)矩陣的轉(zhuǎn)置就是往相反的方向旋轉(zhuǎn),于是該式子自然成立,保證了相對(duì)位置的一致性。

因?yàn)樵摼仃囀窍∈璧?,因此有?/span>

圖片

注意?是逐位乘法,也可以寫成點(diǎn)積的形式,效果一樣。

(5)N 進(jìn)制編碼

比如要編碼更長(zhǎng)的數(shù)字,在不損失數(shù)字精度的方案的情況下,有圖示的幾種解法:

圖片

這個(gè)例子中的數(shù)字在 RoPE 中就是旋轉(zhuǎn)角度。

  • 前兩者可以比較穩(wěn)妥的解決該問(wèn)題
  • 第一種雖然 .5 不在訓(xùn)練數(shù)據(jù)中,但三位數(shù)字的序關(guān)系是保持的
  • 加大 base 雖然可能在某個(gè) token 上出現(xiàn)大于等于 10 的數(shù)字,但三位數(shù)字序關(guān)系依舊是存在的
  • 縮小 base (看上去是反其道而行,我明明希望能在有限 context 的窗口表示,但我用了更多的窗口)實(shí)際上是希望模型能夠更好的泛化低位的部分,但表示的 token 數(shù)量變長(zhǎng)了導(dǎo)致長(zhǎng)序列理解能力會(huì)有問(wèn)題(畢竟更長(zhǎng)了,而且他也沒(méi)有學(xué)習(xí)更長(zhǎng)范圍,也就是超過(guò)三位數(shù)字的序關(guān)系),這個(gè)效果不是太好。還有一種解釋就是更高的頻率模型其實(shí)也沒(méi)有泛化(因?yàn)閮H僅是把基頻變高了而已,落入到了未泛化區(qū)間)

四、外推能力

1. 外推動(dòng)機(jī)

外推:讓語(yǔ)言模型能夠以一定的性能理解并生成超過(guò)其預(yù)訓(xùn)練窗口長(zhǎng)度的文本。

為什么需要外推?

  • 在應(yīng)用中,有時(shí)會(huì)要求語(yǔ)言模型閱讀或生成長(zhǎng)度數(shù)萬(wàn)甚至數(shù)十萬(wàn)的文本,這超過(guò)了一般模型訓(xùn)練窗口的數(shù)倍至數(shù)十倍;
  • 目前典型的語(yǔ)言模型預(yù)訓(xùn)練窗口長(zhǎng)度為 2k~8k,更大的窗口會(huì)提高訓(xùn)練算力需求,降低訓(xùn)練效率。

補(bǔ)充一下知識(shí):

這個(gè)是 LM 的對(duì)數(shù)似然:logP(x)=∑_(i=1)^n?log P(x_i |x_1,x_2,…,x_(i-1) )。

這個(gè)是 perplexity,可以看到兩者是一致的:最小化 perplexity 等于最大化 LM 的對(duì)數(shù)似然:"Perplexity" (x)=exp(-1/n ∑_(i=1)^n?log P(x_i |x_1,x_2,…,x_(i-1) ))。

為什么當(dāng)前的 RoPE based LLM 難以“無(wú)痛”外推?

  • 理論上,得益于“旋轉(zhuǎn)”操作周期性的本質(zhì),RoPE 的方案可以建模任意長(zhǎng)度的序列;
  • 但實(shí)際上,在推理時(shí),模型對(duì)訓(xùn)練階段沒(méi)有“見過(guò)”的長(zhǎng)度序列的建模效果顯著地變差,具體表現(xiàn)為 perplexity 快速上升到完全不可用。

圖片

我們發(fā)現(xiàn)高頻分量是充分學(xué)習(xí)的,因此可以外推,而低頻分量不行。

圖片

2. 實(shí)現(xiàn)外推的方式

目前常見的有這幾種形式:

圖片

(1)限制注意力流派

既然直接外推時(shí)對(duì)遠(yuǎn)程信息建模會(huì)出現(xiàn) OOD 問(wèn)題,那最直接的方式是在“少看”甚至“不看”遠(yuǎn)程信息的情況下建模長(zhǎng)序列(只要我的建模序列的一個(gè) layer 上的感受野大小和訓(xùn)練時(shí)保持一致即可)。

比如 SWA(在 Mistral 的報(bào)告中有)。

圖片

或者 Alibi 的將遠(yuǎn)處的 token 壓低概率,使得其不出現(xiàn)在感受野中。

(2)調(diào)整旋轉(zhuǎn)速度流派

既然對(duì)長(zhǎng)距離的信息建模崩壞是因?yàn)椤靶D(zhuǎn)”了“沒(méi)見過(guò)”的角度,那么就讓推理時(shí)的各token 間的相對(duì)旋轉(zhuǎn)角度的區(qū)間映射回訓(xùn)練過(guò)的“熟悉”區(qū)間上去!

那么如何回到原來(lái)的訓(xùn)練分布上?

圖片

旋轉(zhuǎn)角度=相對(duì)距離*單位角

①位置內(nèi)插

第一種就是很樸素的位置內(nèi)插(Extending Context Window of Large Language Models via Positional Interpolation),這樣修改了相對(duì)距離。

圖片

也就是將原始訓(xùn)練長(zhǎng)度 L 外推到 L^' 上,即加上一個(gè)線性變換:

圖片

然而,位置內(nèi)插并不算長(zhǎng)度外推方案,至少不是免訓(xùn)練的長(zhǎng)度外推方案,因?yàn)槲恢脙?nèi)插之后同樣會(huì)有 PPL 爆炸的問(wèn)題。原因也不難理解,盡管位置內(nèi)插避免了遠(yuǎn)處的位置越界問(wèn)題,但這同時(shí)壓縮了鄰近 Token 的距離,嚴(yán)重?cái)_亂了模型的局部分辨率,而眾所周知語(yǔ)言模型本身就是一個(gè)非常依賴于局部關(guān)系的任務(wù),所以擾亂了局部自然就沒(méi)法預(yù)測(cè)準(zhǔn)了。

不過(guò),這也并非說(shuō)位置內(nèi)插就沒(méi)有價(jià)值了。我們知道,需要長(zhǎng)度外推的讀者,無(wú)外乎是兩種情況:一種是沒(méi)有資源去做長(zhǎng)文本微調(diào),希望能夠從短文本模型直接得到一個(gè)可用的長(zhǎng)文本模型,這種需求對(duì)長(zhǎng)度外推的效果要求會(huì)比較高,位置內(nèi)插就不適合他們了;另一種是有資源去做長(zhǎng)文本微調(diào),研究長(zhǎng)度外推純粹是為了得到一個(gè)更好的初始化模型,這種情況對(duì)模型修改帶來(lái)的初始損失容忍度比較高,只要能夠通過(guò)微調(diào)快速?gòu)浹a(bǔ)回?fù)p失掉的效果即可,位置內(nèi)插正好是屬于此類方法。Meta 的論文顯示,經(jīng)過(guò) PI 之后,僅需 1000 步左右的長(zhǎng)文本訓(xùn)練,就可以得到一個(gè)行之有效的長(zhǎng)文本模型,這比不做任何修改直接微調(diào)的訓(xùn)練效率高出很多。

這種方案的一種修改則是 NTK-by-parts:

圖片

基于這個(gè)規(guī)則(高頻的不插值,低頻的插值,中間的線性過(guò)渡)對(duì)于長(zhǎng)度為d 的第 i 維,比率為:

圖片

給出 ramp function:

圖片

對(duì)于 llama 而言,這里的超參數(shù)為:

圖片

縮放形式為:

圖片

其實(shí)就是位置內(nèi)插的加權(quán)平均,超過(guò) β 就不插值,低于 α 就純插值。

②NTK(減小單位角)

第二種基于 YaRN: Efficient Context Window Extension of LargeLanguage Models 的 NTK-aware 方式。

圖片

就是縮小每個(gè)字空間的單位角(這是一種非線性變換)。

圖片

其中 α 為縮放系數(shù),這實(shí)際上有以下的好處,首先:不是將 RoPE 的每個(gè)維度平均縮放一個(gè)因子,而是通過(guò)減少對(duì)高頻區(qū)域的縮放和增加對(duì)低頻區(qū)域的縮放(即高頻不縮放,低頻才縮放),從而將插值壓力分散到多個(gè)維度,尤其是較低的維度。我們可以計(jì)算一下調(diào)節(jié)的比率。

圖片

當(dāng) i→1 時(shí),比率趨近于 1;

當(dāng) i→d/2 時(shí),比率趨近于 1/α。

③增大單位角

第三種是反而是在預(yù)訓(xùn)練的過(guò)程調(diào)小 base,讓模型充分感知 at least 一個(gè)周期的頻譜,這樣是否在推理的階段不需要做任何操作呢?

實(shí)際上不行,不行是因?yàn)樾Ч睢?/span>

3. 外推能力評(píng)測(cè)

大海撈針測(cè)試是大語(yǔ)言模型信息檢索能力的重要參考。通過(guò)在長(zhǎng)文本中隨機(jī)插入關(guān)鍵信息,形成大型語(yǔ)言模型(LLM)的Prompt。該測(cè)試旨在檢測(cè)大型模型是否能從長(zhǎng)文本中提取出這些關(guān)鍵信息,從而評(píng)估模型處理長(zhǎng)文本信息提取的能力,這可以反映LLM對(duì)長(zhǎng)文本的理解基礎(chǔ)能力。

圖片

在給定文本塊中插入一段信息之后檢索該 needle。

圖片

4. 長(zhǎng)文本信息依賴

圖片

我們發(fā)現(xiàn)如果把 base 變小,即使模型已經(jīng)充分感知到了 rotation(因?yàn)樵?context 長(zhǎng)度上已經(jīng)轉(zhuǎn)過(guò)了至少一圈)但效果很差。我們?cè)谇懊嬉呀?jīng)了解到了相對(duì)位置編碼(這里特指旋轉(zhuǎn)位置編碼)是有遠(yuǎn)程衰減性質(zhì)的。

圖片

如果 base 變大的話遠(yuǎn)距離的 token 壓制變小,因此長(zhǎng)文本的 attention 會(huì)比 base 小的要大一點(diǎn),因此小 base 損失了很大一部分 attention 的能力。這也能從上面的實(shí)驗(yàn)中看出。這里我們可以更具體地表達(dá)這部分內(nèi)容。定義:

圖片

其中前半部分為相似 token 間注意力的期望,后半部分是隨機(jī) token 間注意力的期望,假設(shè) qk 是 i.i.d. 的,且各自的均值和方差為 μ,σ,且 k^*=q+?,則有:

圖片

圖片

五、問(wèn)答環(huán)節(jié)

Q1:位置編碼(旋轉(zhuǎn)位置編碼)的物理意義與直觀解釋?

A1:?jiǎn)挝唤谴砹诵D(zhuǎn)速度。旋轉(zhuǎn)速度快的,那么建模了距離較近的信息,遠(yuǎn)的則建模較遠(yuǎn)信息。

Q2:外推的價(jià)值,是否需要建模長(zhǎng)距離(可以講前面的變成摘要)?

A2:這不矛盾。模型可以有能力閱讀所有的文本,但畢竟這是二次復(fù)雜度的(attention operation),當(dāng)然也可以對(duì)長(zhǎng)文本去做一個(gè)切片,或者說(shuō)去做一個(gè)分割,這是應(yīng)用決定的。

Q3:BERT 可以做相對(duì)位置編碼嗎?

A3:沒(méi)有不可以,但目前沒(méi)人做。

Q4:9.11<9.9可以用 PE 解決嗎?

A4:這個(gè)是 LLM 在理解和感知 token 上的問(wèn)題,和 PE 沒(méi)什么關(guān)系。

Q5:外推效果有損,衡量指標(biāo)是什么?能到原來(lái)的多少?

A5:base 調(diào)小在前面說(shuō)了雖然 ppl 還可以但效果很差,對(duì)位置感知很混沌,因?yàn)閱适Я藢?duì)長(zhǎng)距離的感知。ppl 相對(duì)穩(wěn)定,但比原來(lái)的有上移。衡量指標(biāo)指標(biāo)就是 ppl 和 needle seeking。base 變大的話對(duì)模型性能影響不大,完全可以接受。

責(zé)任編輯:姜華 來(lái)源: DataFunTalk
相關(guān)推薦

2024-08-05 14:36:17

大型語(yǔ)言模型量化

2022-06-13 10:17:26

人工智能

2023-03-13 14:41:22

機(jī)器學(xué)習(xí)算法

2024-06-04 09:25:51

2025-04-16 02:30:00

2011-08-10 16:45:55

Big Data

2023-06-03 20:51:09

2023-07-17 10:45:04

模型應(yīng)用

2023-07-04 10:28:15

模型論文

2019-07-24 05:36:32

神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型NNLM

2023-10-07 13:17:44

2024-06-19 16:11:22

2023-11-06 08:38:50

LLM語(yǔ)言模型ChatGPT

2011-11-04 14:00:27

無(wú)線近距

2017-02-06 13:31:11

調(diào)度技術(shù)集群

2009-07-28 10:57:21

光無(wú)線通信光纖通信

2023-02-22 15:06:44

AI智能

2024-01-18 09:40:00

智能模型

2022-07-26 15:45:30

AI模型

2024-04-18 10:39:57

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)