本文由加州大學伯克利分校統計系和谷歌 DeepMind 的團隊聯合發表,研究了預訓練后的 Transformer 的基于上下文學習 (In-Context Learning) 的能力。他們用簡潔的數學理論證明了:Transformer 可以基于上下文學習到一種類似最小二乘的算法,這種學到的算法在新的數據集上能學到正確的線性模型。

論文地址:https:///pdf/2306.09927.pdf 基于上下文學習 (ICL,In-Context Learning) 是大語言模型的特殊能力。它通常指的是:一個經過預訓練的語言模型,當你輸入一些具體的任務指示和少數幾個范例 (demonstration) 之后,再輸入一個新問題 (query input),該模型可以依據提供的范例給出正確的解答或者標注 (label)。注意,在進行基于上下文的學習的時候,原先經過預訓練的模型是不需要經過任何微調 (fine-tuning) 的。也就是說,原模型的參數完全不會變化。這大大節省了微調所需要的數據。舉個例子,假設你需要 GPT 做翻譯任務,你提供了一些范例:狗 ——dog;貓 ——cat。然后你想知道「人」怎么翻譯。這個時候你不需要對模型進行任何微調(盡管訓練的時候并沒有使用翻譯的數據集),你只需要輸入:請將中文翻譯成英文。例如:狗 ——dog;貓 ——cat;人 ——? GPT 可以給出你正確的回答(不信你可以自己試試)。在 GPT3 及此后的許多大模型中,人們都觀察到了 ICL 的現象 [1]。如何理解這種現象,目前學術界并沒有給出統一的答案。一種觀點認為,GPT 可以從提供的范例中學到某些算法,然后再將這些算法用到新的問題中。例如,從「狗 ——dog;貓 ——cat」中,GPT 也許學到了一種「可以用于文本翻譯」的算法,然后在將這種算法用在新的問題「人 ——?」中。至于學到了什么算法,不同機構通過實驗得出了一些結論 [2,3,4]。下表中,我們使用約等號,表示并沒有嚴格的理論說明 GPT(或者類似結構)嚴格學到了這個算法,但是它和該算法在任務上的表現幾乎一致。 本文首次從理論上證明,經過預訓練的 Transformer 在線性回歸模型上學到了與最小二乘十分類似的算法,它們都能基于上下文學到正確的線性模型。本文考慮的是一個簡化的線性 Transformer 模型,所有的數據來源于無噪音的線性模型。我們考慮這樣一個序列到序列 (sequence-to-sequence) 的函數:我們用一系列的數據和標簽 (x_i,y_i), i=1,2,...,N, 來模擬一個任務中的范例。想象所有的 x_i 就是中文詞語,對應的 y_i 是對應的英文翻譯。我們還有一個需要給出預測的輸入 x_query(想象我們有一個中文單詞需要翻譯),對這個輸入,它對應的輸出是 y_query,我們希望模型準確的預測它。 這里我們沒有將 y_query 放進去,是因為這個矩陣會被輸入給 Transformer,而我們希望得到的預測是 y_query。我們將這個數據編碼矩陣 (embedding matrix) 輸入到如下的單層線性 Transformer 中: 是的你沒有看錯,這就是一個(一層的、線性的)Transformer。這里的輸入和輸出是同樣大小的矩陣,第一個加數 E 表示經典的殘差連接,后面的 W_1 表示 value 矩陣,而 W_2 則是把 key 和 query 矩陣的乘積直接當成了一個矩陣。之所以稱其為「線性的」Transformer,是因為我們去掉了經典 Transformer 中的歸一化(除以某個系數后加上 softmax)和非線性激活函數,將其替代為直接除以 token 矩陣 E 的大小(乘以 1/N)。我們將輸出矩陣的右下角元素記為?_query,它是模型對 y_query 的預測。我們假設所有的數據來自于一個隨機的線性模型,即對于 i=1,2,...,N,有 y_i = w?x_i 以及 y_query = w?x_query。我們假設 w 服從標準高斯分布,而 x_i 獨立同分布地服從一個均值為 0,方差為 ?? 的高斯分布。在訓練的過程中,我們最小化如下的目標函數: 本文從理論上證明了,當我們用 gradient flow(也就是 gradient descent 加上無限小的步長)對上述的目標函數進行優化的時候,參數矩陣 $W_1$ 和 $W_2$ 都能收斂到某個特殊的全局最優解。 更重要的是,假設我們模型中的參數已經收斂到這個全局最優解,而此時我們有一個新的任務(新的 weight 向量 w)和一系列針對這個任務的范例(新的 x_i , y_i 和 x_query),當我們把這些數據堆成一個同樣格式的 embedding 矩陣 E 然后輸入給訓練好的模型時,這個模型會給出什么樣的預測呢?通過簡單的計算(真的很簡單)可以得到,模型的預測是 為什么會有這個約等號呢?是因為假設我們的范例足夠多(N 足夠大),大數定律告訴我們中間括號里的 empirical covariance matrix 會幾乎處處收斂到真正的 population covariance matrix,而我們如果進一步忽略前一個括號中的 o (1) 小量,就可以將 ?? 和它的逆抵消。從而,模型的預測近似地等于 w?x_query 也就是真實的,我們所希望預測到的數據標簽 y_query。也就是說,當提供的范例足夠多的時候,經過預訓練的一層 Transformer 可以從范例中學到正確的線性模型對應的參數,并將這個參數應用到新的輸入中,得到正確的標簽預測。本文還研究了更多關于 Transformer 的 ICL 能力的有趣現象。點擊「閱讀全文」獲取原文信息。- 非線性任務?—— 當我們提供的范例來自一個非線性任務時,經過預訓練的 Transformer 學到了對應的最佳線性預測。這個結論可以被泛化到更一般的聯合分布的情況。
- 分布轉移 (distribution shift)?—— 前人的實驗中觀察到,當測試時的任務分布或者數據分布不同于訓練時的分布時,Transformer 能夠承受一些種類的分布轉移,但在另一些分布轉移中會表現的很差。本文從理論上研究了 Transformer 面對分布轉移時的行為,并成功解釋了來自斯坦福的論文 [2] 中關于分布轉移的大部分實驗現象。
- 收斂速率?—— 本文將基于上下文學習的能力解釋為一種學習新算法(新函數)的能力,并給出了對于訓練范例的數量和測試范例的數量二者的收斂速率。值得注意的是,線性 Transformer 對于二者的收斂速率是不同的。
- 隨機協方差矩陣?—— 本文還證明,如果數據來源的協方差矩陣是隨機的,一層的線性 Transformer 無法從上下文中學到正確的線性模型。我們的實驗結果表明,更復雜的模型(諸如 GPT2)依然不能完全解決隨機協方差矩陣的問題。
- 基于上下文學習的理論框架?—— 本文建立了嚴格的基于上下文學習的理論框架,區分了基于上下文的訓練 (In-Context Training) 和基于上下文的學習能力 (In-Context Learnability) 這兩個概念。
[1] Tom Brown et al. “Language models are few-shot learners”. In: Advances in neural information processing systems 33 (2020), pp. 1877–1901. https:///abs/2005.14165. [2] Shivam Garg et al. “What can transformers learn in-context? a case study of simple function classes”. In: Advances in Neural Information Processing Systems 35 (2022), pp. 30583–30598. https:///abs/2208.01066 [3] Ekin Akyürek et al. “What learning algorithm is in-context learning? investigations with linear models”. In:arXiv preprint arXiv:2211.15661 (2022). https:///abs/2211.15661 [4] Kabir Ahuja, Madhur Panwar, and Navin Goyal. “In-Context Learning through the Bayesian Prism”. In: arXiv preprint arXiv:2306.04891 (2023). https:///abs/2306.04891
|