ChatGPT從入門到深入(持續(xù)更新中)
循環(huán)記憶輸入
Recurrent Memory Transformer (RMT)

總體思想:將長(zhǎng)文本分段之后得到嵌入向量與記憶向量拼接,得到新的記憶向量之后與下一段再循環(huán)輸入transformer。
注意:此論文實(shí)驗(yàn)結(jié)果在bert-base-cased(encoder-only上進(jìn)行實(shí)驗(yàn))

CoLT5達(dá)到64K,GPT-4達(dá)到32K長(zhǎng)度,而RMT在實(shí)驗(yàn)結(jié)果中長(zhǎng)度加到4096個(gè)分段2048000詞匯,效果依然強(qiáng)勁。
用提示詞
Self-Controlled Memory (SCM)

如上圖所示,此方法號(hào)稱可以將輸入延申至無限長(zhǎng),具體流程為:
-
用戶輸入
-
判斷是否需要從歷史會(huì)話中獲得記憶,提示詞如下:
給定一個(gè)用戶指令,判斷執(zhí)行該指令是否需要?dú)v史信 息或者上文的信息,或者需要回憶對(duì)話內(nèi)容,只需要 回答是(A)或者否(B),不需要解釋信息: 指令:[用戶輸入] -
如果需要獲取記憶,通過相關(guān)性(余弦相似度)、近期性分?jǐn)?shù)相加對(duì)歷史記憶進(jìn)行排序
-
將記憶摘要
以下是用戶和人工智能助手的一段對(duì)話,請(qǐng)分 別用一句話寫出用戶摘要、助手摘要,分段列 出,要求盡可能保留用戶問題和助手回答的關(guān) 鍵信息。 對(duì)話內(nèi)容: 用戶:[用戶輸入] 助手:[系統(tǒng)回復(fù)] 摘要: -
將記憶和輸入拼接輸入模型
以下是用戶和人工智能助手的對(duì)話,請(qǐng)根據(jù)歷史 對(duì)話內(nèi)容,回答用戶當(dāng)前問題: 相關(guān)歷史對(duì)話: [歷史輪對(duì)話內(nèi)容] 上一輪對(duì)話: [上一輪對(duì)話內(nèi)容] ### 用戶:[用戶問題] 助手: -
回復(fù)
注意:此論文中只進(jìn)行了定性分析,沒有定量實(shí)驗(yàn)。以下是效果圖:

詞匯壓縮
VIP-token centric compression (Vcc)

該方法使得模型輸入延申至128K,并在Encoder-Only、Encoder-Decoder兩種模型架構(gòu)上都進(jìn)行了實(shí)驗(yàn)。
一句話描述思想:使模型輸入長(zhǎng)度獨(dú)立于文本長(zhǎng)度。
具體一點(diǎn):
- 將當(dāng)前問句視為vip-token
- 利用當(dāng)前問句與歷史記憶的關(guān)系,壓縮歷史記憶到模型輸入長(zhǎng)度,無論歷史記憶有多長(zhǎng)
- transformer層輸出之后再進(jìn)行解壓縮
Encoder-Only架構(gòu)表現(xiàn):

Encoder-Decoder表現(xiàn):

檢索+交叉注意力

此方法只試用于Encoder-Decoder架構(gòu),其也稱可以將輸入長(zhǎng)度延申至無限長(zhǎng)。
思路如下:
- 將長(zhǎng)文本分成多個(gè)部分,將每一段進(jìn)行編碼
- 利用query KNN檢索長(zhǎng)文本topN
- 解碼器對(duì)相關(guān)段落編碼后的隱藏狀態(tài)進(jìn)行交叉注意力
- 得到輸出
可以看到此方法在長(zhǎng)文本摘要任務(wù)上都取得了優(yōu)異的結(jié)果

累加

簡(jiǎn)單介紹一下ALiBi:
- 不再輸入層保留位置向量
- 而在每層注入線性的偏移量,注意力分?jǐn)?shù)從:
變成了:
可以看到ALiBi比Sinusoidal、Rotary、T5 Bias在長(zhǎng)距離輸入上效果都要好得多。

mosaicml/mpt-7b模型利用ALiBi將輸入長(zhǎng)度擴(kuò)展至了84k,核心的思想為一下幾行代碼:
all_hidden_states=()ifoutput_hidden_stateselseNone
for(b_idx,block)inenumerate(self.blocks):
ifoutput_hidden_states:
assertall_hidden_statesisnotNone
all_hidden_states=all_hidden_states+(x,)
past_key_value=past_key_values[b_idx]ifpast_key_valuesisnotNoneelseNone
(x,past_key_value)=block(x,past_key_value=past_key_value,attn_bias=attn_bias,attention_mask=attention_mask,is_causal=self.is_causal)
ifpast_key_valuesisnotNone:
past_key_values[b_idx]=past_key_value
即MPT會(huì)對(duì)上次得到隱藏狀態(tài)與本次的輸入進(jìn)行相加。
審核編輯 :李倩
-
人工智能
+關(guān)注
關(guān)注
1819文章
50171瀏覽量
266082 -
ChatGPT
+關(guān)注
關(guān)注
31文章
1598瀏覽量
10342
原文標(biāo)題:引用
文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
科技大廠競(jìng)逐AIGC,中國(guó)的ChatGPT在哪?
Ubuntu從入門到精通
《HTML 5 從入門到精通》-中文學(xué)習(xí)教程
電工基礎(chǔ)入門知識(shí)大全從入門到精通
ChatGPT從入門到深入
評(píng)論