五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網 會員登陸 & 注冊

語境學習、上下文學習In-Context Learning底層機制等原理詳解

2023-07-19 12:22 作者:汀丶人工智能  | 我要投稿

大語言模型的預訓練[5]:語境學習、上下文學習In-Context Learning:精調LLM、Prompt設計和打分函數(Scoring Function)設計以及ICL底層機制等原理詳解

1.In-Context Learning背景與定義

  • 背景

大規(guī)模預訓練語言模型(LLM)如 GPT-3 是在大規(guī)模的互聯(lián)網文本數據上訓練,以給定的前綴來預測生成下一個 token(Next token prediction)。通過預測詞的訓練目標、大規(guī)模數據集以及超高參數量的模型相結合,產生了性能極強的 LLM,它可以 “理解” 任何文本輸入,并在其基礎上進行“寫作”,除此以外,GPT-3 的論文發(fā)現(xiàn),大規(guī)模的訓練數據會產生一種有趣的新興行為,稱為 In-Context Learning(又稱上下文學習,語境學習, ICL),他并不需要調整模型參數,僅用幾條下游任務的示例就可以取得極佳的結果。

  • 定義

In-Context Learning 最初是在原始 GPT-3 論文中作為一種大語言模型學習任務的方式而被推廣的,能夠直接讓語言模型根據給定的幾個實例理解任務,并給出問題答案;本質上,它相當于使用訓練完好的語言模型估計給定示例條件下的條件概率分布模型。在 In-Context Learning 里,給語言模型一個 “提示(prompt)”,該提示是一個由輸入輸出對組成的列表,這些輸入輸出對用來描述一個任務。在提示的末尾,有一個測試輸入,并讓語言模型僅通過以提示為條件來預測下一個標記。為了正確回答以下兩個提示,模型需要理解 In-Context Learning 的演示示例,以確定輸入分布(財經或一般新聞)、輸出分布(積極 / 消極或主題)、輸入 - 輸出映射(情感或主題分類)以及格式。

和其他概念的區(qū)別

  • 提示學習:通過設計離散模板或者連續(xù)型參數,學習合適的 prompt 引導模型輸出期望的結果,而 prompt 既可以是離散型,也可以是連續(xù)型。嚴格來講,如果將 in-context learning 中的若干示例的演示視作精選的 prompt 的話,可以視為提示學習中的一小部分。

  • 小樣本學習:小樣本學習為了學習到最佳模型參數,仍然需要使用少量的監(jiān)督樣本做微調,而 ICL 則不對模型做任何的微調,直接將下游任務的輸入輸出拼接起來作為一個 prompt,引導模型根據輸入的測試集樣本 demo,給出任務的預測結果。

    • In-context learning 允許用戶為新用例快速構建模型,而無需為每個任務微調和存儲新參數。它通常只需要很少的訓練示例就可以使模型正常工作,而且即使對于非專家來說,也可以通過直觀的自然語言來進行交互。改變了之前需要把大模型用到下游任務的范式。對于一些 LLM 沒有見過的新任務,只需要設計一些任務的語言描述,并給出幾個任務實例,作為模型的輸入,即可讓模型從給定的情景中學習新任務并給出滿意的回答結果。這種訓練方式能夠有效提升模型小樣本學習的能力。

    • ICL 的關鍵思想是從任務相關的類比樣本中學習。下圖給出了一個描述語言模型如何使用 ICL 進行決策的例子。

      • 首先,ICL 需要一些示例來形成一個演示上下文。這些示例通常是用自然語言模板編寫的。

      • 然后 ICL 將查詢的問題(即你需要預測標簽的輸入)和一個上下文演示(一些相關的示例)連接在一起,形成帶有提示的輸入,與監(jiān)督學習需要使用反向梯度更新模型參數的訓練階段不同,ICL 不進行參數更新,而是直接在預訓練的語言模型上進行預測。模型預計將從演示中學習到的模式進行正確的預測。

      • 本質上,它利用訓練有素的語言模型根據演示的示例來估計候選答案的可能性。簡單理解,就是通過若干個完整的示例,讓語言模型更好地理解當前的任務,從而做出更加準確的預測。

值得注意的是,與需要使用反向梯度更新模型參數的訓練階段的監(jiān)督學習不同,ICL 不需要參數更新,并直接對預先訓練好的語言模型進行預測(這是與 prompt,傳統(tǒng) demonstration learning 不同的地方,ICL 不需要在下游 P-tuning 或 Fine-tuning)。該模型學習隱藏在演示中的模式,并據此做出正確的預測。使用下游任務的的演示信息學習并推理,通常是 “實例 - 標簽” 形式(Fine tuning 與 Prompt Learning 仍需在大量訓練數據中的學習類別表示等)。

  1. Zero-shot learning,不允許輸入任何示例,只允許輸入一則任務說明。

  1. One-shot learning,只允許輸入一條示例和一則任務說明。

  1. Few-shot learning,區(qū)別于小樣本學習概念,無需更新參數,允許輸入數條示例和一則任務說明。

2.ICL 兩個階段的優(yōu)化方法

ICL 分精調和推斷兩個優(yōu)化方法階段:

  • 其中精調階段,目前優(yōu)化的方法基本都是基于 pretrained LLM,然后選擇性的預熱模型來增強和泛化 ICL 的能力;

  • 推理階段優(yōu)化方法主要分為 Prompt 設計和打分函數(Scoring Function)設計兩種。 精調和推理階段是 ICL 的兩個主要階段。在精調階段,現(xiàn)有的 ICL 研究主要以預訓練的 LLM 為主,并可選地預熱模型以增強和泛化 ICL 能力。在推理階段,演示設計和評分函數的選擇對于最終性能至關重要。

2.1. 通過精調優(yōu)化 ICL 效果

在推理前,通過持續(xù)學習讓語言模型的 ICL 能力得到進一步提升,這個過程稱之為 warmup,warmup 會優(yōu)化語言模型對應參數或者新增參數,區(qū)別于傳統(tǒng)的 finetune,finetune 旨在提升 LLM 在特定任務上的表現(xiàn),而 warmup 則是提升模型整理的 ICL 性能。

雖然預訓練后的語言模型已經初步具備 ICL 能力,但預訓練的 MLM 目標和下游 ICL 目標還是存在差距的,怎樣精調才能把模型預熱(warmup)、提升 ICL 效果是一個重要的研究方向。注:這里的「精調」、「預熱」不是為了讓模型適配某個下游任務,而是讓模型具備更好的通用 ICL 能力

  • 有監(jiān)督 ICL 訓練

    • 第一類方法非常直覺,既然要消除差距,可以直接在有監(jiān)督的 ICL 數據上訓練,通過構建對應的 in-context 的監(jiān)督數據跟多任務訓練,進行對應的 in-context finetune,從而縮小預訓練跟下游 ICL 的差距。MetaICL 就直接把很多任務整合成了 ICL 的形式精調模型,在 52 個數據集上取得了比肩直接精調的效果。

    • 另外還有部分研究專注于 Instruction tuning,構建更好的任務描述讓模型去理解,而不是只給幾個例子(demonstration),比如 LaMDA-PT、FLAN。

  • 自監(jiān)督 ICL 訓練

    • 有監(jiān)督的數據畢竟是有限的,于是開始有研究者思考能不能借鑒預訓練的方式,自監(jiān)督地進行 ICL 訓練。根據 ICL 的格式將原始數據轉換成 input-output 的 pair 對數據后利用四個自監(jiān)督目標進行訓練,包括掩碼語言,分類任務等。

  • 有監(jiān)督 ICL 訓練和自監(jiān)督 ICL 訓練旨在通過引入更加接近于 in-context learning 的訓練目標從而縮小預訓練跟 ICL 之間的差距。比起需要示例的 in-context fine tuning,只涉及任務描述的 instruct finetuning 更加簡單且受歡迎。另外,在 warmup 這個階段,語言模型只需要從少量數據訓練就能明顯提升 ICL 能力,不斷增加相關數據并不能帶來 ICL 能力的持續(xù)提升。從某種角度上看,這些方法通過更加模型參數可以提升 ICL 能力也表明了原始的 LLM 具備這種潛力。雖然 ICL 不要求 warmup,但是一般推薦在推理前增加一個 warm up 過程。

2.2 在推理階段優(yōu)化 ICL 效果

推理階段的優(yōu)化方法分為 Prompt 設計和打分函數(Scoring Function)設計兩種

  • Prompt 設計

  • 作為激發(fā)大模型能力的輸入,Prompt 對 ICL 的效果影響很大??梢詮慕M織方式和格式來進行 Prompt 的設計。組織方式是指如何選擇數據樣本并排序,格式是指怎么去寫 Prompt。

  • 對于數據樣本的選取,可以有以下方法:

    • 無監(jiān)督:首先就是根據句向量距離或者互信息等方式選擇跟當前輸入 x 最相似的樣本作為演示例,另外還有利用自使用方法去選擇最佳的示例排列,有的方法還會考慮到演示示例的泛化能力,盡可能去提高示例的多樣性。除了上述這些從人工撰寫的樣本中選擇示例的方式外,還可以利用語言模型自身去生成合適的演示示例。

    • 有監(jiān)督:第一種是先利用無監(jiān)督檢索器召回若干相似的樣本,再通過監(jiān)督學習訓練的 Efficient Prompt Retriever 進行打分,從而篩選出最合適的樣本。此外還有把樣本選擇建模成序列決策任務,把最終效果當作 reward,用強化學習的方式去選擇樣本。

  • 對于數據樣本的排序,目前的研究并不多,有兩個思路:

    • 基于一些距離度量,把跟輸入相近的排在后面(靠近輸入)。

    • 在 Lu 等人的研究中,他們找到了信息熵和 ICL 效果的聯(lián)系,因此根據熵來決定最佳排序。

  • 對于 Prompt 的格式,常見有兩種:指令(Instruction)和推理步驟(Reasoning Steps)說明。

    • Instruction:任務的指令描述非常依賴人工,不過也可以嘗試讓語言模型自動生成描述并選擇。

    • Reasoning Steps:對于更復雜的任務,可以人工顯示地把推理步驟寫出來,比如 Chain-of-thought(CoT),來啟發(fā)模型的推理能力。除了純人工撰寫外,還有以下方法:

      • 讓模型自己生成推理步驟

      • Multi-stage ICL:分多個步驟來完成任務,每一步都設計不同的子問題,讓模型一步步解答。比如 Self-Ask 這篇工作甚至讓模型自己問自己。再比如 Least-to-Most Prompting 這篇工作先讓模型把大問題拆成多個子問題,再挨個回答。

  • 打分函數(Scoring Function)

  • 評分函數決定我們如何將語言模型的預測轉換為對特定答案可能性的估計。

    • 直接估計方法(Direct):直接取候選答案的條件概率,可以用語言模型詞匯表中的符號表示 (Brown et al., 2020)。選擇概率較高的答案作為最終答案。但是,這種方法的缺點是只能衡量固定模式的答案(答案標記應該放在輸入序列的末尾)。

    • 困惑度(Perplexity PPL):計算由演示示例 C、輸入查詢 x 和候選標簽 y 的標記組成的整個輸入序列 S = {C, s(x, y, I)} 的句子 Perplexity。由于 PPL 計算整個句子的概率,它消除了標記位置的限制,但需要額外的計算時間。再用語言模型過一遍句子,這種方法可以解決上述固定模式的問題,但計算量增加了。

    • 通道模型 (Channel):評估 P(x|y) 的條件概率(貝葉斯推理),即在給定標簽的情況下估計輸入查詢的可能性。通過這種方式,語言模型需要生成輸入中的每個令牌,這可以在不平衡的訓練數據狀態(tài)下提高性能。

3.應用

上下文學習在許多 NLP 的 benchmark 測試中,已經媲美甚至超過全資源微調的方法,例如在 LAMBADA(常識句子補全)和 TriviaQA(問答)上達到 SOTA 的。 更令人意外的是上下文學習使人們能夠在短短幾個小時內啟動的一系列應用程序,包括根據自然語言描述編寫代碼、幫助設計應用程序模型以及概括電子表格功能。

4.ICL 的優(yōu)缺點

4.1 優(yōu)點

  • 輸入的形式是自然語言,這提供了一個跟 LLM 交流的可解釋性手段,可以讓我們更好地跟語言模型交互,通過修改模版和示例說明我們想要什么,甚至可以把一些知識直接輸入給模型,通過這些示例跟模版讓語言模型更容易利用到人類的知識。

  • 這種學習方式類似于人類類比學習的決策過程,即通過幾個例子去類比,而不是像精調一樣從大量語料中統(tǒng)計出規(guī)律。

  • 相比于監(jiān)督學習,ICL 是一種免訓練的學習框架。不僅減少了計算模型適配新任務的計算成本,而且可以使語言模型即服務 (Language-Model-as-a-Service, LMaaS) 這種模式成為可能,更容易應用到更多真實場景的任務。

4.2 缺點

  • 模型對不同的 contexts 較為敏感。很小的變化甚至會導致很大的方差。

  • 缺乏對 in-context learning 的理論和實驗分析。In-context learning 到底學到的是什么,又是怎么學到的。

  • 應用受限。context size 的上限為 2048 個字符。由于 content limit,一些任務更適合用 fine-turning 來做。這也導致一些研究結論其實并未在文本生成類的任務上進行驗證。

  • few-shot setting 下的性能飽和問題,即隨著 training examples 的數量的增加 (一般是 16 或者 32 左右),in-context learning 的性能不再提升。

5.ICL底層機制

5.1. 預訓練怎樣影響 ICL

ICL 是在 GPT-3 中首次提出的,它表明隨著模型尺寸的增大,ICL 的能力變得更加明顯。
然而,一些研究表明,小規(guī)模的 PLM 也可以通過專門設計的訓練任務(例如,學習以任務示例和查詢作為輸入來預測標簽)表現(xiàn)出強大的 ICL 能力,甚至可能超過更大的模型。這表明訓練任務的設計是影響 LLM ICL 能力的一個重要因素。

除了訓練任務外,最近的研究還調查了 ICL 和預訓練語料庫之間的關系。研究表明,ICL 的性能在很大程度上取決于預訓練語料庫的來源,而不是規(guī)模。

另一項研究對訓練數據分布的影響進行了深入分析。他們發(fā)現(xiàn),當訓練數據可以聚類到許多不常見的類中,而不是均勻分布時,ICL 就會出現(xiàn)。

5.2.LLMs 怎樣執(zhí)行 ICL

在推理階段,研究人員專注于基于給定的演示來分析 ICL 能力是如何運行的,因為不涉及顯式學習或更新。他們通常從梯度下降的角度進行分析,并將 ICL 視為隱式微調。
在這個框架下,ICL 過程可以解釋如下:通過前向計算,LLM 生成關于演示的元梯度,并通過注意力機制隱式地執(zhí)行梯度下降。實驗也表明,LLM 中的某些注意力頭能夠執(zhí)行與任務無關的原子操作(例如,復制和前綴匹配),這與 ICL 能力密切相關。

為了進一步探索 ICL 的工作機制,一些研究將 ICL 抽象為一個算法學習過程。具體而言,LLM 在預訓練期間基本上通過其參數對隱式模型進行編碼。通過 ICL 中提供的例子,LLM 可以實現(xiàn)諸如梯度下降之類的學習算法,或者直接計算閉式解,以在前向計算期間更新這些模型。在這個解釋框架下,已經表明 LLM 可以有效地學習簡單的線性函數,甚至可以使用 ICL 學習一些復雜的函數,如決策樹。

5.3. 為什么有效

  • 訓練數據分布:模型在大量的語料預訓練過程中,學習到大量的 “concept”。“concept” 可以看作是一個潛在的變量,變量包含多種多樣文本級別的數據。“concept”結合非常多的潛在變量指定了一個文本語義的方方面面。

  • 學習機制:有學者猜測 LM 可能自己就具備學習的能力,在做 ICL 的時候學到了這些知識,或者隱式直接精調了自己。

  • Transformer 模塊:有學者發(fā)現(xiàn) Transformer 里的某些注意力頭會通過拷貝固定的模式來預測下一個 token。

6.關鍵知識點

  1. ICL有效果的原因:訓練數據的分布、學習機制、Transformer模塊

  2. ICL的分類常見有哪幾種:1.只允許輸入一條示例和一則任務說明;2.允許輸入數條示例和一則任務說明;3.不允許輸入任何示例,只允許輸入一則任務說明。

  3. In-Context Learning只對大模型有效

  4. 在訓練階段,可以通過自監(jiān)督的In-Context Learning訓練優(yōu)化模型效果,從而讓模型具備更好的通用能力。

  5. In-Context Learning類似于人類的類比學習的決策過程,舉一反三。

  6. 推理階段的優(yōu)化方法分為微調(Fine tune)和打分函數(Scoring Function)設計

  7. 大語言模型在使用ICL進行決策時,不需要進行參數更新,然后進行預測。

更多優(yōu)質內容請關注公號:汀丶人工智能;會提供一些相關的資源和優(yōu)質文章,免費獲取閱讀。



語境學習、上下文學習In-Context Learning底層機制等原理詳解的評論 (共 條)

分享到微博請遵守國家法律
磐安县| 龙江县| 临泽县| 镇远县| 英山县| 沈丘县| 桂平市| 资源县| 永定县| 乌鲁木齐市| 分宜县| 礼泉县| 容城县| 尖扎县| 衡南县| 册亨县| 淮北市| 通江县| 普定县| 西青区| 宝兴县| 茶陵县| 浙江省| 普宁市| 白沙| 无棣县| 道孚县| 隆化县| 石门县| 凤山市| 肇东市| 资溪县| 沅陵县| 东兰县| 揭东县| 苗栗县| 新巴尔虎右旗| 巴南区| 仙桃市| 弥渡县| 阳西县|