日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

進入正文之前,先考慮一下像 ChatGPT 這樣的 Transformer 語言模型(LM)的 prompt:

 

圖片

 

隨著每天產生數百萬用戶和查詢,ChatGPT 使用自注意力機制對 prompt 進行反復編碼,其時間和內存復雜度隨輸入長度呈二次方增長。緩存 prompt 的 transformer 激活可以防止部分重新計算,但隨著緩存 prompt 數量的增加,這種策略仍然會產生很大的內存和存儲成本。在大規模情況下,即使 prompt 長度稍微減少一點,也可能會帶來計算、內存和存儲空間的節省,同時還可以讓用戶將更多內容放入 LM 有限的上下文窗口中。

那么。應該如何降低 prompt 的成本呢?典型的方法是微調或蒸餾模型,使其在沒有 prompt 的情況下表現得與原始模型相似,或許還可以使用參數高效的自適應方法。然而,這種方法的一個基本缺點是每次需要為新的 prompt 重新訓練模型(下圖 1 中間所示)。

 

圖片

 

本文中,斯坦福大學的研究者提出了 gisting 模型(上圖 1 底部),它將任意 prompt 壓縮成一組更小的虛擬「Gist」 token,類似于前綴微調 。然而,前綴微調需要通過梯度下降為每個任務學習 prefix,而 Gisting 采用元學習方法,僅僅通過 prompt 預測 Gist prefix,而不需要為每個任務進行 prefix 學習。這樣可以攤銷每個任務 prefix 學習的成本,使得在沒有額外訓練的情況下泛化到未知的指令。

此外,由于「Gist」token 比完整 prompt 要短得多,因此 Gisting 允許 prompt 被壓縮、緩存和重復使用,以提高計算效率。

 

圖片

 

論文地址:https://arxiv.org/pdf/2304.08467v1.pdf

研究者提出了一種非常簡單的方法來學習指令遵循的 gist 模型:簡單地進行指令微調,在 prompt 后插入 gish token,修改后的注意力掩膜阻止 gist token 后的 token 參考 gist token 前的 token。這使得模型同時學習 prompt 壓縮和指令遵循,而無需額外的訓練成本。

在 decodr-only(LLaMA-7B)和 encoder-decoder(FLAN-T5-XXL)LM 上,gisting 可實現高達 26 倍的即時壓縮率,同時保持與原始模型相似的輸出質量。這使得推理過程中 FLOPs 減少了 40%,延遲加速了 4.2%,與傳統的 prompt 緩存方法相比,存儲成本大大降低。

Gisting

研究者首先在指令微調的背景下描述 gisting。對于指令遵循數據集

圖片

,t 表示用自然語言 prompt 編碼的任務 (例如將此翻譯成法語),x 表示任務的(可選)輸入 (例如 The cat),y 表示期望的輸出(例如 Le chat)。指令微調的目的是通過連接 t 和 x,然后讓通常預先訓練的語言模型自回歸地預測 y,從而學習分布 pLM(y | t,x)。推理時可以使用新的任務 t 和輸入 x 進行 prompt,從模型中解碼以獲得預測結果。

 

然而,連接 t 和 x 的這種模式具有缺點:基于 Transformer 的 LM 具有有限的上下文窗口,其受架構或計算能力所限。后者特別難解決,因為自注意力隨輸入長度呈二次方擴展。因此很長的 prompt,尤其那些被反復重用的 prompt,計算效率低下。有哪些選項可以用來降低 prompt 的成本呢?

一種簡單的方法是針對特定任務 t 進行 LM 微調,即給定包含僅在任務 t 下的輸入 / 輸出示例的數據集

圖片

,可以學習一個專門的

圖片

,它更快,因為不需要考慮 t。

 

更好的是,prefix/prompt 微調或 adapter 等參數高效微調方法能夠以比全面微調低得多的成本實現相同的目的。然而仍然存在問題:必須至少存儲每個任務的一部分模型權重,并且更重要的是,對于每個任務 t,必須收集相應的輸入 / 輸出對數據集 D^t 并重新訓練模型。

Gisting 是一種不同的方法,它攤銷了兩部分成本:(1)在 t 上條件化 p_LM 的推理時間成本,(2)學習每個 t 的新 p^t_LM 的訓練時間成本。其思想是在微調期間學習 t 的壓縮版本 G (t),使得從 p_G (y | G (t),x) 進行推理比從 p_LM (y|t,x) 更快。

在 LM 術語中,G (t) 將是一組「虛擬」的 Gist token,其數量比 t 中的 token 少,但仍會在 LM 中引起類似的行為。接著可以緩存并重復使用 G (t) 上的 transformer 激活(例如鍵和值矩陣)以提高計算效率。重要的是,研究者希望 G 可以泛化到未見過的任務:給定一個新任務 t,則可以預測并使用相應的 Gist 激活 G (t) 而無需進行任何額外訓練。

通過掩膜學習 Gisting

上文描述了 Gisting 的一般框架,接下來將探討一種學習此類模型的極簡單方法:使用 LM 本身用作 Gist 預測器 G。這不僅利用了 LM 中的預存在知識,而且允許通過簡單地執行標準指令微調來學習 gisting 并修改 Transformer 注意力掩膜來增強 prompt 壓縮。這意味著 Gisting 不會產生額外訓練成本,只需要基于標準指令微調即可!

具體來說,向模型詞匯表和嵌入矩陣中添加一個特殊的 gist token,類似于此類模型中常見的句子開頭 / 結尾 token。然后對于給定的(任務,輸入)元組(t,x),使用 (t, g_1, . . . , g_k, x) 中一組 k 個連續的 gist token 將 t 和 x 連接在一起,例如

圖片

。這個序列被輸入到模型中,有一個限制,即在 gist token 之后的輸入 token 不能參考之前的 prompt token(但它們可以參考 gist token)。這會強制模型將 prompt 中的信息壓縮成 gist token,因為輸入 x (輸出 y) 無法處理 prompt t。

 

下圖 2 展示了所需要的更改。對于 GPT-3 或 LLaMA 等通常采用自回歸因果注意力掩膜的 decoder-only LM,只需 mask out 圖 2a 所示的三角形左下角。對于具有雙向編碼器和自回歸解碼器的 encoder-decoder LM,則需要進行兩項修改(圖 2b 所示)。

首先,在通常沒有掩膜的編碼器中,阻止輸入 token x 參考 prompt token t。但還必須防止 prompt t 和 gist token g_i 參考輸入 token x,否則編碼器將根據輸入學習不同的 gist 表示。最后解碼器正常運行,除了在交叉注意力期間,這時需要阻止解碼器參考 prompt token t。

 

圖片

 

實驗結果

對于不同數量的 gist token, LLaMA-7B 和 FLAN-T5-XXL 的 ROUGE-L 和 ChatGPT 評估結果如下圖 3 所示。

 

圖片

 

模型通常對 gist token 的數量 k 不敏感:將 prompt 壓縮到單個 token 并不會導致顯著性能下降。事實上,在某些情況下,過多的 gist token 會損害性能 (例如 LLaMA-7B, 10 gist tokens),這可能是因為增加的容量使訓練分布過擬合。因此,研究者在下表 1 中給出了單 token 模型的具體數值,并在剩余實驗中使用單個 gist 模型。

 

圖片

 

在見過的指令上,gist 模型獲得了與其對應陽性對照模型幾乎相同的 ROUGE 和 ChatGPT 性能,在 LLaMA-7B FLANT5-XXL 上的勝率分別為 48.6% 和 50.8%。這里研究者最感興趣的是它們在未見過任務上的泛化能力,這需要通過另外兩個數據集來衡量的。

在 Alpaca+ 訓練數據集中未見過的 prompt 中,可以看到 gist 模型在未見過 prompt 上有著強大的泛化能力:與對照組相比,分別有 49.7%(LLaMA)和 46.2%(FLAN-T5)的勝率。在最具挑戰性的 OOD Human split 上,gist 模型的勝率略微下降,分別為 45.8%(LLaMA)和 42.5%(FLANT5)。

本文的目的是讓 gist 模型緊密地模仿原始模型的功能,因此有人可能會問究竟什么時候 gist 模型與對照組無差別。下圖 4 說明了這種情況發生的頻率:對于已見過任務(但是未見過的輸入),gist 模型幾乎有一半的時間與對照組不相上下。對于未見過的任務,這一數字下降到了 20-25%。對于 OOD Human 任務,這一數字又下降到 10%。無論如何,gist 模型輸出的質量是很高的。

 

圖片

 

總的來說,這些結果表明,gist 模型可以可靠地壓縮 prompt,甚至在訓練分布之外的某些 prompt 上也可以做到這一點,特別是像 LLaMA 這樣的 decoder-only 因果 LM。FLAN-T5 等 encoder-decoder 模型表現略差,一個可能的原因是 gist 掩膜抑制了編碼器中的雙向注意力流,這比僅 mask 自回歸解碼器的一部分 history 更具挑戰性。未來需要進一步的工作來研究這個假設。

計算、內存和存儲效率

最后,回到這項工作的核心動機之一:gisting 可以帶來什么樣的效率提升?

下表 2 展示了使用 PyTorch 2.0 分析器對模型進行單次前向傳遞的結果(即使用單個輸入 token 的自回歸解碼的一步),并對 Human eval split 中的 252 個指令取平均值。與未經優化的模型相比,gist 緩存顯著提高了效率。兩種模型的 FLOPs 節約率達到了 40%,時鐘時間降低了 4-7%。

 

圖片

 

然而更重要的是,與指令緩存相比,gist 緩存有著除延遲之外的關鍵優勢:將 26 個 token 壓縮為 1 個可以在輸入上下文窗口中騰出更多空間,這受到絕對位置嵌入或者 GPU VRAM 的限制。特別是對于 LLaMA-7B,KV 緩存中的每個 token 需要 1.05MB 的存儲空間。盡管在測試的 prompt 長度下,KV 緩存相對于 LLaMA-7B 推斷所需的內存總貢獻微不足道,但一個越來越常見的場景是開發人員在大量用戶之間緩存許多 prompt,存儲成本很快就會增加。在存儲空間相同的情況下,gist 緩存能比完整指令緩存多 26 倍的 prompt。

分享到:
標簽:ChatGPT
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定