最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

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

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

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

1.In-Context Learning背景與定義

  • 背景

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

  • 定義

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

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

  • 提示學(xué)習(xí):通過設(shè)計(jì)離散模板或者連續(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 則不對(duì)模型做任何的微調(diào),直接將下游任務(wù)的輸入輸出拼接起來作為一個(gè) prompt,引導(dǎo)模型根據(jù)輸入的測(cè)試集樣本 demo,給出任務(wù)的預(yù)測(cè)結(jié)果。

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

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

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

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

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

值得注意的是,與需要使用反向梯度更新模型參數(shù)的訓(xùn)練階段的監(jiān)督學(xué)習(xí)不同,ICL 不需要參數(shù)更新,并直接對(duì)預(yù)先訓(xùn)練好的語(yǔ)言模型進(jìn)行預(yù)測(cè)(這是與 prompt,傳統(tǒng) demonstration learning 不同的地方,ICL 不需要在下游 P-tuning 或 Fine-tuning)。該模型學(xué)習(xí)隱藏在演示中的模式,并據(jù)此做出正確的預(yù)測(cè)。使用下游任務(wù)的的演示信息學(xué)習(xí)并推理,通常是 “實(shí)例 - 標(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 兩個(gè)階段的優(yōu)化方法

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

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

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

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

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

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

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

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

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

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

    • 有監(jiān)督的數(shù)據(jù)畢竟是有限的,于是開始有研究者思考能不能借鑒預(yù)訓(xùn)練的方式,自監(jiān)督地進(jìn)行 ICL 訓(xùn)練。根據(jù) ICL 的格式將原始數(shù)據(jù)轉(zhuǎn)換成 input-output 的 pair 對(duì)數(shù)據(jù)后利用四個(gè)自監(jiān)督目標(biāo)進(jìn)行訓(xùn)練,包括掩碼語(yǔ)言,分類任務(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 更加簡(jiǎn)單且受歡迎。另外,在 warmup 這個(gè)階段,語(yǔ)言模型只需要從少量數(shù)據(jù)訓(xùn)練就能明顯提升 ICL 能力,不斷增加相關(guān)數(shù)據(jù)并不能帶來 ICL 能力的持續(xù)提升。從某種角度上看,這些方法通過更加模型參數(shù)可以提升 ICL 能力也表明了原始的 LLM 具備這種潛力。雖然 ICL 不要求 warmup,但是一般推薦在推理前增加一個(gè) warm up 過程。

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

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

  • Prompt 設(shè)計(jì)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3.應(yīng)用

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

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

4.1 優(yōu)點(diǎn)

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

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

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

4.2 缺點(diǎn)

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

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

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

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

5.ICL底層機(jī)制

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

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

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

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

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

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

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

5.3. 為什么有效

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

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

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

6.關(guān)鍵知識(shí)點(diǎn)

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

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

  3. In-Context Learning只對(duì)大模型有效

  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è)計(jì)

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

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



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

分享到微博請(qǐng)遵守國(guó)家法律
东兴市| 平江县| 韩城市| 随州市| 施甸县| 萨迦县| 工布江达县| 平顺县| 收藏| 麻栗坡县| 乌拉特前旗| 肇源县| 望江县| 辽源市| 建水县| 东台市| 中山市| 江阴市| 平和县| 开封市| 贵定县| 四子王旗| 泰兴市| 三江| 沛县| 武义县| 乐平市| 伊金霍洛旗| 衡阳县| 当涂县| 德惠市| 元氏县| 顺昌县| 汝州市| 通州区| 沁阳市| 湘乡市| 秦安县| 边坝县| 苗栗市| 项城市|