国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

語境學(xué)習(xí)、上下文學(xué)習(xí)In-Context Learning底層機制等原理詳解

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

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

1.In-Context Learning背景與定義

  • 背景

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

  • 定義

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

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

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

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

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

    • ICL 的關(guān)鍵思想是從任務(wù)相關(guān)的類比樣本中學(xué)習(xí)。下圖給出了一個描述語言模型如何使用 ICL 進行決策的例子。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Prompt 設(shè)計

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

  • 對于數(shù)據(jù)樣本的選取,可以有以下方法:

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

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

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

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

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

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

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

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

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

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

  • 打分函數(shù)(Scoring Function)

  • 評分函數(shù)決定我們?nèi)绾螌⒄Z言模型的預(yù)測轉(zhuǎn)換為對特定答案可能性的估計。

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

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

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

3.應(yīng)用

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

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

4.1 優(yōu)點

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

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

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

4.2 缺點

  • 模型對不同的 contexts 較為敏感。很小的變化甚至?xí)?dǎo)致很大的方差。

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

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

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

5.ICL底層機制

5.1. 預(yù)訓(xùn)練怎樣影響 ICL

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

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

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

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

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

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

5.3. 為什么有效

  • 訓(xùn)練數(shù)據(jù)分布:模型在大量的語料預(yù)訓(xùn)練過程中,學(xué)習(xí)到大量的 “concept”?!癱oncept” 可以看作是一個潛在的變量,變量包含多種多樣文本級別的數(shù)據(jù)。“concept”結(jié)合非常多的潛在變量指定了一個文本語義的方方面面。

  • 學(xué)習(xí)機制:有學(xué)者猜測 LM 可能自己就具備學(xué)習(xí)的能力,在做 ICL 的時候?qū)W到了這些知識,或者隱式直接精調(diào)了自己。

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

6.關(guān)鍵知識點

  1. ICL有效果的原因:訓(xùn)練數(shù)據(jù)的分布、學(xué)習(xí)機制、Transformer模塊

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

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

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

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

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

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

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



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

分享到微博請遵守國家法律
襄垣县| 博罗县| 岑巩县| 九台市| 轮台县| 饶河县| 灵山县| 财经| 紫云| 化隆| 峨边| 泰州市| 丽江市| 双柏县| 中阳县| 辉南县| 黄石市| 五指山市| 筠连县| 江油市| 长顺县| 宝鸡市| 建水县| 来宾市| 高密市| 巴彦县| 阿鲁科尔沁旗| 建德市| 连城县| 克东县| 开化县| 曲阳县| 阿合奇县| 凤翔县| 西乌珠穆沁旗| 墨玉县| 三亚市| 三门县| 治多县| 获嘉县| 三都|