大語言模型的預(yù)訓(xùn)練[4]:指示學(xué)習(xí)Instruction Learning詳解

大語言模型的預(yù)訓(xùn)練[4]:指示學(xué)習(xí)Instruction Learning:Entailment-oriented、PLM oriented、human-oriented詳解以及和Prompt Learning,In-content Learning區(qū)別
1.指示學(xué)習(xí)的定義
Instruction Learning 讓模型對(duì)題目 / 描述式的指令進(jìn)行學(xué)習(xí)。針對(duì)每個(gè)任務(wù),單獨(dú)生成指示,通過在若干個(gè) full-shot 任務(wù)上進(jìn)行微調(diào),然后在具體的任務(wù)上進(jìn)行評(píng)估泛化能力,其中預(yù)訓(xùn)練模型參數(shù)是可更新的。
指示學(xué)習(xí)和提示學(xué)習(xí)的目的都是去挖掘語言模型本身具備的知識(shí)。不同的是 Prompt 是激發(fā)語言模型的補(bǔ)全能力,例如根據(jù)上半句生成下半句,或是完形填空等。Instruct 是激發(fā)語言模型的理解能力,它通過給出更明顯的指令,讓模型去做出正確的行動(dòng)。通過下面的例子來理解這兩個(gè)不同的學(xué)習(xí)方式:
提示學(xué)習(xí):老師講解的通俗易懂,學(xué)生很喜歡,這門課太____了。
指示學(xué)習(xí):這句話的情感是非常正向的:老師講解的通俗易懂,學(xué)生很喜歡。選項(xiàng):A = 好;B = 一般;C = 差。
對(duì)于任務(wù)指令學(xué)習(xí),目標(biāo)是通過遵循指令來驅(qū)動(dòng)系統(tǒng)在給定輸入的情況下達(dá)到輸出。因此,數(shù)據(jù)集由三個(gè)項(xiàng)目組成:
輸入 (X):一個(gè)實(shí)例的輸入;它可以是單個(gè)文本片段(例如,情感分類)或一組文本片段(例如,文本蘊(yùn)涵、問題回答等)。
輸出(Y):一個(gè)實(shí)例的輸出;在分類問題中,它可以是一個(gè)或多個(gè)預(yù)定義的標(biāo)簽;在文本生成任務(wù)中,它可以是任何開放式文本。
模板 (T):一個(gè)文本模板,試圖單獨(dú)表達(dá)任務(wù)意義或充當(dāng) X 和 Y 之間的橋梁。T 可能還不是一種組件結(jié)構(gòu)。
三種不同類別的文本說明,如圖所示:

Entailment-oriented:將原始輸入作為前提,將每個(gè)預(yù)定義的標(biāo)簽轉(zhuǎn)換為假設(shè)(即指令)。
PLM oriented:使用模板將原始任務(wù)輸入構(gòu)建成完形填空題。
human-oriented:利用足夠的任務(wù)信息作為指導(dǎo),例如定義和可選的小樣本演示等
2. 指示學(xué)習(xí)的指令種類
2.1 任務(wù)指令
將這些指令概括為執(zhí)行 T,X 和 Y 的不同組合的三類(ENTAILMENT-ORIENTED、 PLM-ORIENTED 和 HUMAN-ORIENTED)
2.1.1 I=T+Y:Entailment-oriented Instruction
處理分類任務(wù)的一個(gè)傳統(tǒng)方案是將目標(biāo)標(biāo)簽轉(zhuǎn)換為索引,并讓模型決定輸入屬于哪個(gè)索引。這種范式側(cè)重于對(duì)輸入語義進(jìn)行編碼,同時(shí)丟失標(biāo)簽語義。為了讓系統(tǒng)識(shí)別新標(biāo)簽而不依賴于大量標(biāo)記的示例,為每個(gè)標(biāo)簽建立一個(gè)假設(shè)——然后,推導(dǎo)標(biāo)簽的真值被轉(zhuǎn)換為確定假設(shè)的真值。這種方法內(nèi)置在指令 I 中,指令(I)結(jié)合模板 (Y) 和標(biāo)簽 (Y) 來解釋每個(gè)目標(biāo)標(biāo)簽(Y)。由于這種范式自然滿足文本蘊(yùn)涵(TE,其中任務(wù)輸入和指令可以分別被視為前提和假設(shè))的格式,因此這類指令被稱為“面向蘊(yùn)涵的指令”。優(yōu)點(diǎn)有以下四個(gè)方面:
保留了標(biāo)簽語義,使得輸入編碼和輸出編碼在輸入輸出關(guān)系建模中得到同等重視;
產(chǎn)生了一個(gè)統(tǒng)一的推理過程文本蘊(yùn)涵來處理各種 NLP 問題;
創(chuàng)造了利用現(xiàn)有 TE 數(shù)據(jù)集的間接監(jiān)督的機(jī)會(huì),因此預(yù)訓(xùn)練的 TE 模型有望在沒有特定任務(wù)微調(diào)的情況下處理這些目標(biāo)任務(wù);
將原始的封閉集標(biāo)簽分類問題擴(kuò)展為具有很少甚至零標(biāo)簽特定示例的開放域開放形式標(biāo)簽的識(shí)別問題。
因此,它被廣泛應(yīng)用于各種少樣本 / 零樣本分類任務(wù),如主題分類、情感分類、實(shí)體類型和實(shí)體關(guān)系。
2.1.2 I=T+X:PLM-oriented Instruction
Prompt 是 PLM-oriented instructions 的代表,通常是一個(gè)簡短的話語,前面加上任務(wù)輸入(前綴提示),或者一個(gè)完形填空題模板(完形填空)
基本上是為從預(yù)訓(xùn)練的 LM (PLM) 查詢中間響應(yīng)而設(shè)計(jì)的。由于提示輸入符合 PLM 的預(yù)訓(xùn)練目標(biāo)(例如,完形填空式輸入滿足屏蔽語言建模目標(biāo)(Kenton 和 Toutanova,2019)),因此有助于擺脫對(duì)傳統(tǒng)監(jiān)督微調(diào)的依賴大大減輕了人工標(biāo)注的成本。因此,快速學(xué)習(xí)在許多先前的少量 / 零樣本 NLP 任務(wù)中取得了令人印象深刻的結(jié)果。
盡管提示技術(shù)具有出色的性能,但在實(shí)際應(yīng)用中,面向 PLM 的指令仍然存在兩個(gè)明顯的問題:
不是用戶友好的。由于提示是為服務(wù) PLM 設(shè)計(jì)的,因此鼓勵(lì)使用 “模型的語言”(例如,模型首選的不連貫的詞或內(nèi)部嵌入)設(shè)計(jì)提示。然而,這種面向 PLM 的指令很難理解,并且經(jīng)常違反人類的直覺。同時(shí),提示的性能在很大程度上取決于費(fèi)力的提示工程(Bach 等人,2022 年),而大多數(shù)最終用戶都不是 PLM 專家,通常缺乏足夠的知識(shí)來調(diào)整有效的提示。
應(yīng)用限制。提示通常簡短而簡單,而許多任務(wù)不能僅僅通過簡短的提示來有效地制定,這使得提示難以處理現(xiàn)實(shí)世界 NLP 任務(wù)的不同格式。
2.1.3 Human-oriented Instruction
面向人的指令基本上是指用于在人工標(biāo)注平臺(tái)上進(jìn)行眾包工作的指令(例如,Amazon MTurk 指令)。與面向 PLM 的指令不同,面向人的指令通常是一些人類可讀的、描述性的、段落式的任務(wù)特定的文本信息,包括任務(wù)標(biāo)題、類別、定義、應(yīng)避免的事情等。因此,Human-oriented Instruction 說明更加用戶友好,可以理想地應(yīng)用于幾乎任何復(fù)雜的 NLP 任務(wù)。
面向人的指令類似于面向 PLM 的指令,它也利用模板將原始輸入(紅色)轉(zhuǎn)換為完形填空題。然而,任務(wù)模板本身包含信息任務(wù)語義,即正式的任務(wù)定義。同時(shí),還提供了 few-shot 備選任務(wù)演示.
2.2 如何建模指令
Semantic Parser-based(基于語義解析器):在機(jī)器學(xué)習(xí)的早期階段,為了幫助系統(tǒng)理解自然語言指令,大量工作采用語義解析將指令轉(zhuǎn)換為形式語言(邏輯公式),以便于系統(tǒng)執(zhí)行。
Prompting Template-based(基于提示模板):對(duì)于基于神經(jīng)網(wǎng)絡(luò)的系統(tǒng)可以直接將自然語言指令編碼到模型的嵌入中,而無需語義解析器的幫助?;谔崾灸0宓姆椒ǖ谋举|(zhì)是使用模板將任務(wù)輸入轉(zhuǎn)換為提示格式(即完形填空)。
Prefix Instruction-based(基于前綴指令):與基于前綴指令的方法主要用于為 human-oriented 的指令建模,其中提供了足夠的特定于任務(wù)的信息。
HyperNetwork-based:使用基于前綴指令的建模策略有兩個(gè)明顯的問題。首先,它將任務(wù)級(jí)指令與每個(gè)實(shí)例級(jí)輸入連接起來,重復(fù)過程顯著減慢了處理 / 推理速度,冗長的輸入也增加了計(jì)算成本的負(fù)擔(dān)。其次,它可能會(huì)影響優(yōu)化,因?yàn)槟P蜔o法明確區(qū)分任務(wù)輸入 x 和前綴指令 I,因此模型可以簡單地學(xué)習(xí)完成任務(wù)并忽略指令。為了解決上述問題,使用超網(wǎng)絡(luò)對(duì)任務(wù)指令進(jìn)行編碼。使用基于超網(wǎng)絡(luò)的方法的本質(zhì)是:
分別對(duì)任務(wù)指令 I 和任務(wù)輸入 x 進(jìn)行編碼。
將指令轉(zhuǎn)換為特定于任務(wù)的模型參數(shù)。
2.3 優(yōu)點(diǎn)
指令通常包含比單獨(dú)標(biāo)記的示例更抽象和更全面的目標(biāo)任務(wù)知識(shí)。隨著任務(wù)指令的可用性,可以快速構(gòu)建系統(tǒng)來處理新任務(wù),尤其是在特定于任務(wù)的標(biāo)注稀缺的情況,舉例說明,例如,一個(gè)小孩可以通過從指導(dǎo)和一些例子中學(xué)習(xí)來很好地解決一個(gè)新的數(shù)學(xué)任務(wù)。
指示學(xué)習(xí)的優(yōu)點(diǎn)是它經(jīng)過多任務(wù)的微調(diào)后,也能夠在其他任務(wù)上做 zero-shot,而提示學(xué)習(xí)都是針對(duì)一個(gè)任務(wù)的。泛化能力不如指示學(xué)習(xí)。
3.與其他大語言模型技術(shù)對(duì)比
3.1.Instruction Learning 與 Prompt Learning
相同之處:
核心一樣,就是去發(fā)掘語言模型本身具備的知識(shí)
不同之處:
不同點(diǎn)就在于,Prompt 是去激發(fā)語言模型的補(bǔ)全能力,比如給出上半句生成下半句、或者做完形填空,都還是像在做 language model 任務(wù);而 Instruction Learning 則是激發(fā)語言模型的理解能力,通過給出更明顯的指令 / 指示,讓模型去理解并做出正確的 action。比如 NLI / 分類任務(wù)
Prompt 在沒精調(diào)的模型上也能有一定效果,而 Instruction Learning 則必須對(duì)模型精調(diào),讓模型知道這種指令模式;Prompt Learning 都是針對(duì)一個(gè)任務(wù)的,比如做個(gè)情感分析任務(wù)的 prompt tuning,精調(diào)完的模型只能用于情感分析任務(wù),而經(jīng)過 Instruction Learning 多任務(wù)精調(diào)后,可以用于其他任務(wù)的 zero-shot!
3.2.In-content Learning 和 Instruction Learning
In-context Learning :給出范例,讓機(jī)器回答其它問題;以 GPT3 為代表,將檢索后的每個(gè)文檔(標(biāo)題 + 提煉后的語句)作為一個(gè)樣本輸入到 GPT3 里,最后寫 “標(biāo)題:xxx \n 內(nèi)容:_”,讓模型去補(bǔ)全。
Instruction Learning:給出題目的敘述,讓機(jī)器進(jìn)行回答;以 ChatGPT 為代表,將檢索后的信息輸入給 ChatGPT 并后面補(bǔ)上一句 “請(qǐng)根據(jù)以上內(nèi)容,回答問題 xxx”。
4.關(guān)鍵知識(shí)點(diǎn)
Instruction Learning建模指令有:基于語義解析器、基于提示模板、基于前綴指令
Instruction Learning任務(wù)指令類型有:Entailment-oriented Instruction、PLM-oriented Instruction 、Human-oriented Instruction
通過Instruction Learning給【題目敘述】回答問題以及In-context Learning給【范例】回答問題可以讓語言模型變成一個(gè)通才。
指示學(xué)習(xí)的優(yōu)點(diǎn)是它經(jīng)過多任務(wù)的微調(diào)后,也能夠在其他任務(wù)上做zero-shot,而提示學(xué)習(xí)都是針對(duì)一個(gè)任務(wù)的,泛化能力不如指示學(xué)習(xí)。
指示學(xué)習(xí)和提示學(xué)習(xí)的相同之處是:核心一樣,就是去發(fā)掘語言模型本身具備的知識(shí)。
更多優(yōu)質(zhì)內(nèi)容請(qǐng)關(guān)注公號(hào):汀丶人工智能;會(huì)提供一些相關(guān)的資源和優(yōu)質(zhì)文章,免費(fèi)獲取閱讀。
