国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

大語言模型LLM微調(diào)技術(shù):Prompt Tuning

這篇具有很好參考價值的文章主要介紹了大語言模型LLM微調(diào)技術(shù):Prompt Tuning。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

1 預(yù)訓(xùn)練語言模型概述

1.1 預(yù)訓(xùn)練語言模型的發(fā)展歷程

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

截止23年3月底,語言模型發(fā)展走過了三個階段:

  • 第一階段 :設(shè)計一系列的自監(jiān)督訓(xùn)練目標(biāo)(MLM、NSP等),設(shè)計新穎的模型架構(gòu)(Transformer),遵循Pre-training和Fine-tuning范式。典型代表是BERT、GPT、XLNet等;
  • 第二階段 :逐步擴(kuò)大模型參數(shù)和訓(xùn)練語料規(guī)模,探索不同類型的架構(gòu)。典型代表是BART、T5、GPT-3等;
  • 第三階段 :走向AIGC(Artificial Intelligent Generated Content)時代,模型參數(shù)規(guī)模步入千萬億,模型架構(gòu)為自回歸架構(gòu),大模型走向?qū)υ捠?、生成式、多模態(tài)時代,更加注重與人類交互進(jìn)行對齊,實(shí)現(xiàn)可靠、安全、無毒的模型。典型代表是InstructionGPT、ChatGPT、Bard、GPT-4等。

1.2 面向預(yù)訓(xùn)練語言模型的Prompt-Tuning技術(shù)發(fā)展歷程

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

Prompt-Tuning自從GPT-3被提出以來,從傳統(tǒng)的離散、連續(xù)的Prompt的構(gòu)建、走向面向超大規(guī)模模型的In-Context Learning、Instruction-tuning和Chain-of-Thought。

自從GPT、EMLO、BERT的相繼提出,以Pre-training + Fine-tuning 的模式在諸多自然語言處理(NLP)任務(wù)中被廣泛使用,其先在Pre-training階段通過一個模型在大規(guī)模無監(jiān)督語料上預(yù)先訓(xùn)練一個 預(yù)訓(xùn)練語言模型(Pre-trained Language Model,PLM) ,然后在Fine-tuning階段基于訓(xùn)練好的語言模型在具體的下游任務(wù)上再次進(jìn)行 微調(diào)(Fine-tuning) ,以獲得適應(yīng)下游任務(wù)的模型。

這種模式在諸多任務(wù)的表現(xiàn)上超越了傳統(tǒng)的監(jiān)督學(xué)習(xí)方法,不論在工業(yè)生產(chǎn)、科研創(chuàng)新還是競賽中均作為新的主流方式。然而,這套模式也存在著一些問題。例如,在大多數(shù)的下游任務(wù)微調(diào)時, 下游任務(wù)的目標(biāo)與預(yù)訓(xùn)練的目標(biāo)差距過大 導(dǎo)致提升效果不明顯, 微調(diào)過程中依賴大量的監(jiān)督語料 等。

至此,以GPT-3、PET為首提出一種基于預(yù)訓(xùn)練語言模型的新的微調(diào)范式——Prompt-Tuning ,其旨在通過添加模板的方法來避免引入額外的參數(shù),從而讓語言模型可以在小樣本(Few-shot)或零樣本(Zero-shot)場景下達(dá)到理想的效果。Prompt-Tuning又可以稱為Prompt、Prompting、Prompt-based Fine-tuning等。

因此簡單的來說,Prompt-Tuning的動機(jī)旨在解決目前傳統(tǒng)Fine-tuning的兩個痛點(diǎn)問題:

  • 降低語義差異(Bridge the gap between Pre-training and Fine-tuning) :預(yù)訓(xùn)練任務(wù)主要以Masked Language Modeling(MLM)為主,而下游任務(wù)則重新引入新的訓(xùn)練參數(shù),因此兩個階段的目標(biāo)通常有較大差異。因此需要解決如何縮小Pre-training和Fine-tuning兩個階段目標(biāo)差距過大的問題;
  • 避免過擬合(Overfitting of the head) :由于在Fine-tuning階段需要新引入額外的參數(shù)以適配相應(yīng)的任務(wù)需要,因此在樣本數(shù)量有限的情況容易發(fā)生過擬合,降低了模型的泛化能力。因此需要面對預(yù)訓(xùn)練語言模型的過擬合問題。

2 預(yù)訓(xùn)練語言模型

預(yù)訓(xùn)練語言模型想必大家已經(jīng)不再陌生,以GPT、ELMO和BERT為首的預(yù)訓(xùn)練語言模型在近兩年內(nèi)大放異彩。預(yù)訓(xùn)練語言模型主要分為單向和雙向兩種類型:

  • 單向 :以GPT為首,強(qiáng)調(diào) 從左向右 的編碼順序,適用于Encoder-Decoder模式的自回歸(Auto-regressive)模型;
  • 雙向 :以ELMO為首,強(qiáng)調(diào)從左向右和從右向左 雙向編碼 ,但ELMO的主體是LSTM,由于其是串形地進(jìn)行編碼,導(dǎo)致其運(yùn)行速度較慢,因此最近BERT則以Transformer為主體結(jié)構(gòu)作為雙向語言模型的基準(zhǔn)。

現(xiàn)如今常用的語言模型大多數(shù)是BERT及其變體,它的主體結(jié)構(gòu)Transformer模型是由谷歌機(jī)器翻譯團(tuán)隊在17年末提出的,是一種完全利用attention機(jī)制構(gòu)建的端到端模型,具體算法詳解可詳情【預(yù)訓(xùn)練語言模型】Attention Is All You Need(Transformer)。

之所以選擇Transformer,是因?yàn)?strong> 其完全以Attention作為計算推理技術(shù) ,任意的兩個token均可以兩兩交互,使得推理完全可以由矩陣乘機(jī)來替代,實(shí)現(xiàn)了 可并行化計算 ,因此Transformer也可以認(rèn)為是一個全連接圖, 緩解了序列數(shù)據(jù)普遍存在的長距離依賴和梯度消失等缺陷 。

在NLP領(lǐng)域中,Attention機(jī)制的目標(biāo)是對具有強(qiáng)相關(guān)的token之間提高模型的關(guān)注度。例如在文本分類中,部分詞對分類產(chǎn)生的貢獻(xiàn)更大,則會分配較大的權(quán)重。
對句子的編碼主要目標(biāo)是為了讓模型記住token的語義。傳統(tǒng)的LSTM則只能通過長短期記憶的方法來捕捉token之間的關(guān)系,容易導(dǎo)致梯度消失或記憶模糊問題,而Transformer中,任意的token之間都有顯式的連接,避免了長距離依賴性問題。當(dāng)然Transformer也增加了position embedding以區(qū)分不同token的位置關(guān)系,

2.1 經(jīng)典的Pre-trained任務(wù)

本文的目標(biāo)是介紹Prompt-Tuning的方法,而Prompt-Tuning的動機(jī)則是進(jìn)一步拉近微調(diào)與預(yù)訓(xùn)練階段的任務(wù)目標(biāo),因此本部分則以常用的BERT為主,簡單介紹Pre-training的經(jīng)典方法,更加詳細(xì)的解讀,可參考:【預(yù)訓(xùn)練語言模型】BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding(BERT)。

2.1.1 Masked Language Modeling(MLM)

傳統(tǒng)的語言模型是以word2vec、GloVe為代表的詞向量模型,他們主要是以詞袋(N-Gram)為基礎(chǔ)。例如在word2vec的CBOW方法中,隨機(jī)選取一個固定長度的詞袋區(qū)間,然后挖掉中心部分的詞后,讓模型(一個簡單的深度神經(jīng)網(wǎng)絡(luò))預(yù)測該位置的詞,如下圖所示:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

Masked Language Modeling(MLM)則采用了N-Gram的方法,不同的是,N-Gram喂入的是被截斷的短文本,而MLM則是完整的文本,因此MLM更能夠保留原始的語義:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

MLM是一種自監(jiān)督的訓(xùn)練方法,其先從大規(guī)模的無監(jiān)督語料上通過固定的替換策略獲得自監(jiān)督語料,設(shè)計預(yù)訓(xùn)練的目標(biāo)來訓(xùn)練模型,具體的可以描述為:

  • 替換策略:在所有語料中,隨機(jī)抽取15%的文本。被選中的文本中,則有80%的文本中,隨機(jī)挑選一個token并替換為 [mask],10%的文本中則隨機(jī)挑選一個token替換為其他token,10%的文本中保持不變。
  • 訓(xùn)練目標(biāo):當(dāng)模型遇見 [mask] token時,則根據(jù)學(xué)習(xí)得到的上下文語義去預(yù)測該位置可能的詞,因此,訓(xùn)練的目標(biāo)是對整個詞表上的分類任務(wù),可以使用交叉信息熵作為目標(biāo)函數(shù)。

因此以BERT為例,首先喂入一個文本It is very cold today, we need to wear more clothes. ,然后隨機(jī)mask掉一個token,并結(jié)合一些特殊標(biāo)記得到:[cls] It is very cold today, we need to [mask] more clothes. [sep] ,喂入到多層的Transformer結(jié)構(gòu)中,則可以得到最后一層每個token的隱狀態(tài)向量。MLM則通過在[mask]頭部添加一個MLP映射到詞表上,得到所有詞預(yù)測的概率分布。

現(xiàn)如今有諸多針對MLM的改進(jìn)版本,我們挑選兩個經(jīng)典的改進(jìn)進(jìn)行介紹:

  • Whole Word Masking(WWM) :來源于RoBERTa等,其認(rèn)為BERT經(jīng)過分詞后得到的是word piece,而BERT的MLM則是基于word piece進(jìn)行隨機(jī)替換操作的,即Single-token Masking,因此被mask的token語義并不完整。而WWM則表示被mask的必須是一個完整的單詞。
  • Entity Mention Replacement(EMR) :來源于ERNIE-BAIDU等,其通常是在知識增強(qiáng)的預(yù)訓(xùn)練場景中,即給定已知的知識庫(實(shí)體),對文本中的整個實(shí)體進(jìn)行mask,而不是單一的token或字符。

下面給出對比樣例。以文本“Michael Jackson is one of the best-selling music artists of all time, with estimated sales of over 400 million records worldwide”為例:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

2.1.2 Next Sentence Prediction(NSP)

在BERT原文中,還添加了NSP任務(wù),其主要目標(biāo)是給定兩個句子,來判斷他們之間的關(guān)系,屬于一種自然語言推理(NLI)任務(wù)。在NSP中則存在三種關(guān)系,分別是:

  • entailment(isNext):存在蘊(yùn)含關(guān)系,NSP中則認(rèn)為緊相鄰的兩個句子屬于entailment,即isNext關(guān)系;
  • contradiction(isNotNext):矛盾關(guān)系,NSP中則認(rèn)為這兩個句子不存在前后關(guān)系,例如兩個句子來自于不同的文章;
  • Neutral:中性關(guān)系,NSP中認(rèn)為當(dāng)前的兩個句子可能來自于同一篇文章,但是不屬于isNext關(guān)系的

而顯然,構(gòu)建NSP語料也可以通過自監(jiān)督的方法獲得,首先給定一個大規(guī)模無監(jiān)督語料,按照文章進(jìn)行分類。在同一篇文章里,隨機(jī)挑選一個句子作為premise,因此entailment類對應(yīng)的則是其下一個句子,另外再隨機(jī)挑選同一篇文章中的其他句子作為Neutral類,其他文章中的句子作為contradiction類。

在BERT中,NSP任務(wù)則視為sentence-pair任務(wù),例如輸入兩個句子S1:It is very cold today.S2:We need to wear more clothes.,通過拼接特殊字符后,得到:[cls] It is very cold today. [sep] We need to wear more clothes. [sep],然后喂入到多層Transformer中,可以得到[cls]token的隱狀態(tài)向量,同樣通過MLP映射到一個3分類上獲得各個類的概率分布:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

在以ALBETR、RoBERTa等系列的模型,由于發(fā)現(xiàn)NSP對實(shí)驗(yàn)的效果并沒有太多正向影響,因此均刪除了NSP的任務(wù),在后續(xù)的預(yù)訓(xùn)練語言模型中,也紛紛提出其他的預(yù)訓(xùn)練目標(biāo),本文不再過多贅述。在后續(xù)的Prompt-Tuning技術(shù)中,大多數(shù)則以MLM作為切入點(diǎn)。

2.2 Task-specific Fine-tuning

獲得了預(yù)訓(xùn)練的語言模型后,在面對具體的下游任務(wù)時,則需要進(jìn)行微調(diào)。通常微調(diào)的任務(wù)目標(biāo)取決于下游任務(wù)的性質(zhì)。我們簡單列舉了幾種NLP有關(guān)的下游任務(wù):

  • Single-text Classification(單句分類) :常見的單句分類任務(wù)有短文本分類、長文本分類、意圖識別、情感分析、關(guān)系抽取等。給定一個文本,喂入多層Transformer模型中,獲得最后一層的隱狀態(tài)向量后,再輸入到新添加的分類器MLP中進(jìn)行分類。在Fine-tuning階段,則通過交叉信息熵?fù)p失函數(shù)訓(xùn)練分類器;
短/長文本分類:直接對句子進(jìn)行歸類,例如新聞歸類、主題分類、場景識別等;

意圖識別:根據(jù)給定的問句判斷其意圖,常用于檢索式問答、多輪對話、知識圖譜問答等;

情感分析:對評論類型的文本進(jìn)行情感取向分類或打分;

關(guān)系抽?。航o定兩個實(shí)體及對應(yīng)的一個描述類句子,判斷這兩個實(shí)體的關(guān)系類型;
  • Sentence-pair Classification(句子匹配/成對分類) :常見的匹配類型任務(wù)有語義推理、語義蘊(yùn)含、文本匹配與檢索等。給定兩個文本,用于判斷其是否存在匹配關(guān)系。此時將兩個文本拼接后喂入模型中,訓(xùn)練策略則與Single-text Classification一樣;
語義推理/蘊(yùn)含:判斷兩個句子是否存在推理關(guān)系,例如entailment、contradiction,neutral三種推理關(guān)系;

文本匹配與檢索:輸入一個文本,并從數(shù)據(jù)庫中檢索與之高相似度匹配的其他句子
  • Span Text Prediction(區(qū)間預(yù)測) :常見的任務(wù)類型有抽取式閱讀理解、實(shí)體抽取、抽取式摘要等。給定一個passage和query,根據(jù)query尋找passage中可靠的字序列作為預(yù)測答案。通常該類任務(wù)需要模型預(yù)測區(qū)間的起始位置,因此在Transformer頭部添加兩個分類器以預(yù)測兩個位置。
抽取式閱讀理解:給定query和passage,尋找passage中的一個文本區(qū)間作為答案;

實(shí)體抽?。簩σ欢挝谋局袑ふ宜锌赡艿膶?shí)體;

抽取式摘要:給定一個長文本段落,尋找一個或多個區(qū)間作為該段落的摘要;
  • Single-token Classification(字符分類) :此類涵蓋序列標(biāo)注、完形填空、拼寫檢測等任務(wù)。獲得給定文本的隱狀態(tài)向量后,喂入MLP中,獲得每個token對應(yīng)的預(yù)測結(jié)果,并采用交叉熵進(jìn)行訓(xùn)練。
序列標(biāo)注:對給定的文本每個token進(jìn)行標(biāo)注,通常有詞性標(biāo)注、槽位填充、句法分析、實(shí)體識別等;

完形填空:與MLM一致,預(yù)測給定文本中空位處可能的詞

拼寫檢測:對給定的文本中尋找在語法或語義上的錯誤拼寫,并進(jìn)行糾正;
  • Text Generation(文本生成) :文本生成任務(wù)常用于生成式摘要、機(jī)器翻譯、問答等。通常選擇單向的預(yù)訓(xùn)練語言模型實(shí)現(xiàn)文本的自回歸生成,當(dāng)然也有部分研究探索非自回歸的雙向Transformer進(jìn)行文本生成任務(wù)。BART等模型則結(jié)合單向和雙向?qū)崿F(xiàn)生成任務(wù)。
生成式摘要:在文本摘要中,通過生成方法獲得摘要;

機(jī)器翻譯:給定原始語言的文本,來生成目標(biāo)語言的翻譯句子;

問答:給定query,直接生成答案;

相關(guān)的任務(wù)類型、常見的Benchmark以及形式化定義如下圖所示:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

這幾類任務(wù)基本可以涵蓋現(xiàn)有的自然語言處理場景中,而這五類任務(wù)在Fine-tuning階段幾乎都涉及 在模型頭部引入新參數(shù) 的情況,且都存在 小樣本場景過擬合 的問題,因此Prompt-Tuning的引入非常關(guān)鍵。

3 Prompt-Tuning的定義

那么什么是Prompt呢?在了解預(yù)訓(xùn)練語言模型的基礎(chǔ),以及預(yù)訓(xùn)練語言模型在Pre-training和Fine-tuning之后,我們已經(jīng)可以預(yù)想到 Prompt的目的是將Fine-tuning的下游任務(wù)目標(biāo)轉(zhuǎn)換為Pre-training的任務(wù) 。那么具體如何工作呢?

我們依然以二分類的情感分析作為例子,描述Prompt-tuning的工作原理。給定一個句子[CLS] I like the Disney films very much. [SEP] 傳統(tǒng)的Fine-tuning方法是將其通過BERT的Transformer獲得 [CLS]表征之后再喂入新增加的MLP分類器進(jìn)行二分類,預(yù)測該句子是積極的(positive)還是消極的(negative),因此需要一定量的訓(xùn)練數(shù)據(jù)來訓(xùn)練。

而Prompt-Tuning則執(zhí)行如下步驟:

  • 構(gòu)建模板(Template Construction) :通過人工定義、自動搜索、文本生成等方法,生成與給定句子相關(guān)的一個含有[MASK]標(biāo)記的模板。例如It was [MASK].,并拼接到原始的文本中,獲得Prompt-Tuning的輸入:[CLS] I like the Disney films very much. [SEP] It was [MASK]. [SEP]。將其喂入BERT模型中,并復(fù)用預(yù)訓(xùn)練好的MLM分類器(在huggingface中為BertForMaskedLM),即可直接得到[MASK]預(yù)測的各個token的概率分布;
  • 標(biāo)簽詞映射(Label Word Verbalizer) :因?yàn)?code>[MASK]部分我們只對部分詞感興趣,因此需要建立一個映射關(guān)系。例如如果[MASK]預(yù)測的詞是“great”,則認(rèn)為是positive類,如果是“terrible”,則認(rèn)為是negative類。
此時會有讀者思考,不同的句子應(yīng)該有不同的template和label word,沒錯,因?yàn)槊總€句子可能期望預(yù)測出來的label word都不同,因此如何最大化的尋找當(dāng)前任務(wù)更加合適的template和label word是Prompt-tuning非常重要的挑戰(zhàn)。
  • 訓(xùn)練 :根據(jù)Verbalizer,則可以獲得指定label word的預(yù)測概率分布,并采用交叉信息熵進(jìn)行訓(xùn)練。此時因?yàn)橹粚︻A(yù)訓(xùn)練好的MLM head進(jìn)行微調(diào),所以避免了過擬合問題

在hugging face上也可以直接進(jìn)行測試:

  • I like the Disney films very much.

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

  • I dislike the Disney films very much.

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

其實(shí)我們可以理解,引入的模板和標(biāo)簽詞本質(zhì)上也屬于一種數(shù)據(jù)增強(qiáng),通過添加提示的方式引入先驗(yàn)知識。

4 Prompt-Tuning的研究進(jìn)展

那么Prompt-Tuning具體如何實(shí)現(xiàn),其有什么挑戰(zhàn)和困難呢,本節(jié)將詳細(xì)描述Prompt-Tuning在學(xué)術(shù)上的發(fā)展歷程。由于Prompt-Tuning發(fā)展很迅猛,因此很難保證完全涵蓋所有論文和學(xué)術(shù)報告,因此我們挑選一些具有代表性的工作進(jìn)行介紹。

4.1 Prompt-Tuning的鼻祖——GPT-3與PET

Prompt-Tuning起源于GPT-3的提出《Language Models are Few-Shot Learners》(NIPS2020),其認(rèn)為超大規(guī)模的模型只要配合好合適的模板就可以極大化地發(fā)揮其推理和理解能力。

其開創(chuàng)性提出 in-context learning 概念,即無須修改模型即可實(shí)現(xiàn)few-shot/zero-shot learning。同時引入了demonstrate learning,即讓模型知道與標(biāo)簽相似的語義描述,提升推理能力。

  • In-context Learning :是Prompt的前身。其通過從訓(xùn)練集中挑選一些樣本作為任務(wù)的提示提示(Natural Language Prompt),來實(shí)現(xiàn)免參數(shù)更新的模型預(yù)測;
  • Demonstration Learning :添加一些新的文本作為提示。例如在對“I like the Disney film. It was [MASK]”進(jìn)行情感分析時,可以拼接一些相似場景的ground-truth文本“I like the book, it was great.”、“The music is boring. It is terrible for me.”等。此時模型在根據(jù)新添加的兩個樣例句子就可以“照葫蘆畫瓢”式地預(yù)測結(jié)果了。

不過以GPT-3為首的這類方法有一個明顯的缺陷是—— 其建立在超大規(guī)模的預(yù)訓(xùn)練語言模型上 ,此時的模型參數(shù)數(shù)量通常超過100億, 在真實(shí)場景中很難應(yīng)用 ,因此眾多研究者開始探索GPT-3的這套思路在小規(guī)模的語言模型(BERT)上還是否適用?事實(shí)上,這套方法在小規(guī)模的語言模型上是可行的,但是需要注意幾點(diǎn):

  • 模型參數(shù)規(guī)模小了,Prompt直接用在Zero-shot上效果會下降,因此需要考慮將in-context learning和demonstrate learning應(yīng)用在Fine-tuning階段;
  • GPT-3中提供的提示(Natural Language Prompt)過于簡單,并不難使用在一些具體的任務(wù)場景,因此需要單獨(dú)設(shè)計一套組件實(shí)現(xiàn)。

因此,大名鼎鼎的PET模型問世,PET(Pattern-Exploiting Training)出自《Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference》(EACL2021),根據(jù)論文題目則可以猜出,Prompt-Tuning啟發(fā)于文本分類任務(wù),并且試圖將所有的分類任務(wù)轉(zhuǎn)換為與MLM一致的完形填空。

PET詳細(xì)地設(shè)計了Prompt-Tuning的重要組件——Pattern-Verbalizer-Pair(PVP),并描述了Prompt-tuning如何實(shí)現(xiàn)Few-shot/Zero-shot Learning,如何應(yīng)用在全監(jiān)督和半監(jiān)督場景(iPET)。PET的詳細(xì)講解可參考PET的論文解讀

PET設(shè)計了兩個很重要的組件:

  • Pattern(Template) :記作 ,即上文提到的Template,其為額外添加的帶有[mask]標(biāo)記的短文本,通常一個樣本只有一個Pattern(因?yàn)槲覀兿M挥?個讓模型預(yù)測的[mask]標(biāo)記)。上文也提到,不同的任務(wù)、不同的樣本可能會有其更加合適的pattern,因此 如何構(gòu)建合適的pattern是Prompt-Tuning的研究點(diǎn)之一 ;
  • Verbalizer :記作 ,即標(biāo)簽詞的映射,對于具體的分類任務(wù),需要選擇指定的標(biāo)簽詞(label word)。例如情感分析中,我們期望Verbalizer可能是 , (positive和negative是類標(biāo)簽)。同樣,不同的任務(wù)有其相應(yīng)的label word,但需要注意的是,Verbalizer的構(gòu)建需要取決于對應(yīng)的Pattern。因此 如何構(gòu)建Verbalizer是另一個研究挑戰(zhàn) 。
    上述兩個組件被稱為Pattern-Verbalizer-Pair(PVP),一般記作 ,在后續(xù)的大多數(shù)研究中均采用這種PVP組件。

因此基于PVP的訓(xùn)練目標(biāo)可以形式化描述:

給定一個句子 ,以及對應(yīng)的標(biāo)簽 ,給定定義的PVP組件 ,則有:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

那么會有讀者一直會思考,一般情況下,一個句子只能有一個PVP(因?yàn)槲覀冎恍枰粋€[mask]用來預(yù)測),這可能并不是最優(yōu)的,是否可以為一個句子設(shè)計多個不同的PVP呢?這是可以的,這屬于Prompt-Tuning的集成。PET提供了簡單的集成思路:

  • Patterns Ensembling :同一個句子設(shè)計多個不同的pattern,例如It was [mask].,I think it is [mask].,This comment denotes as [mask]. 等,此時,原先只有一個句子,卻可以生成多個不同的樣本,也變相起到數(shù)據(jù)增強(qiáng)的作用。在訓(xùn)練時,可以當(dāng)作單獨(dú)的樣本進(jìn)行訓(xùn)練,推理時,則可以對所有Pattern的結(jié)果進(jìn)行投票或加權(quán)。如下圖所示:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

  • Verbalizers Ensembling :同樣,在給定的某個Pattern下,并非只有1個詞可以作為label word。例如positive類,則可以選擇“great”、“nice”、“wonderful”。當(dāng)模型預(yù)測出這三個詞時,均可以判定為positive類。在訓(xùn)練和推理時,可以對所有l(wèi)abel word的預(yù)測概率進(jìn)行加權(quán)或投票處理,并最后獲得概率最大的類。如下圖所示:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

  • PVPs Ensembling(Prompt Ensembling) :Pattern和Verbalizer均進(jìn)行集成,此時同一個句子有多個Pattern,每個Pattern又對應(yīng)多個label word。如下圖所示(以2個PVP集成為例),在訓(xùn)練時可以采用加權(quán),在推理時可以采用加權(quán)或投票法:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

PET還提供了半監(jiān)督的學(xué)習(xí)方法——iterative PET(iPET),如下圖所示:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

iPET旨在先從預(yù)訓(xùn)練模型開始,初始化多個不同的模型(圖中1步驟),在有標(biāo)注的少量樣本上進(jìn)行Prompt-Tuning,然后通過多個不同的PVP訓(xùn)練得到多個不同的模型(圖中a步驟),每個模型在無標(biāo)注數(shù)據(jù)上進(jìn)行推理打標(biāo),并根據(jù)置信度篩選(圖中b步驟),根據(jù)新標(biāo)注的數(shù)據(jù)與原始標(biāo)注數(shù)據(jù)融合后,再重新進(jìn)行Prompt-Tuning(圖中c步驟),重復(fù)abc三個步驟多次后,獲得每個模型后,在測試時進(jìn)行集成投票(圖中2、3步驟)。

因此可以說,PET提供Prompt-Tuning比較成熟的框架——PVP,基于這套框架,目前的研究開始關(guān)注 如何選擇或構(gòu)建合適的Pattern和Verbalizer 。一種簡單的方法是根據(jù)特定任務(wù)的性質(zhì)和先驗(yàn)知識人工設(shè)計模板。例如上文例子中通常會選擇It was [mask]. 作為情感分析類的模板。人工構(gòu)建方法雖然直觀簡單,但是致命問題也很突出。有相關(guān)工作在實(shí)驗(yàn)中發(fā)現(xiàn),在同樣的數(shù)據(jù)集和訓(xùn)練條件下, 選擇不同的Pattern和Verbalizer會產(chǎn)生差異很大的結(jié)果 ,如下圖所示(一般情況下,Template等同于Pattern,Verbalizer等同于Label word):

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

可發(fā)現(xiàn),在相同Pattern時,選擇不同的label word對結(jié)果影響很大,同理,不同的Pattern對結(jié)果影響也很明顯,在真正應(yīng)用中,調(diào)參者需要嘗試多個不同的模板和標(biāo)簽詞以窮舉出最好的結(jié)果,并不能充分發(fā)揮Prompt簡單快捷的優(yōu)勢。因此我們總結(jié)人工設(shè)計方法的缺陷:

  • 采用人工構(gòu)建的方法成本高,需要與領(lǐng)域任務(wù)相關(guān)的先驗(yàn)知識;
  • 人工設(shè)計的Pattern和Verbalizer不能保證獲得最優(yōu)解,訓(xùn)練不穩(wěn)定,不同的PVP對結(jié)果產(chǎn)生的差異明顯,方差大;
  • 在預(yù)訓(xùn)練階段MLM任務(wù)并非完全按照PVP的模式進(jìn)行訓(xùn)練的(比如MLM訓(xùn)練通常都是長文本,mask的數(shù)量也并非只有1個,預(yù)測的概率分布也并非是有限的),因此人工構(gòu)建的Pattern和Verbalizer使得Prompt-Tuning與MLM在語義和分布上依然存在差異。

因此如何能夠自動地挑選合適的PVP?

4.2 如何挑選合適的Pattern?

自2020年底至今,學(xué)術(shù)界已經(jīng)涌現(xiàn)出一批基于Prompt-Tuning的方案試圖探索如何自動構(gòu)建PVP。本節(jié)主要總結(jié)幾種成熟的Pattern(Template)構(gòu)建方法??梢粤_列為如下幾點(diǎn):

  • 人工構(gòu)建(Manual Template) :在前文已經(jīng)描述過,不再詳細(xì)說明;
  • 啟發(fā)式法(Heuristic-based Template) :通過規(guī)則、啟發(fā)式搜索等方法構(gòu)建合適的模板;
  • 生成(Generation) :根據(jù)給定的任務(wù)訓(xùn)練數(shù)據(jù)(通常是小樣本場景),生成出合適的模板;
  • 詞向量微調(diào)(Word Embedding) :顯式地定義離散字符的模板,但在訓(xùn)練時這些模板字符的詞向量參與梯度下降,初始定義的離散字符用于作為向量的初始化;
  • 偽標(biāo)記(Pseudo Token) :不顯式地定義離散的模板,而是將模板作為可訓(xùn)練的參數(shù);

前面3種也被稱為 離散的模板構(gòu)建 法(記作 Hard Template 、 Hard Prompt Discrete Template 、 Discrete Prompt ),其旨在直接與原始文本拼接顯式離散的字符,且在訓(xùn)練中 始終保持不變 。這里的保持不變是指 這些離散字符的詞向量(Word Embedding)在訓(xùn)練過程中保持固定 。通常情況下, 離散法不需要引入任何參數(shù) 。

后面2種則被稱為 連續(xù)的模板構(gòu)建 法(記作 Soft Template Soft Prompt 、 Continuous Template Continuous Prompt ),其旨在讓模型在訓(xùn)練過程中根據(jù)具體的上下文語義和任務(wù)目標(biāo)對模板參數(shù)進(jìn)行連續(xù)可調(diào)。這套方案的動機(jī)則是認(rèn)為離散不變的模板無法參與模型的訓(xùn)練環(huán)節(jié),容易陷入局部最優(yōu),而如果將模板變?yōu)榭捎?xùn)練的參數(shù),那么不同的樣本都可以在連續(xù)的向量空間中尋找合適的偽標(biāo)記,同時也增加模型的泛化能力。因此, 連續(xù)法需要引入少量的參數(shù)并讓模型在訓(xùn)練時進(jìn)行參數(shù)更新 。

下面簡單介紹幾個經(jīng)典的方法:

4.2.1 啟發(fā)式法構(gòu)建模板

啟發(fā)式法一般是采用規(guī)則、正則化模板的方法自動構(gòu)建出相應(yīng)的Pattern,或者直接通過啟發(fā)式搜索的方法獲得Pattern。這一類方法在程序設(shè)計時只需要編寫規(guī)則和少量的模板即可快速的獲得Pattern。

給定一個具體的任務(wù)(例如分類任務(wù)),可以實(shí)現(xiàn)定義若干個模板(例如正則化工具),然后根據(jù)具體的句子內(nèi)容,向模板中填充相關(guān)實(shí)體,以貼合句子實(shí)際的描述。例如清華大學(xué)劉知遠(yuǎn)團(tuán)隊提出的 PTR (PTR: Prompt Tuning with Rules for Text Classification)利用啟發(fā)式的規(guī)則定義若干子模板(sub-prompt),并通過若干子模板的組合來形成最終的Pattern。

例如在關(guān)系抽取任務(wù)中,通常給定一個短文本,兩個實(shí)體(記作subject和object),假如給定句子“Mark Twain was the father of Langdon. ”以及兩個實(shí)體“Mark Twain”和“Landon”。那么可以定義3個子模板:

  • 頭實(shí)體(subject entity): the [mask] ,對應(yīng)于:“the [mask] Mark Twain”,可用于預(yù)測頭實(shí)體的類型;
  • 尾實(shí)體(object entity): the [mask] ,對應(yīng)于:“the [mask] Landon”,可用于尾實(shí)體的類型;
  • 實(shí)體關(guān)系(relation): ,對應(yīng)于:“Mark Twain [mask] Landon”,可用于頭尾實(shí)體關(guān)系;

基于上述定義的3個規(guī)則,則可以結(jié)合起來形成最終模板,即 ,即“the [mask] Mark Twain [mask] the [mask] Landon”。如圖所示:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

因此不論給定哪個句子,模板不會完全固定不變,而是根據(jù)不同的實(shí)體而相應(yīng)改變模板的字符序列。

相比之下, AutoPrompt 則是另一種典型的方法,其由加州大學(xué)提出《AutoPrompt: Eliciting Knowledge from Language Models with Automatically Generated Prompts(EMNLP2021),如下圖所示,給定原始的輸入,額外定義若干離散的字符作為trigger,并組成Template,喂入MLM中預(yù)測對應(yīng)label word的概率。而這些trigger最終通過梯度搜索的方法進(jìn)行挑選。

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

4.2.2 生成法構(gòu)建模板

基于規(guī)則的方法構(gòu)建的模板雖然簡單,但是這些模板都是“ 一個模子刻出來的 ”,在語義上其實(shí)挺難做到與句子貼合。因此一種策略就是 直接讓模型來生成合適的模板 ,因?yàn)槲谋旧杀举|(zhì)上就是去理解原始文本的語義,并獲得在語義上較為相關(guān)的文本。這樣不論給定什么句子,我們可以得到在語義層面上更加貼合的模板。

陳丹琦團(tuán)隊提出 LM-BFF 則作為該類方法的典范,其出自于《Making Pre-trained Language Models Better Few-shot Learners》(ACL2021)。LM-BFF提出了基于生成的方法來構(gòu)建Pattern,而給定相應(yīng)的Pattern之后,再通過搜索的方法得到相應(yīng)的Verbalizer。如下圖所示:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

首先定義一個Template的母版(有點(diǎn)類似于PTR中的含有占位符的子模板),將這些母版與原始文本拼接后喂入T5模型(T5模型屬于自回歸式的生成模型)后在<X>和<Y>占位符部分生成相應(yīng)的字符,最終形成對應(yīng)的Template。然后再基于生成的Template和label word進(jìn)行訓(xùn)練。

通過多個任務(wù)的小樣本場景測試(分類任務(wù),每個類只有16個樣本),整體觀察可發(fā)現(xiàn)這種基于生成的方法明顯比人工構(gòu)建的效果更好,如圖所示:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

LM-BFF的詳細(xì)內(nèi)容請參考博主的論文解讀:論文解讀:Making Pre-trained Language Models Better Few-shot Learners(LM-BFF)。

4.2.3 連續(xù)提示模板

不論是啟發(fā)式方法,還是通過生成的方法,都需要為每一個任務(wù)單獨(dú)設(shè)計對應(yīng)的模板,因?yàn)檫@些模板都是可讀的離散的token(這類模板我們稱作Discrete Prompt或Hard Prompt。),這導(dǎo)致很難尋找到最佳的模板。

另外,即便是同一個任務(wù),不同的句子也會有其所謂最佳的模板,而且有時候,即便是人類理解的相似的模板,也會對模型預(yù)測結(jié)果產(chǎn)生很大差異。例如下圖,以SNLI推斷任務(wù)為例,僅僅只是修改了模板,測試結(jié)果差異很明顯,因此離散的模板存在方差大、不穩(wěn)定等問題。

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

如何避免這種問題呢,一種新的 “連續(xù)提示” 被提出,稱作Continuous Prompt或Soft Prompt,其將模板轉(zhuǎn)換為可以進(jìn)行優(yōu)化的連續(xù)向量,換句話說,我們不需要顯式地指定這些模板中各個token具體是什么,而只需要在語義空間中表示一個向量即可。

這樣,不同的任務(wù)、數(shù)據(jù)可以自適應(yīng)地在語義空間中尋找若干合適的向量,來代表模板中的每一個詞,相較于顯式的token,這類token稱為 偽標(biāo)記(Pseudo Token) 。下面給出基于連續(xù)提示的模板定義:

假設(shè)針對分類任務(wù),給定一個輸入句子 ,連續(xù)提示的模板可以定義為:其中 則是偽標(biāo)記,其僅代表一個抽象的token,并沒有實(shí)際的含義,本質(zhì)上是一個向量。

基于連續(xù)提示的Prompt-Tuning的實(shí)現(xiàn)方法,以下列三篇論文為代表,分別作簡要介紹:

  • 《The Power of Scale for Parameter-Efficient Prompt Tuning》:代表方法為Prompt Tuning
  • 《GPT Understands, Too》:代表方法為P-tuning
  • 《PPT: Pre-trained Prompt Tuning for Few-shot Learning》:代表方法PPT

Prompt Tuning

該方法率先提出了偽標(biāo)記和連續(xù)提示的概念,以讓模型在能過動態(tài)地對模板在語義空間內(nèi)進(jìn)行調(diào)整,使得模板是可約的(differentiate)。形式化的描述如下:

給定 個tokens,記作 ,一個預(yù)訓(xùn)練模型對應(yīng)的embedding table,通過這個table,可以將每個token表示為一個embedding(),其中 是向量的維度(其與預(yù)訓(xùn)練模型的配置有關(guān),例如BERT-base是768)。連續(xù)模板中的每個偽標(biāo)記 可以視為參數(shù),也可以視為一個token,因此,可以通過一個embedding table獲得每個偽標(biāo)記的向量 ,然后喂入一個MLP獲得新的表征。最后,對于預(yù)訓(xùn)練模型的輸入則是同時包含 和 。

每個偽標(biāo)記的初始化可以有下列幾種情況:

  • 最簡單的是隨機(jī)初始化:即隨機(jī)初始化一個面向所有偽標(biāo)記的embedding table,可采用正態(tài)分布或者均勻分布等;
  • 每個token使用預(yù)訓(xùn)練模型已有的embedding table進(jìn)行初始化,此時,每一個偽標(biāo)記先隨機(jī)指定詞表中的一個詞,并取對應(yīng)詞的embedding作為這個偽標(biāo)記的初始化;
  • 在分類任務(wù)上,使用label word(verbalizer)對應(yīng)的embedding作為初始化,可以有效限制模型輸出的是預(yù)設(shè)的輸出類對應(yīng)的word。

因此,在訓(xùn)練過程中,每個偽標(biāo)記以及對應(yīng)的MLP參數(shù)都可以得到訓(xùn)練,對于不同的輸入句子 ,這些偽標(biāo)記對應(yīng)的embedding也各不相同,達(dá)到了預(yù)期的目的。

P-tuning

P-tuning的詳細(xì)內(nèi)容請參考博主的論文解讀:論文解讀:GPT Understands, Too。

P-tuning是另一個具有代表性的連續(xù)提示方法,方法圖如下所示(圖中的 等價于上文的 ,表示偽標(biāo)記)。

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

其在Prompt Tuning方法上主要做出三個改進(jìn):

  • 考慮到這些偽標(biāo)記的相互依賴關(guān)系 :認(rèn)為 與 是有先后關(guān)系的,而transformer無法顯式地刻畫這層關(guān)系,因此引入Prompt Encoder,實(shí)際過程中采用一層RNN;
  • 指定上下文詞 :如果模板全部是偽標(biāo)記,在訓(xùn)練時無法很好地控制這些模板朝著與對應(yīng)句子相似的語義上優(yōu)化,因此選定部分具有與當(dāng)前句子語義代表性的一些詞作為一些偽標(biāo)記的初始化(例如上圖中“capital”、“Britain”等);
  • 重參數(shù)(Reparameterization) :具體到代碼實(shí)現(xiàn)上,P-tuning先通過一個Prompt Encoder表征這些偽標(biāo)記后,直接將這些新的表征覆蓋到對應(yīng)的embedding table上,換句話說,Prompt Encoder只在訓(xùn)練時候會使用到,而在推理階段則不再使用。
  • 混合提示(Hydride Prompt) :將連續(xù)提示與離散token進(jìn)行混合,例如

PPT(Pre-trained Prompt Tuning)

Prompt-Tuning通常適用于低資源場景,但是由于連續(xù)的模板是隨機(jī)初始化的,即其存在新的參數(shù),少量樣本可能依然很難確保這些模板被很好地優(yōu)化。因此簡單的方法就是對這些連續(xù)的模板進(jìn)行預(yù)訓(xùn)練。PPT旨在通過先讓這些連續(xù)提示在大量無標(biāo)注的預(yù)訓(xùn)練語料進(jìn)行預(yù)訓(xùn)練,然后將其加載到對應(yīng)下游任務(wù)的PLM上進(jìn)行訓(xùn)練,如下圖所示(圖中的 即連續(xù)的提示模板,$$ 并表示為mask token):

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

  • 首先在大量無標(biāo)注語料上進(jìn)行預(yù)訓(xùn)練,獲得訓(xùn)練好的連續(xù)提示;
  • 對下游任務(wù)(是非問答、NLI、文本匹配等),加載這些訓(xùn)練好的提示之后,進(jìn)行微調(diào),或者直接進(jìn)行zero-shot預(yù)測。

下圖對幾種template優(yōu)化進(jìn)行的對比。

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

4.2.4 Template優(yōu)化進(jìn)階

我們?yōu)槿蝿?wù)設(shè)計的模板都是建立在一個假設(shè)上:即模板都是盡可能是可讀的,即滿足人類語言的語法形態(tài)。然而最近也有工作認(rèn)為,最優(yōu)的模板可能是不符合語法的亂語 (Ungrammatical Gibberish Text),即人類可讀的模板,模型也許不可讀。雖然這很反直覺,但是我們不能否認(rèn)這種情況的存在。論文《RLPROMPT: Optimizing Discrete Text Prompts with Reinforcement Learning》給出了相應(yīng)的發(fā)現(xiàn),并提出了一種基于強(qiáng)化學(xué)習(xí)的方法RLPROMPT來尋找最優(yōu)的模板。

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

上圖為RLPROMPT框架,左側(cè)為策略網(wǎng)絡(luò),右側(cè)分別為雙向預(yù)訓(xùn)練模型(Masked LM)和生成式預(yù)訓(xùn)練模型(Left-to-Right LM),分別對應(yīng)于分類任務(wù)和生成任務(wù)。RLPROMPT的原理如下:

Step1 :給定一個句子(例如“I have ...”),一個 [mask] token,以及一個用于待生成的模板占位符 [Prompt]。

Step2 :如果是分類任務(wù),則將輸入句子喂入一個雙向語言模型中獲得 [mask] 位置的預(yù)測token,并通過verbalizer映射到對應(yīng)類別的概率分布,如果是在訓(xùn)練階段,真實(shí)標(biāo)簽是已知的,其概率可以作為當(dāng)前模板的反饋(reward)。如果是生成任務(wù),則喂入生成模型中,獲得生成token的預(yù)測概率(或者其他文本生成的指標(biāo))并作為反饋。

Step3 :根據(jù)當(dāng)前的反饋,使用強(qiáng)化學(xué)習(xí)的policy gradient方法訓(xùn)練一個決策函數(shù)?;谶@個決策函數(shù)可以對[Prompt]生成一個離散的模板詞。決策函數(shù)本質(zhì)上是一個預(yù)訓(xùn)練語言模型,通過LM head來生成一個token。

Step4 :生成一個模板詞之后,重復(fù)Step2~Step3,直到生成足夠的模板詞。

基于RLPROMPT,最終可以得到一些離散的模板,相比連續(xù)的提示更加有解釋性。取幾個常用的評測任務(wù),對比不同方法生成的模板的區(qū)別:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

4.3 如何挑選合適的Verbalizer?

除了Template以外,Verbalizer是直接關(guān)系到預(yù)測的結(jié)果是什么,不同的Verbalizer會對最終預(yù)測效果產(chǎn)生較大的影響,不同的任務(wù)會有不同的合適的label word。例如在電影評論任務(wù)中,positive類別的label word比較合適的是wonderful,而在美食點(diǎn)評任務(wù)中,positive比較合適的是testy。因此label word的選擇也是Prompt-Tuning中關(guān)鍵的部分。如下圖所示,以SST-2為例,相同的模板條件下,不同的label word對應(yīng)的指標(biāo)差異很大。

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

傳統(tǒng)的方法是人工設(shè)計(Manual Design),即可以根據(jù)對每個任務(wù)的經(jīng)驗(yàn)來人工指定這些label word。但是人工設(shè)計需要依賴大量的人力,且對于一些具有專業(yè)性的任務(wù)還需要依賴于專家,使得Prompt-Tuning的效率很低。

為了緩解這個問題,一些工作開始研究如何根據(jù)不同的任務(wù)自動地選擇合適的label word。受到Template的離散和連續(xù)兩種類型優(yōu)化的啟示,Verbalizer也可以分為離散和連續(xù)兩種類型。本文分別介紹兩個具有代表性的工作:

  • 領(lǐng)域知識指導(dǎo)搜索離散的label word:《Knowledgeable Prompt-tuning:
    Incorporating Knowledge into Prompt Verbalizer for Text Classification》,代表方法為KPT;
  • 原型網(wǎng)絡(luò)動態(tài)生成label representations:《Prototypical Verbalizer for Prompt-based Few-shot Tuning》,代表方法為ProtoVerb。

KPT(Knowledgeable Prompt Tuning)

KPT的詳細(xì)內(nèi)容請參考博主的論文解讀:論文解讀:Knowledgeable Prompt-tuning: Incorporation Knowledge into Prompt Verbalizer for Text Classification。

針對不同的任務(wù),都有其相應(yīng)的領(lǐng)域知識,為了避免人工選擇label word,該方法提出基于知識圖譜增強(qiáng)的方法,如下圖所示:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

具體思路如下:

  • 首先通過一些已有的字典工具,從詞表中獲得與給定label相關(guān)的詞。如何建模這種相關(guān)性呢,該方法引入知識庫,依賴于知識庫中的三元組來衡量。例如SCIENCE在知識庫中是一個實(shí)體,與該實(shí)體存在多挑關(guān)系的詞可能有science、mathematics等等;
  • 第一步可以獲得大量的詞,但是也容易引入噪聲,因此需要進(jìn)行提煉(Refine),可以設(shè)計一系列的啟發(fā)式方法來度量每個詞與label的相關(guān)度,最后獲得指定數(shù)量的若干個合適的label word;
  • 對于選定的label word,采用Verbalizaer集成的方法獲得最終的預(yù)測結(jié)果。

ProtoVerb

回顧在Template的構(gòu)建中,離散的模板是無法在訓(xùn)練過程中被優(yōu)化的,從而引入了連續(xù)的模板。同理,離散label word也是只能在訓(xùn)練之前被指定,而在后續(xù)訓(xùn)練中無法被改變。因此,為了讓label word也可以自適應(yīng)的變化,提出連續(xù)的label word。

ProtoVerb巧妙的運(yùn)用了原型網(wǎng)絡(luò)(Prototypical Network)的思路,將每個類別的所有樣本的表征的期望作為該類的原型向量,并使用該原型向量代替連續(xù)的label word。

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

如上圖,以新聞分類為例,首先定義固定的模板“A [mask] news.”,并拼接到原始的輸入句子上。喂入BERT模型中,獲得 [mask] 位置的表征向量代表句子向量。在訓(xùn)練過程中的label是已知的,所以可以求得同一label對應(yīng)所有句子向量的均值來表示這個label的表征(圖中的五角星)。

在測試階段,則只需要計算測試句子的表征與各個類別的原型向量的相似度,并取最大相似度對應(yīng)的label作為預(yù)測結(jié)果。

通過這種連續(xù)的label word,基本避免了顯式獲取label word的過程,使得模型的訓(xùn)練一氣呵成。相似的做法也在《PromptBERT: Improving BERT Sentence Embeddings with Prompts》中被提及。

5 Prompt-Tuning的本質(zhì)

前面章節(jié)介紹了大量與Prompt相關(guān)的內(nèi)容,我們可以發(fā)現(xiàn),最初的Prompt Tuning是旨在設(shè)計Template和Verbalizer(即Pattern-Verbalizer Pair)來解決基于預(yù)訓(xùn)練模型的小樣本文本分類,然而事實(shí)上,NLP領(lǐng)域涉及到很多除了分類以外其他大量復(fù)雜的任務(wù),例如抽取、問答、生成、翻譯等。這些任務(wù)都有獨(dú)特的任務(wù)特性,并不是簡單的PVP就可以解決的,因而, 我們需要提煉出Prompt Tuning的本質(zhì),將Prompt Tuning升華到一種更加通用的范式上 。

博主根據(jù)對Prompt-Tuning兩年多的研究經(jīng)驗(yàn),總結(jié)了三個關(guān)于Prompt的本質(zhì),如下:

  • Prompt的本質(zhì)是一種對任務(wù)的指令;
  • Prompt的本質(zhì)是一種對預(yù)訓(xùn)練任務(wù)的復(fù)用;
  • Prompt的本質(zhì)是一種參數(shù)有效性學(xué)習(xí);

5.1 Prompt是一種針對任務(wù)的指令

Prompt本質(zhì)上是對下游任務(wù)的指令,可以作為一種信息增強(qiáng) 。

簡單的來說,就是告訴模型需要做什么任務(wù),輸出什么內(nèi)容。上文我們提及到的離散或連續(xù)的模板,本質(zhì)上就是一種對任務(wù)的提示。當(dāng)數(shù)據(jù)集不同(乃至樣本不同)的時候,我們期望模型能夠自適應(yīng)的選擇不同的模板,這也相當(dāng)于說不同的任務(wù)會有其對應(yīng)的提示信息。

例如在對電影評論進(jìn)行二分類的時候,最簡單的提示模板是“. It was [mask].”,但是其并沒有突出該任務(wù)的具體特性,我們可以為其設(shè)計一個能夠突出該任務(wù)特性的模板,例如“The movie review is . It was [mask].”,然后根據(jù)mask位置的輸出結(jié)果通過Verbalizer映射到具體的標(biāo)簽上。這一類具備任務(wù)特性的模板可以稱之為 指令(Instruction) 。

下面展示幾個任務(wù)設(shè)計的指令模板:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

看似設(shè)計指令是一件容易的事情,但是在真實(shí)使用過程中,預(yù)訓(xùn)練模型很難“理解”這些指令,根據(jù)最近研究工作發(fā)現(xiàn),主要總結(jié)如下幾個原因:

  • 預(yù)訓(xùn)練模型不夠大 :我們常使用的BERT-base、BERT-large、RoBERTa-base和RoBERTa-large只有不到10億參數(shù),相比于現(xiàn)如今GPT-3、OPT等只能算作小模型,有工作發(fā)現(xiàn),小模型在進(jìn)行Prompt Tuning的時候會比Fine-tuning效果差,是因?yàn)樾∧P秃苋菀资艿侥0宓挠绊?/li>
對比一下傳統(tǒng)的Fine-tuning,每個樣本的輸入幾乎都是不同的,然而基于Prompt的方法中,所有的樣本輸入都會包含相同的指令,這就導(dǎo)致小模型很容易受到這些指令帶來的干擾。
  • 缺乏指令相關(guān)的訓(xùn)練 :這些小模型在預(yù)訓(xùn)練階段沒有專門學(xué)習(xí)過如何理解一些特殊的指令。
我們回顧一下上面章節(jié),不論是生成離散的模板還是連續(xù)的模板,都是在向現(xiàn)有的預(yù)訓(xùn)練語言模型進(jìn)行“妥協(xié)”,即找到能夠讓當(dāng)前預(yù)訓(xùn)練語言模型在小樣本上效果最好的模板,或者說是站在已有預(yù)訓(xùn)練模型的基礎(chǔ)上尋找模板。然而這種尋找到的模板不可讀也不可解釋,或者過于通用,不具備任務(wù)特性,無法很好地在真實(shí)場景下使用。因此,我們需要的是先設(shè)計好任務(wù)相關(guān)的指令,使得這些指令是可讀的,可在真實(shí)場景下使用的。不過由于預(yù)訓(xùn)練模型沒見過這些指令,所以很難在小樣本上快速理解它們。

也許讀者想到了前面所講到的Pre-trained Prompt Tuning(PPT),即再次對預(yù)訓(xùn)練語言模型進(jìn)行一次Continual Pre-training。然而我們忽略了一點(diǎn),即 我們期望預(yù)訓(xùn)練模型不止是在我們已經(jīng)設(shè)計好的指令上進(jìn)行學(xué)習(xí),還應(yīng)該在未知的指令上具備一定的泛化性能 ,也就是說在一個完全新的任務(wù)上,只需要少量樣本(甚至是零樣本),也能過很好地理解這個指令。

為了達(dá)到這個目的,最常用的方法是 元學(xué)習(xí)(Meta Learning) ,我們介紹幾個代表性的工作:

  • 《TransPrompt: Towards an Automatic Transferable Prompting Framework for Few-shot Text Classification》:代表方法TransPrompt,利用遷移學(xué)習(xí)提升預(yù)訓(xùn)練語言模型在不同類型任務(wù)上的泛化性能;
  • 《Adapting Language Models for Zero-shot Learning by Meta-tuning on Dataset and Prompt Collections》:代表方法:MPT,統(tǒng)一分類任務(wù)范式,并采用元學(xué)習(xí)進(jìn)行訓(xùn)練;

TransPrompt

該方法是面向連續(xù)提示模板的,其對P-tuning做了如下幾個改進(jìn):

  • 引入Cross-task Learning :原來P-tuning只對單一任務(wù)進(jìn)行Prompt Tuning,而TransPrompt則對同一類別多個任務(wù)進(jìn)行Cross-task Learning。例如情感分析有SST-2、MR和CR三個任務(wù),則為每一個任務(wù)設(shè)計一個Task-specific Prompt Encoder。為了捕捉任務(wù)之間的共同知識,也額外設(shè)計以惡搞Universal Prompt Encoder。
在訓(xùn)練過程中,所有任務(wù)的數(shù)據(jù)集樣本直接混合起來,每一個樣本都會對應(yīng)一個任務(wù)的標(biāo)記。在喂入模型時,一個batch內(nèi)會有來自多個任務(wù)的樣本,根據(jù)任務(wù)類型的標(biāo)記,分別使用對應(yīng)的Task-specific Prompt Encoder來表征連續(xù)的模板,所有的樣本都喂入Universal Prompt Encoder以獲得通用的連續(xù)模板。
  • 引入去偏(De-basing)技術(shù) :不論是小樣本還是全量數(shù)據(jù),即便是統(tǒng)計分布上完全一致,不同的任務(wù)的難易程度是不一樣的,因此模型在訓(xùn)練的時候可能極易偏向于一些簡單任務(wù)。為了確保任務(wù)之間訓(xùn)練的平衡性,引入兩個去偏技術(shù),分別是Prototypical-based Debiasing和Entropy-based Debiasing,具體的做法詳見原文。

Meta Prompt Tuning(MPT)

該方法是面向離散的提示,其主要關(guān)注于文本分類任務(wù),但是不同的是,其對分類的范式進(jìn)行了一些轉(zhuǎn)換,將所有分類任務(wù)定義為“Yes/No”問題,下面對比一下兩種不同的范式:

傳統(tǒng)的多類分類范式 :假設(shè)一個分類任務(wù)有 個類別,一般情況下,一個句子 將會對應(yīng)一個樣本 ,其中 是 類中的一個; Yes/No分類范式 :假設(shè)一個分類任務(wù)有 個類別,將每一個句子和類別作為一個整體,來判斷它們之間是否匹配,即,得到一個新的樣本 。這樣的話,一個句子 將會對應(yīng) 個樣本?;赮es/No范式,不論類別有多少,都可以轉(zhuǎn)換為統(tǒng)一的Yes/No分類,從而不同類別的分類任務(wù)也可以混合起來進(jìn)行訓(xùn)練。

在轉(zhuǎn)換范式的時候,會發(fā)現(xiàn)輸入的句子需要融合標(biāo)簽,因此需要涉及到為不同標(biāo)簽設(shè)計對應(yīng)的指令。如下圖所示,對于情感分析任務(wù),輸入的句子是“=A total waste of time”,給定一個標(biāo)簽“Positive”,對應(yīng)的指令則是“Is the review positive?”。整體的輸入是 “. Is the review positive? Answer: [mask].”。此時我們只需要約束mask位置的輸出是Yes和No即可,例如概例子中No的概率最大

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

由于進(jìn)行了范式轉(zhuǎn)換,不論是情感分析,還是問題分類、主題分類,所有分類任務(wù)都可以“一視同仁”。因此可以采用元學(xué)習(xí)的方法,如上圖,讓模型在四個任務(wù)上進(jìn)行Multi-task Training,然后利用元學(xué)習(xí)技術(shù)(例如MAML)將知識遷移到新的任務(wù)上,最后在這個新的任務(wù)上進(jìn)行驗(yàn)證。

MPT的優(yōu)點(diǎn)是可以實(shí)現(xiàn)范式統(tǒng)一,這對后續(xù)基于Prompt的超大規(guī)模多任務(wù)訓(xùn)練奠定基礎(chǔ),但是其缺點(diǎn)也很突出,即需要為不同任務(wù)不同類別設(shè)計對應(yīng)的指令。

5.2 復(fù)用預(yù)訓(xùn)練目標(biāo)——實(shí)現(xiàn)基于Prompt的統(tǒng)一范式

我們需要思考,上述所講的內(nèi)容為什么要設(shè)計Template(和Verbalizer)?為什么都要包含mask token?

回顧第一節(jié)我們介紹的幾個預(yù)訓(xùn)練語言模型,我們發(fā)現(xiàn)目前絕大多數(shù)的雙向預(yù)訓(xùn)練語言模型都包含Masked Language Modeling(MLM),單向預(yù)訓(xùn)練語言模型都包含Autoregressive Language Modeling(ALM),這些任務(wù)是預(yù)訓(xùn)練目標(biāo),本質(zhì)上是預(yù)測被mask的位置的詞,在訓(xùn)練時讓模型理解語言的上下文信息。之所以設(shè)計Template和指令,就是希望在下游任務(wù)時能夠復(fù)用這些預(yù)訓(xùn)練的目標(biāo),避免引入新的參數(shù)而導(dǎo)致過擬合。因此,我們可以將Prompt升華到一個新的高度,即 Prompt Tuning的本質(zhì)是復(fù)用預(yù)訓(xùn)練語言模型在預(yù)訓(xùn)練階段所使用的目標(biāo)和參數(shù) 。

基于Huggingface的預(yù)訓(xùn)練模型倉庫中,我們一般稱之為LMhead,本質(zhì)上就是一個MLP,輸入為一個大小為[batch_size, sequence_length, hidden_size]的張量,輸出為[batch_size, sequence_length, vocab_size]的概率分布。

由于絕大多數(shù)的語言模型都采用MLM或ALM進(jìn)行訓(xùn)練,所以我們現(xiàn)如今所看到的大多數(shù)基于Prompt的分類都要設(shè)計Template和Verbalizer。那么我們是否可以極大化地利用MLM和ALM的先驗(yàn)知識在不同的下游任務(wù)上獲得更好的表現(xiàn)?是否可以設(shè)計一個全新的預(yù)訓(xùn)練任務(wù)來滿足一些下游任務(wù)的需求呢?

我們介紹兩個充分利用這個思想的方法:

  • 萬物皆可生成 :將所有任務(wù)統(tǒng)一為文本生成,極大化利用單向語言模型目標(biāo);
  • 萬物皆可抽取 :將所有任務(wù)統(tǒng)一為抽取式閱讀理解,并設(shè)計抽取式預(yù)訓(xùn)練目標(biāo);
  • 萬物皆可推理 :將所有任務(wù)建模為自然語言推斷(Natural Language Inference)或相似度匹配任務(wù)。

5.2.1 萬物皆可生成——基于生成的Prompt范式統(tǒng)一

在含有單向Transformer的語言模型中(例如GPT、BART),都包含自回歸訓(xùn)練目標(biāo),即基于上一個token來預(yù)測當(dāng)前的token,而雙向語言模型中的MLM可以視為只生成一個token的自回歸模型。

為此,我們則可以將分類任務(wù)視為一種特殊的文本生成,并配上Verbalizer,這樣,所有的NLP任務(wù)都可以統(tǒng)一為生成任務(wù)。針對不同的任務(wù),只需要提供對應(yīng)的指令和模板即可(由于是使用單向語言模型,因此沒有mask token,需要生成的部分置于文本末尾)。下面給出幾個示例:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

利用此思想,有很多工作致力于通過Prompt與生成的思想將各類任務(wù)進(jìn)行統(tǒng)一。以問答領(lǐng)域?yàn)槔?,問答包括生成式問答、抽取式問答、多?xiàng)選擇等,我們可以將各種類型的問答建模為生成任務(wù)。

典型的方法例如:《UNIFIEDQA: Crossing format boundaries with a single QA system》、《ProQA- Structural Prompt-based Pre-training for Unified Question Answering》,其采用端到端的預(yù)訓(xùn)練語言模型(例如BART、T5),并復(fù)用預(yù)訓(xùn)練階段的訓(xùn)練目標(biāo)。

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

最近大火的ChatGPT則是基于“萬物皆可生成”的思想,將單向語言模型的ALM發(fā)揮到極致,實(shí)現(xiàn)對所有任務(wù)的大一統(tǒng),與之為代表的還有In-Context Learning、Instruction-Tuning和Chain-of-Thought,將在第5章節(jié)介紹。

5.2.1 萬物皆可抽取——基于抽取式閱讀理解的Prompt范式統(tǒng)一

基于生成的方法存在兩個缺點(diǎn):

  • 必須讓待生成的部分置于文本末尾,此時會約束指令和模板的設(shè)計,不利于靈活運(yùn)用;
  • 由于是開放式生成,生成的內(nèi)容無法控制,且依賴于文本的長度等;
  • 對于一些具有條件限制的任務(wù),例如多項(xiàng)選擇、信息抽取等,生成的內(nèi)容或許不符合這些條件。例如在做實(shí)體抽取的時候,需要確保生成的實(shí)體是在文本中出現(xiàn)的。

為此,“萬物皆可抽取”的思想可以解決此類問題,其思想指將所有自然語言理解任務(wù)轉(zhuǎn)換為抽取式閱讀理解的形式,下面給出形式化的定義:

抽取式閱讀理解(Extractive MRC) :給定一個問題(Question) ,一篇文章或文本(Passage) ,其中 分別表示Question和Passage的token, 分別表示Question和Passage的長度。任務(wù)的目標(biāo)是根據(jù)Question,在Passage中尋找一個區(qū)間 作為答案 ,。

除了抽取式閱讀理解任務(wù)外,其他NLP任務(wù)如何轉(zhuǎn)換為這個形式呢?本質(zhì)上還是在如何設(shè)計模板和指令。下面給出幾個事例:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

可以發(fā)現(xiàn),如果是分類型的任務(wù),只需要通過指令和模板的形式將所有類別羅列起來即可。在訓(xùn)練時,可以采用兩種方法:

  • 設(shè)計抽取式預(yù)訓(xùn)練目標(biāo),在無標(biāo)注語料上進(jìn)行自監(jiān)督訓(xùn)練;
  • 按照閱讀理解的形式統(tǒng)一所有任務(wù)范式,并混合所有任務(wù)進(jìn)行Cross-task Learning,再在新的任務(wù)上進(jìn)行測試。

經(jīng)典的方法比如《Unifying Question Answering, Text Classification, and Regression via Span Extraction》,蘇劍林提出的Global Pointer。博主也運(yùn)用該思想在2022年AIWIN春季賽“中文保險小樣本”中獲得第二名成績。

基于MRC的范式統(tǒng)一方法則是提出新的預(yù)訓(xùn)練目標(biāo)——區(qū)間抽取,并巧妙的集成了一些比較復(fù)雜的任務(wù),例如實(shí)體識別,同時抽取式方法也可以很好地運(yùn)用在多標(biāo)簽分類問題上,同理,實(shí)體識別和多區(qū)間抽取QA也屬于類似多標(biāo)簽問題,即需要抽取出數(shù)量不等的區(qū)間。但是缺點(diǎn)是無法運(yùn)用到生成問題上,且依賴于候選項(xiàng)。

5.2.3 萬物皆可推理——基于NLI的Prompt范式統(tǒng)一

另外一個方法則是將所有任務(wù)建模為NLI形式,其與上文介紹的MPT比較類似,除了MPT以外,《Entailment as Few-Shot Learner》(EFL)和NSP-BERT也是類似的方法,其思想是復(fù)用BERT中的Next Sentence Prediction(NSP)的預(yù)訓(xùn)練目標(biāo)。下面給出幾個事例:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

通常可以直接使用NSP對應(yīng)的LMhead進(jìn)行微調(diào),在訓(xùn)練過程中還需要考慮如何進(jìn)行負(fù)采樣,一般方法是直接選擇其他類別作為負(fù)樣本。

例如一個分類問題中有 個類別。給定一個句子有對應(yīng) 個正確的類別(ground truth),當(dāng) 時就是單標(biāo)簽的分類, 則是多標(biāo)簽分類。那么每個句子就可以得到 個正樣本(即輸入句子與對應(yīng)標(biāo)簽是蘊(yùn)含關(guān)系的)和 個負(fù)樣本。在訓(xùn)練的時候,則可以構(gòu)建一個句子-類別矩陣 ,其中 表示第 個句子與第 個類別是否存在蘊(yùn)含關(guān)系。

下圖給出傳統(tǒng)Fine-tuning(圖(a))、基于MLM的Prompt-Tuning(圖(b))和基于NLI的Prompt-Tuning(圖(c))的對比:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

可以發(fā)現(xiàn),兩種Prompt-Tuning方法的共同點(diǎn)是都是復(fù)用了預(yù)訓(xùn)練階段所使用的目標(biāo)和參數(shù),不同點(diǎn)是對任務(wù)建模的方式和指令模板的設(shè)計有所不同。在復(fù)用NSP時,則需要羅列所有的類別并與輸入樣本做拼接,從而將多類分類問題轉(zhuǎn)換為判斷輸入與標(biāo)簽是否存在蘊(yùn)含關(guān)系(Entailment)。

另外,該思想也在最近大火的多模態(tài)模型CLIP模型中應(yīng)用,通過設(shè)計Prompt的形式對文本和圖像進(jìn)行匹配,并設(shè)計對比學(xué)習(xí)目標(biāo)進(jìn)行預(yù)訓(xùn)練。

5.3 Prompt的本質(zhì)是參數(shù)有效性學(xué)習(xí)

根據(jù)前文的講解,我們可以發(fā)現(xiàn),實(shí)現(xiàn)Prompt-Tuning只需要考慮如何設(shè)計模板或指令,而模型和訓(xùn)練目標(biāo)則都是復(fù)用預(yù)訓(xùn)練階段的,即在整個訓(xùn)練過程中,無須添加任何參數(shù)(或只需要添加非常少量的與模板有關(guān)的參數(shù)),而其他參數(shù)都是訓(xùn)練好的?;谶@個思想,我們再一次將Prompt升華到更高的層面—— Prompt的本質(zhì)是參數(shù)有效性學(xué)習(xí)(Parameter-Efficient Learning,PEL) 。

參數(shù)有效性學(xué)習(xí)的背景 :在一般的計算資源條件下,大規(guī)模的模型(例如GPT-3)很難再進(jìn)行微調(diào),因?yàn)樗械膮?shù)都需要計算梯度并進(jìn)行更新,消耗時間和空間資源。為了解決這個問題,參數(shù)有效性學(xué)習(xí)被提出,其旨在確保模型效果不受太大影響的條件下盡可能地提高訓(xùn)練的時間和空間效率。 參數(shù)有效性訓(xùn)練 :在參數(shù)有效性學(xué)習(xí)過程中,大模型中只需要指定或額外添加少量的可訓(xùn)練參數(shù),而其余的參數(shù)全部凍結(jié),這樣可以大大提高模型的訓(xùn)練效率的同時,確保指標(biāo)不會受到太大影響。

常見經(jīng)典的參數(shù)有效性學(xué)習(xí)有Adapter-Tuning、Prefix-Tuning、BitFit。下面進(jìn)行簡單的介紹。

5.3.1 Adapter-Tuning

Adapter-Tuning在2019年提出,其面向預(yù)訓(xùn)練語言模型的參數(shù)有效性學(xué)習(xí)。在多層Transformer模型中,在微調(diào)過程中所有的參數(shù)都需要更新,顯然并不是有效的。為了提高效率,該方法提出固定Transformer的全部參數(shù),然后在Transformer的每一個Block里嵌入一些新初始化的Adapter Network。如下圖所示:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

Adapter位于Feed-Forward Layer之后、殘差連接之前。Adapter本質(zhì)上就是兩層MLP,分別負(fù)責(zé)將Transformer的表征降維和升維(右圖)。基于Adapter的方法, 只需要添加不到5%的可訓(xùn)練參數(shù),即可以幾乎達(dá)到全參數(shù)訓(xùn)練的效果 ,在訓(xùn)練過程中大大節(jié)省了訓(xùn)練時間,做到時間有效性。因此在真實(shí)場景應(yīng)用時, 不同的任務(wù)我們不需要重新對整個預(yù)訓(xùn)練模型進(jìn)行微調(diào),我們只需要保存Adapter即可 ,而預(yù)訓(xùn)練模型的其他參數(shù)都是原始預(yù)訓(xùn)練的,這樣就做到了空間的有效性。

5.3.2 Prefix-Tuning

Prefix-Tuning也是很經(jīng)典的參數(shù)有效性學(xué)習(xí),其是受到Prompt-Tuning的啟發(fā)。我們說Prompt-Tuning的本質(zhì)是參數(shù)有效性學(xué)習(xí),是因?yàn)檎麄€預(yù)訓(xùn)練模型參數(shù)可以全部固定,只需要對Template對應(yīng)的少量參數(shù)(例如連續(xù)模板的Prompt Encoder、偽標(biāo)記對應(yīng)的Embedding等)進(jìn)行訓(xùn)練。在Prefix-Tuning中,則是除了對輸入層添加模板外,還對Transformer的每一層添加“模板”。Prefix-Tuning與傳統(tǒng)Fine-tuning的對比圖如下所示:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

可以看到,Transformer的參數(shù)完全固定,而我們只需要對Prefix部分進(jìn)行訓(xùn)練即可,對于不同的任務(wù)訓(xùn)練不同的Prefix,在實(shí)際使用時,挑選任務(wù)相關(guān)的Prefix和Transformer進(jìn)行組裝,實(shí)現(xiàn)可插拔式的應(yīng)用。

與Prefix-Tuning類似的方法還有P-tuning V2,不同之處在于Prefix-Tuning是面向文本生成領(lǐng)域的,P-tuning V2面向自然語言理解。但本質(zhì)上完全相同。下圖針對Prefix-tuning(P-tuning V2)與Prompt-Tuning對比(黃色部分表示可訓(xùn)練的參數(shù),藍(lán)色表示被凍結(jié)的參數(shù)):

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

左圖表示的是基于連續(xù)提示的Prompt-Tuning(例如P-tuning),我們可以發(fā)現(xiàn)只有輸入層對應(yīng)模板部分的Embedding和MLP參數(shù)是可訓(xùn)練的,右圖部分表示Prefix-Tuning(P-tuning V2),Transformer的每一層的前綴部分也是可訓(xùn)練的,可以抽象的認(rèn)為是在每一層添加了連續(xù)的模板。但是實(shí)際上,Prefix-Tuning(P-tuning V2)并不是真正的在每一層添加模板,而是通過HuggingFace框架內(nèi)置的past_key_value參數(shù)控制。其本質(zhì)上與Adapter類似,是在Transformer內(nèi)部對Key和Value插入可訓(xùn)練的兩個MLP。

有相關(guān)工作對Adapter、Prefix-Tuning、LoRA等參數(shù)有效性學(xué)習(xí)進(jìn)行了集成,因?yàn)?strong> 這些參數(shù)有效性學(xué)習(xí)方法本質(zhì)上都是插入少量的新的參數(shù),這些新的參數(shù)可以對預(yù)訓(xùn)練模型起到提示作用,只不過并不是以人類可讀的離散的模板形式體現(xiàn)而已 。

下圖是《UniPELT: A Unified Framework for Parameter-Efficient Language Model Tuning》提出將這些參數(shù)有效性方法進(jìn)行統(tǒng)一,提出UniPELT框架:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

5.3.3 BitFit

BitFit的思想更簡單,其不需要對預(yù)訓(xùn)練模型做任何改動,只需要指定神經(jīng)網(wǎng)絡(luò)中的偏向(Bias)為可訓(xùn)練參數(shù)即可,BitFit的參數(shù)量只有不到2%,但是實(shí)驗(yàn)效果可以接近全量參數(shù)。

介紹了上述的一些參數(shù)有效性方法,我們發(fā)現(xiàn),Prompt-Tuning也符合其主旨?;趨?shù)有效性的思想,也有許多工作致力于Prompt與參數(shù)有效性的結(jié)合,例如《Delta Tuning: A Comprehensive Study of Parameter Efficient Methods for Pre-trained Language Models》、《LiST: Lite Prompted Self-training Makes Parameter-efficient Few-shot Learners》、《Making Parameter-efficient Tuning More Efficient: A Unified Framework for Classification Tasks》、《P-Adapters- Robustly Extracting Factual Information from Language Models with Diverse Prompts》、《Context-Tuning: Learning Contextualized Prompts for Natural Language Generation》,由于相關(guān)工作非常多而且更新頻繁,這里不一一介紹。

6 面向超大規(guī)模模型的Prompt-Tuning

Prompt-Tuning發(fā)展的兩年來,有諸多工作發(fā)現(xiàn),對于超過10億參數(shù)量的模型來說,Prompt-Tuning所帶來的增益遠(yuǎn)遠(yuǎn)高于標(biāo)準(zhǔn)的Fine-tuning,小樣本甚至是零樣本的性能也能夠極大地被激發(fā)出來,得益于這些模型的 參數(shù)量足夠大 ,訓(xùn)練過程中使用了 足夠多的語料 ,同時設(shè)計的 預(yù)訓(xùn)練任務(wù)足夠有效 。最為經(jīng)典的大規(guī)模語言模型則是2020年提出的GPT-3,其擁有大約1750億的參數(shù),且發(fā)現(xiàn)只需要設(shè)計合適的模板或指令即可以 實(shí)現(xiàn)免參數(shù)訓(xùn)練的零樣本學(xué)習(xí) 。

2022年底到2023年初,國內(nèi)外也掀起了AIGC的浪潮,典型代表是OpenAI發(fā)布的ChatGPT、GPT-4大模型,Google發(fā)布的Bard以及百度公司發(fā)布的文心一言等。超大規(guī)模模型進(jìn)入新的紀(jì)元,而這些轟動世界的產(chǎn)物,離不開強(qiáng)大的Prompt-Tuning技術(shù)。本文默認(rèn)以GPT-3為例,介紹幾個面向超大規(guī)模的Prompt-Tuning方法,分別為:

  • 上下文學(xué)習(xí) In-Context Learning(ICL) :直接挑選少量的訓(xùn)練樣本作為該任務(wù)的提示;
  • 指令學(xué)習(xí) Instruction-tuning :構(gòu)建任務(wù)指令集,促使模型根據(jù)任務(wù)指令做出反饋;
  • 思維鏈 Chain-of-Thought(CoT) :給予或激發(fā)模型具有推理和解釋的信息,通過線性鏈?zhǔn)降哪J街笇?dǎo)模型生成合理的結(jié)果。

6.1 In-Context Learning(上下文學(xué)習(xí))

In-Context learning(ICL)最早在GPT-3中提出, 旨在從訓(xùn)練集中挑選少量的標(biāo)注樣本,設(shè)計任務(wù)相關(guān)的指令形成提示模板,用于指導(dǎo)測試樣本生成相應(yīng)的結(jié)果 。ICT的工作原理如下所示:

In-Context Learning形式化定義 :給定一個訓(xùn)練集 和一個測試集 (因?yàn)镮CT不涉及參數(shù)更新,所以一般情況下無需驗(yàn)證集),給定該任務(wù)的指令模板 ,給定一個預(yù)訓(xùn)練模型記作 。任務(wù)的目標(biāo)是從訓(xùn)練集 中采樣 個訓(xùn)練樣本 (稱作 In-Context Examples ),根據(jù)指令模板 ,將這 個訓(xùn)練樣本進(jìn)行線性拼接,得到一個上下文模板( 稱作Demonstration ),記作 。給定的一個測試樣本 ,將其與模板拼接喂入模型中進(jìn)行預(yù)測。 ICT的生成模式 :因?yàn)镚PT-3是自回歸模型,因此通常情況下生成的結(jié)果在序列的最末位處。當(dāng)執(zhí)行分類時,此時需要對生成的結(jié)果進(jìn)行映射,例如通過Verbalizer的方法,獲得Label Word生成的概率。
ICT工作原理 :下圖給了ICT的工作原理,挑選了 個訓(xùn)練樣本作為Demonstration(黃色部分),指令模板則是換行符“\n”,旨在區(qū)分樣本的句子和標(biāo)簽。在預(yù)測時,不斷地更換測試樣本(綠色部分),并在末尾留出空間讓模型生成。

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

不過我們發(fā)現(xiàn),ICT在預(yù)測過程中,存在 方差大 、 不穩(wěn)定 的問題,根據(jù)ICT的定義和性質(zhì),我們羅列了幾處潛在的因素和問題:

  • 如何挑選訓(xùn)練樣本?即這 個樣本的指定有什么道理?
  • 標(biāo)注樣本自身的正確與否是否重要?
  • 模板指令對預(yù)測有什么影響?
  • 樣本數(shù)量 對預(yù)測有什么影響?
  • 個被選中的樣本的排序有什么影響?
  • 訓(xùn)練樣本的分布是否會對預(yù)測結(jié)果產(chǎn)生影響?

根據(jù)最近的研究工作,我們進(jìn)行一些討論。

6.1.1 樣本的Input-Output Mapping的正確性是否對ICL有何影響?

In-Context Example主要是由訓(xùn)練樣本組成的,通常包含Input和Output兩個部分。其中Input(Input Text)表示輸入的文本,Output表示輸出的文本或者標(biāo)簽(Label)。那么Input-Output的形式是否會對ICL產(chǎn)生影響呢,下面介紹兩個來自EMNLP2022針對樣本挑選的分析型工作:

  • 《Rethinking the Role of Demonstrations: What Makes In-Context Learning Work?》(簡稱 Rethinking
  • 《Ground-Truth Labels Matter: A Deeper Look into Input-Label Demonstrations》(簡稱 Ground-Truth

Rethinking

該工作使用GPT-3和GPT-J等大模型,根據(jù)API的多次調(diào)用進(jìn)行實(shí)驗(yàn)。
首先探索了 這些挑選樣本的輸入句子與標(biāo)簽(Input-Output Mapping)是否正確對預(yù)測存在影響 ,其定義三個Baseline,所有樣本均為隨機(jī)采樣:

  • No Demonstration :沒有任何訓(xùn)練樣本,相當(dāng)于零樣本場景;
  • Demonstration w/ glod labels :標(biāo)準(zhǔn)的in-context learning,每個標(biāo)注樣本和標(biāo)簽是正確對應(yīng)的
  • Demonstration w/ random labels :In-context Example的標(biāo)簽被隨機(jī)替換為錯誤的標(biāo)簽;

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

通過實(shí)驗(yàn)發(fā)現(xiàn):

  • 使用Demonstration比不使用的效果好 ,說明demonstration example確實(shí)可以提升性能;
  • random label對模型性能的破壞并不是很大 ,說明in-context learning更多的是去學(xué)習(xí)Task-specific的Format,而不是Input-Output Mapping
  • MetaICL是包含對ICL進(jìn)行meta-training的方法,但實(shí)驗(yàn)結(jié)果也表明random label對效果影響很小。說明在meta-training時,模型也不會過多關(guān)注Demonstration example的Input-Output Mapping,而是關(guān)注其他方面。
MetaICL是一種通過任務(wù)統(tǒng)一范式并使用元學(xué)習(xí)進(jìn)行訓(xùn)練的方法,其重要增加了多任務(wù)的訓(xùn)練來改進(jìn)ICL在下游任務(wù)零樣本推理時的泛化性能,該算法將在下文講解。

另外進(jìn)一步探索被挑選的 個訓(xùn)練樣本中, 正確的Input-Output Mapping的比例 是否也有影響。實(shí)驗(yàn)結(jié)果發(fā)現(xiàn)影響較小,如下圖:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

下面探索 修改Demonstration的模式是否會有影響 ,包括:

  • 只有Input Text()沒有l(wèi)abel():此時所有input text進(jìn)行拼接;
  • 只有Label()沒有Input Text():此時所有l(wèi)abel進(jìn)行拼接;

實(shí)驗(yàn)結(jié)果如下所示:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

  • 當(dāng)去掉Input Text或Label后,發(fā)現(xiàn)與No Demonstrate的結(jié)果相比沒有明顯的提升,說明Demonstration的指令形式是很重要的(即Label和Input Text 缺一不可);
  • 對比之前的結(jié)論,可以推論出,寧愿Label是錯誤的,也不能沒有。

緊接著 探索輸入句子(Input Text)與任務(wù)的分布差異是否有影響 ,即如果將輸入句子換成其他任務(wù)的句子,是否會影響模型做出決策。

給定 個句子,這 個句子是從其他任務(wù)的訓(xùn)練集(不同于當(dāng)前任務(wù)) 隨機(jī)采樣得到的。Label依然來自于當(dāng)前任務(wù)空間,Demonstration的指令模式保持不變。因此,輸入句子的分布是與當(dāng)前task不同的。

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

從實(shí)驗(yàn)結(jié)果來看,部分情況下影響還是有的,說明輸入樣本在語義空間內(nèi)的分布是會影響ICL的結(jié)果。

更多分析可閱讀博主的博文:【In-Context Learning】Rethinking the Role of Demonstrations: What Makes In-Context Learning Work?

Ground-Truth

該工作是對Rethinking工作的進(jìn)一步討論,其在部分層面上對Rethinking工作進(jìn)行了改進(jìn),主要認(rèn)為Input-Output Mapping是有影響的。具體地說,其提出了一個新的指標(biāo)來度量Input-Output Mapping的影響。首先給出幾個變量:

  • 假設(shè)所有的In-Context Example中,有 的標(biāo)簽是正確的,此時對應(yīng)的模型效果記作 。因此,如果所有In-Context Example的標(biāo)簽都是錯誤的,則記作 。
  • (Pseudo-Random-Correct)表示對應(yīng)替換的Label是來自于同一個Label Space(即替換其他的標(biāo)簽);
  • (Zero-shot or No-demo)表示沒有Label(只有輸入的Input Text)

作者提出了一個新的量化指標(biāo) Ground-turth Label Effect Ratio(GLER) ,定義為:

表面意思是指 所有Label都是正確時對應(yīng)的模型效果與隨機(jī)Random Label的差,與,所有Label都是正確時對應(yīng)的模型效果與沒有Label的差, 值的比值
分子表示Demo-gain,即沒有Label時模型效果的下降程度,一般對于一個特定的數(shù)據(jù)集來說,可以假設(shè)為定值,因此, GLER這個指標(biāo)如果越大,則說明 下降的很多 。因此換句話說, 如果GLER值越大,則說明Random Label對模型的影響很大

作者遵循與Rethinking相同的實(shí)驗(yàn)設(shè)置進(jìn)行了更為詳細(xì)的實(shí)驗(yàn),并獲得了GLER指標(biāo),如下圖所示:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

作者認(rèn)為,不同的實(shí)驗(yàn)設(shè)置(例如Template的不同、數(shù)據(jù)集的不同等),Random Label與No Label所產(chǎn)生的效果差異是不同的,因此不能直接做出“In-context example mapping does not affect in-context learning performance much”片面的判定。

綜合Rethinking和Ground-Truth兩個工作,我們可以得出結(jié)論,對后續(xù)ICL的研究和應(yīng)用都具有一定的啟發(fā)作用:

  • Input-Output Mapping對ICL是有影響的 ,主要體現(xiàn)在Input Text的分布、Label的準(zhǔn)確性等;
  • 不論是缺少Input Text還是缺少Label,都會對ICL的效果產(chǎn)生影響 ,說明ICL會得到Demonstration的形式的指導(dǎo),對后面的預(yù)測起到引導(dǎo)作用;

6.1.2 In-Context Example的選擇與順序?qū)CL有什么影響

In-Context Example的選擇方法最簡單的便是隨機(jī)采樣,即將每個樣本視為獨(dú)立且等概率的,因此每個訓(xùn)練樣本都有一定概率被選中。同時,被選中的這些樣本如何排序,也會對ICL的預(yù)測產(chǎn)生一些影響(因?yàn)镈emonstration的構(gòu)建是將這些Input-Output Pair按照一定順序線性拼接而成)。然而有工作發(fā)現(xiàn),隨機(jī)采樣的方法會面臨方差大的風(fēng)險。先通過一個簡單的預(yù)實(shí)驗(yàn)來說明這一點(diǎn)。

預(yù)實(shí)驗(yàn) :選擇SST-2(斯坦福情感分析數(shù)據(jù)集)任務(wù),從訓(xùn)練集中采樣 個訓(xùn)練樣本作為In-Context Example集合,重復(fù)采樣10次,得到10個不同的集合。因?yàn)?個樣本的排列組合一共有 種,所以,我們可以窮舉所有的順序。因此我們一共需要完成240次實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果如下所示:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

橫坐標(biāo)(Training Set ID)表示10個不同的In-Context Example集合,用來觀察不同的樣本挑選對ICL的影響情況;對于每一個集合,4個樣本可以有24種排列,每一個排列進(jìn)行一次實(shí)驗(yàn),對應(yīng)圖中的一個點(diǎn),因此每一個集合都對應(yīng)一共有24個點(diǎn),采用箱式圖來觀察不同的排列對ICL的影響情況??v坐標(biāo)為準(zhǔn)確率。

實(shí)驗(yàn)結(jié)果表明, 挑選不同的樣本對ICL的性能影響不同,而同樣的樣本不同的排列也會產(chǎn)生很大的差異 ,最大準(zhǔn)確率的差異超過了40%,驗(yàn)證了ICL的性能對樣本的選擇和排列很敏感,完全隨機(jī)的樣本挑選和排列使得ICL性能不穩(wěn)定、方差大。所以,在真實(shí)應(yīng)用時,如果使用完全隨機(jī)的方法,對預(yù)測的結(jié)果是無法保證的。那么如何彌補(bǔ)這一點(diǎn)呢,下面介紹來自ACL2022的兩個經(jīng)典工作:

  • 《What Makes Good In-Context Examples for GPT-3?》:代表方法KATE;
  • 《Fantastically Ordered Prompts and Where to Find Them: Overcoming Few-Shot Prompt Order Sensitivity》:簡稱Fantastically

KATE

該工作也在SST-2的預(yù)實(shí)驗(yàn)中發(fā)現(xiàn)不同的In-Context Example會得到不同的準(zhǔn)確率,說明樣本的挑選很重要。另外作者在Natural Question數(shù)據(jù)集上進(jìn)行測試,發(fā)現(xiàn)當(dāng)挑選的In-Context Example如果在Embedding空間中與Test Example更近,將會帶來更好的效果。因此提出KATE(Knn-Augmented in-conText Example selection),即基于近鄰原則挑選In-Context Example。

關(guān)于KATE更詳細(xì)的解讀可參考博主的博文:【In-Context Learning】What Makes Good In-Context Examples for GPT-3?

首先給出定義:基于GPT-3的ICL可以視為條件生成問題,給定 個樣本,并將其拼接起來作為Context ,任務(wù)目標(biāo)是根據(jù)Context和新的測試樣本輸入 ,預(yù)測對應(yīng)的標(biāo)簽:

其中 表示當(dāng)前第 個預(yù)測的token,< 表示前 個生成的token。

提出的方法框架圖如下所示:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

  • 首先對訓(xùn)練集 和測試集上所有樣本使用Encoder 進(jìn)行表征,獲得句子Embedding;

  • 給定一個測試樣本 及其對應(yīng)的Embedding ,從訓(xùn)練集中根據(jù)歐氏距離或相似度進(jìn)行排序,獲得Top 訓(xùn)練樣本,作為In-context Example。算法如下圖:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

Encoder的選擇可以是預(yù)訓(xùn)練的BERT、RoBERTa,也可以是在目標(biāo)任務(wù)數(shù)據(jù)上進(jìn)行自監(jiān)督的模型,例如Sentence-BERT、SimCSE等。

實(shí)驗(yàn)發(fā)現(xiàn),基于KATE的樣本挑選算法可以提升ICL的性能,并且降低方差。

Fantastically

該工作發(fā)現(xiàn)樣本的排列對ICL影響很大,而且模型越小方差越大。如下圖所示:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

因此,該工作提出旨在從眾多的排列中挑選合適的排列,提出三階段的方法:

  • 第一階段:隨機(jī)采樣若干訓(xùn)練樣本
    給定一個訓(xùn)練集 ,對于每一個樣本 ,通過映射 ,添加Template形成輸入文本 。最終通過線性拼接方法形成一個輸入序列
  • 第二階段:全排列
    定義一個全排列,列出所有可能的排列。例如如下圖,當(dāng)只有 個樣本時,則有 個排列。

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

對于每一個排列 ,讓預(yù)訓(xùn)練語言模型生成符合當(dāng)前排列分布的樣本(Probing Sequence )。因此 個排列會生成 個Probing Sequence。將這 個Probing Sequence拼接起來,作為Probing Set:

這些Probing Sequence都是讓GPT模型生成的,所以既可以生成Input Text,也會生成Label
經(jīng)過測試,GPT系列的模型,如果前面給定固定的模式(例如Input:xxx,Output:xxx),模型可以自動按照這個模式生成一些新的樣本。
  • 第三階段:打分
    得到的 個Probing Sequence,需要從中挑選最優(yōu)的序列作為Prompt,作者定義了兩個基于信息熵的打分方法,分別為Global Entropy (GlobalE)和Local Entropy(LocalIE),并挑選得分最高的,這里不做詳細(xì)介紹。

ICL的影響因素很多,上述工作對其做了一些比較全面的探索,除了探索ICL的影響因素外,也有工作嘗試進(jìn)一步改進(jìn)和提升ICL的實(shí)際效果,下面介紹三個方面的提升方法。

6.1.3 ICL的提升——引入自監(jiān)督(Self-supervised ICL)

不論是大模型還是小模型,如果直接用ICL的目標(biāo)來訓(xùn)練模型會怎么樣?下面這一篇工作嘗試講ICL加入到自監(jiān)督訓(xùn)練過程中。

  • 《Improving In-Context Few-Shot Learning via Self-Supervised Training》

首先引入兩個定義: example定義 :表示一個input-output pair。input和output text前面分別添加“Input”和“Output”標(biāo)記,每個example之間通過newline分隔。

instance定義 :表示若干example的線性拼接,如下圖所示:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

按照ICL的模式,拼接若干個樣本。對于每個樣本添加模板,例如Input、Output。紅色部分則為Label。

按照這一模式,定義不同的預(yù)訓(xùn)練任務(wù):

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

Next Sentence Generation(NSG) 給定一個original text,劃分為兩個子句。前面的句子作為input輸入模型,后面的句子作為output,旨在模型根據(jù)input來生成output。

Masked Word Prediction(MWP) 類似于MLM,對輸入的文本隨機(jī)挑選1~20個詞,并分別隨機(jī)替換如下幾個之一的special token(___, ????, @@@, (()), $$$, %%%, ###, ***, and +++.)。任務(wù)旨在預(yù)測被覆蓋的詞。

Last Phrase Prediction(LPP) 給定一個文本(缺乏末尾詞)以及若干passage text,任務(wù)旨在生成/分類末尾詞。該任務(wù)可以建模為生成式任務(wù)或分類任務(wù):

  • 生成任務(wù):讓模型生成last phrase
  • 分類任務(wù):給定一個答案,讓模型判斷答案是否正確(生成True/False)

Classification 與Next sentence prediction和Sentence orddering prediction類似,考慮四種類型的輸入(如下圖)

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

  • Original Sentence:原始文本不做改動,此時為True
  • Multiple Documents:隨機(jī)對50%的句子從其他document中挑選并替換;此時每個句子之間語義不同,為False
  • Shuffled Sentence:打亂句子順序,但不改變整個文檔語義,為True。

訓(xùn)練階段使用MOE進(jìn)行預(yù)訓(xùn)練。預(yù)訓(xùn)練語料:BOOK-CORPUS plus Wikipedia, CC-NEWS, OPENWEB- TEXT, and STORIES。分別對每個語料抽取100k句子(STORIES只抽取10k)。最終大約有100w個句子,每個類型的self-supervised task平均25w個樣本。

作者在很多任務(wù)上進(jìn)行了實(shí)驗(yàn),這里只展示SuperGLUE上的效果,可以發(fā)現(xiàn)引入ICL自監(jiān)督訓(xùn)練是可以大大提升效果的。

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

6.1.4 ICL的提升——統(tǒng)一范式+元學(xué)習(xí)(MetaICL)

除了將ICL的模板與自監(jiān)督訓(xùn)練結(jié)合外,是否可以直接使用ICL來訓(xùn)練一個具體的任務(wù)呢?答案是可以的,下面兩篇工作將ICL的模板與下游任務(wù)相結(jié)合,并提出基于元學(xué)習(xí)的ICL訓(xùn)練方法:

  • 《Meta-learning via Language Model In-context Tuning》:提出In-Context Tuning方法;
  • 《MetaICL: Learning to Learn In Context》:提出MetaICL方法。

In-Context Tuning

目前,向語言模型通過prompting可以在小樣本場景下得到很大的成功,例如GPT-3。然而原始的語言模型在預(yù)訓(xùn)練時并沒有針對in-context進(jìn)行優(yōu)化。先前工作發(fā)現(xiàn)prompting會過度受到(oversensitive)樣本選取以及instruction本身影響。因此該工作提出In-Context Tuning,旨在通過多任務(wù)訓(xùn)練的方式直接對預(yù)訓(xùn)練模型微調(diào)ICL任務(wù)目標(biāo)。

在訓(xùn)練(fine-tuning)階段,給定一系列的訓(xùn)練task,每一個task都有相應(yīng)的instruction,以及該task對應(yīng)的少量樣本(輸入/輸出對)。在測試階段,給定一個新的unseen task,以及該task對應(yīng)的instruction和少量樣本(輸入/輸出對),旨在讓模型能夠?qū)y試樣本預(yù)測其類別。

如下圖,給定一個情感分析task:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

在訓(xùn)練時,直接對instruction 、若干少量標(biāo)注數(shù)據(jù) 以及target樣本 進(jìn)行拼接,并基于in-context learning訓(xùn)練目標(biāo)進(jìn)行優(yōu)化,預(yù)測對應(yīng)類別 :

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

MetaICL

大規(guī)模的語言模型可以被用于in-context learning(例如GPT-3)。只需要給定目標(biāo)任務(wù)的少量標(biāo)注樣本作為提示,即可實(shí)現(xiàn)無參數(shù)訓(xùn)練地對其他樣本進(jìn)行預(yù)測。然而目前in-context learning依然與普通的fine-tuning有一定差距,且預(yù)測的結(jié)果方差很大,同時也需要花費(fèi)時間考慮template的構(gòu)建。傳統(tǒng)的In-context learning可能效果并不理想,可能因?yàn)閠arget task與預(yù)訓(xùn)練的階段的訓(xùn)練目標(biāo)差異太大,或模型太小。為了改進(jìn)上述問題,該工作提出MetaICL方法,先在若干task的訓(xùn)練集上進(jìn)行訓(xùn)練,試圖讓模型學(xué)習(xí)到如何根據(jù)in-context的語義來預(yù)測。

方法很簡單,如下所示:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

與GPT-3一樣,在訓(xùn)練時,模型的輸入包含當(dāng)前task的 個樣本,以及第 個樣本輸入,使用交叉熵更新模型。在測試階段,給定unseen target task,無需再次更新模型,只需要將對應(yīng)的 個樣本拼接輸入模型即可對其他樣本預(yù)測。

6.1.5 ICL的提升——對預(yù)測進(jìn)行矯正(Calibrate Before Use)

除了直接對ICL訓(xùn)練目標(biāo)進(jìn)行訓(xùn)練來拉近下游任務(wù)與預(yù)訓(xùn)練存在的Gap外,也可以直接對預(yù)測的部分進(jìn)行 校準(zhǔn)(Calibration) ,這種思想的使用在許多任務(wù)中都很廣泛。

我們嘗試將模型輸出的概率分布進(jìn)行校準(zhǔn)。對于原始的輸出概率分布(向量),可以使用一個affine transformation進(jìn)行轉(zhuǎn)換 ,其中 和 分別為變換的參數(shù)矩陣和偏置。由于ICL在推理過程中是不涉及到參數(shù)訓(xùn)練的,因此 和 如何進(jìn)行更新呢?該工作提出一個很巧妙的策略,即引入一個新的樣本叫做Context-free。如下圖所示:

In-Context Example與其余的測試樣本都是一樣的,只是添加了一個Content-free測試的樣本,例如“N/A”(也可以設(shè)置為空格、“[MASK]”等明顯無極向的文本)。

例如SST-2,正常來說,我們希望“N/A”對應(yīng)的數(shù)據(jù)概率應(yīng)該為[0.5%,0.5%],因?yàn)閷τ谇楦蟹治鋈蝿?wù)來說,“N/A”肯定沒有任何極向。但是實(shí)際大模型預(yù)測的結(jié)果可能并非是這個值,因此我們可以嘗試更新W和b參數(shù)來糾正這個概率分布使其變得更加均勻(iniform)。

更新參數(shù)時,通過啟發(fā)式的方法完成。首先獲得Content-free樣本的預(yù)測概率 ,那么參數(shù) 設(shè)置為 , 設(shè)置為零向量。

一個比較直觀的例子如下所示。所挑選的樣本可能存在bias,導(dǎo)致預(yù)測的置信度只有超過0.7的時候才是Positive類。然而默認(rèn)的閾值一般設(shè)置為0.5,所以導(dǎo)致一部分樣本由于這種bias而預(yù)測錯誤。Calibration則旨在矯正這種bias,通過一個Content-free樣本發(fā)現(xiàn)正確的閾值應(yīng)該是0.7。因此實(shí)現(xiàn)了分布的校準(zhǔn),大大提高預(yù)測的準(zhǔn)確性。

6.2 Instruction-tuning(指令學(xué)習(xí))

面向超大規(guī)模模型第二個Prompt技術(shù)是指令學(xué)習(xí)。在上文我們介紹過,Prompt的本質(zhì)之一是任務(wù)的一種指令,因此,在對大規(guī)模模型進(jìn)行微調(diào)時,可以為各種類型的任務(wù)定義指令,并進(jìn)行訓(xùn)練,來提高模型對不同任務(wù)的泛化能力。

什么是指令呢?如下圖所示:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

假設(shè)是一個Question Generation任務(wù),那么可以為這個任務(wù)定義一些指令,例如:

  • Title:任務(wù)的名稱;
  • Definition:任務(wù)的定義,說明這個任務(wù)的本質(zhì)和目的;
  • Things to avoid:說明這個任務(wù)的注意事項(xiàng),例如需要避免什么等等;
  • Positive / Negative Examples:給出正確和錯誤的例子,作為提示;
  • Prompt:當(dāng)前任務(wù)的提示信息;

當(dāng)許多任務(wù)都按照這種模式定義好模板,讓模型在指令化后的數(shù)據(jù)上進(jìn)行微調(diào),模型將可以學(xué)會如何看到指令做預(yù)測。

下面介紹一些典型的基于Instruction的方法,包括FLAN、LaMDA和InstructionGPT,它們都是遵循Instruction-tuning實(shí)現(xiàn)統(tǒng)一范式。

6.2.1 FLAN

例如基于Instruction-Tuning訓(xùn)練的 FLAN模型 ,其在62個任務(wù)上進(jìn)行多任務(wù)訓(xùn)練,每個任務(wù)都設(shè)計了Instruction,最后得到137B的大模型,如下圖所示:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

6.2.2 LaMDA

谷歌提出的LaMDA模型,其完全采用自回歸生成式模型,并在大量的對話語料上進(jìn)行預(yù)訓(xùn)練,得到137B的大模型。為了提高模型的安全性和事實(shí)性,LaMDA涉及到兩個微調(diào)策略,一個是通過人工標(biāo)注形式標(biāo)注一些存在安全隱患的數(shù)據(jù)。期望模型生成過程中考慮四種因素:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

另一種微調(diào)策略則是引入互聯(lián)網(wǎng)搜索機(jī)制,提高模型生成結(jié)果的事實(shí)性:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

最近與ChatGPT類似的Bard大模型則是基于LaMDA微調(diào)的模型。

6.2.3 InstructionGPT

另外一個典型的例子是OpenAI的InstructionGPT,其主要流程如下:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

  • Step1 :先采樣一些demonstration數(shù)據(jù),其包括prompt和labeled answer。基于這些標(biāo)注的數(shù)據(jù),對GPT-3進(jìn)行fine-tuning,得到SFT(Supervised Fine-tuning);
雇傭40名標(biāo)注人員完成prompt的標(biāo)注。
此時的SFT模型在遵循指令/對話方面已經(jīng)優(yōu)于 GPT-3,但不一定符合人類偏好。
  • Step2 :Fine-tuning完之后,再給一個prompt讓SFT模型生成出若干結(jié)果(可以通過beam search等方法),例如生成ABCD四種結(jié)果,通過人工為其排序,例如D>C>A=B,可以得到標(biāo)注的排序pair;基于標(biāo)注的排序結(jié)果,訓(xùn)練一個Reward Model;
對多個排序結(jié)果,兩兩組合,形成多個訓(xùn)練數(shù)據(jù)對。RM模型接受一個輸入,給出評價回答質(zhì)量的分?jǐn)?shù)。這樣,對于一對訓(xùn)練數(shù)據(jù),調(diào)節(jié)參數(shù)使得高質(zhì)量回答的打分比低質(zhì)量的打分要高。
  • Step3 :繼續(xù)用生成出來的結(jié)果訓(xùn)練SFT,并通過強(qiáng)化學(xué)習(xí)的PPO方法,最大化SFT生成出排序靠前的answer。
訓(xùn)練目標(biāo)如下:
初始化時
PPO算法在訓(xùn)練過程中環(huán)境會發(fā)生變換。
首先,根據(jù)自動標(biāo)注的數(shù)據(jù)(下面的來源3),喂入 中,得到輸出結(jié)果 ,其會根據(jù) 得到一個得分,期望在訓(xùn)練 時能夠最大化reward的得分;
第二項(xiàng)loss表示KL散度,在迭代訓(xùn)練過程中,避免RL模型 與原始的監(jiān)督訓(xùn)練的SFT模型差的太遠(yuǎn);
第三項(xiàng)則是一個預(yù)訓(xùn)練目標(biāo),可以理解為避免災(zāi)難遺忘。當(dāng) 時則為標(biāo)準(zhǔn)的PPO模型,否則為PPO-ptx模型1.3B 參數(shù) InstructGPT 模型的輸出優(yōu)于 175B GPT-3 的輸出,盡管參數(shù)少了 100 多倍。

6.3 Chain-of-Thought(思維鏈)

思維鏈在2022年初由谷歌團(tuán)隊提出,其旨在進(jìn)一步提高超大規(guī)模模型在一些復(fù)雜任務(wù)上的推理能力。其認(rèn)為現(xiàn)有的超大規(guī)模語言模型可能存在下面潛在的問題:

  • 增大模型參數(shù)規(guī)模對于一些具有挑戰(zhàn)的任務(wù)(例如算術(shù)、常識推理和符號推理)的效果并未證明有效;
Scaling up model size alone has not proved sufficient for achieving high performance on challenging tasks such as arithmetic, commonsense, and symbolic reasoning.
  • 期望探索如何對大模型進(jìn)行推理的簡單方法:
對于算術(shù)類推理任務(wù),期望生成自然語言邏輯依據(jù)來指導(dǎo)并生成最終答案;但是獲得邏輯依據(jù)是比較復(fù)雜昂貴的。 It is costly to create a large set of high quality rationales, which is much more complicated than simple input–output pairs used in normal machine learning

對某個task,為大模型提供一些上下文in-context example作為prompt;簡單的示例可能并非能夠提升推理能力。It works poorly on tasks that require reasoning abilities, and often does not improve substantially with increasing language model scale

因此,提出 思維鏈(Chain-of-Thought) 。思維鏈的定義如下:

A chain of thought is a series of intermediate natural language reasoning steps that lead to the final output, and we refer to this approach as chain-of-thought prompting.

直觀理解很簡單,思維鏈?zhǔn)且环N特殊的In-Context Learning,對于每個挑選的In-Context Example,除了給出Input-Output Mapping外,還需要給出一個推理過程,稱為Relationale或Reasoning Path,其是一個具有邏輯推理過程的短文本,如下圖藍(lán)色部分。

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

通過引入推理路徑作為提示,可以激發(fā)大模型按照這種推理的模式生成出合理的結(jié)果,引導(dǎo)大模型如何思考、如何推理。

下面介紹幾個經(jīng)典的CoT方法:

6.3.1 Self-consistency Improves Chain Of Thought Reasoning in Language Models

Self-consistency(自我一致性) 建立在一個直覺基礎(chǔ)上:即 一個復(fù)雜的推理任務(wù),其可以有多種推理路徑(即解題思路),最終都能夠得到正確的答案 。即所謂 條條大路通羅馬 。一個問題越需要深思熟慮的思考和分析,那么七可以得出答案的推理路徑就越多樣化。

具體方法如下圖所示。先從大模型的decoder中采樣出一系列個reasoning path,每一個path都能夠?qū)?yīng)一個最終的答案,我們 可以挑選那些能夠得到一致答案的較多的path ,作為我們的采樣得到的reasoning path?;谶@種直接投票策略,比較符合人類的直覺,即如果很多reasoning path都能得到對應(yīng)的一個答案,那么這個答案的置信度會比較大。

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

作者也探索了一些其他的投票策略,例如根據(jù)logit進(jìn)行加權(quán)等,發(fā)現(xiàn)直接投票更合適:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

6.3.2 Large Language Models are Zero-Shot Reasoners

CoT需要涉及到人工標(biāo)注prompt。該工作則發(fā)現(xiàn)只需要添加一個固定的prompt:“Lets think step by step” 即可以促使大模型一步步推理來生成結(jié)果。

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

主要包括兩個核心步驟:

  • 1st prompt:reasoning extraction :先構(gòu)建模板,得到 ,然后喂入大模型中生存結(jié)果 ;
  • 2nd prompt:answer extraction :將 拼接起來,再次喂入大模型中,直接生成結(jié)果。

6.3.3 Automatic Chain of Thought Prompting in Large Language Models

先前的chain-of-thought包括兩種,一種是Zero-shot CoT(let's think step by step),另一種是Manual-CoT(拼接若干樣本作為demonstration)。我們發(fā)現(xiàn)不論是何種prompt模式,大模型都會生成錯誤的chains。為了避免這個問題,我們考慮提出一種自動化構(gòu)建demonstration的方法——Auto-CoT。

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

主要包括兩個步驟:
(1)Queston Clustering: 使用sentence-BERT對每個question獲得表征,然后通過K-means獲得若干簇。對于每個簇,按照其距離簇中心距離的大小升序排列。算法如下所示:

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

(2)Demonstration Sampling:
根據(jù)Cluster的結(jié)果,采樣得到合適的prompt。對于每個簇,采樣一個question,并與Let's think step-by-step拼接起來,喂入大模型中生存relationale。最后將 個relationale與對應(yīng)的question、answer拼接,并拼接目標(biāo)測試樣本,促使大模型生成測試樣本的relationale。

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

Auto-CoT旨在自動選擇樣本,然后讓大模型依次生成出relationale,然后最后拼接所有relationale作為測試樣本的提示。

6.3.4 Least-to-Most Prompting Enables Complex Reasoning in Large Language Models

最近CoT的提出進(jìn)一步拉近了人類與機(jī)器智能的距離,通過natural language rationales和self-consistency來提升大模型在推理任務(wù)上的性能。然而CoT依然存在一些不足:即其很難對超出demonstration example難度程度的問題進(jìn)行解答。為此,該工作嘗試將一個復(fù)雜的任務(wù)分解為若干簡單的子任務(wù)。

大語言模型LLM微調(diào)技術(shù):Prompt Tuning,深度學(xué)習(xí)模型,prompt,大語言模型,微調(diào)

在對每個子問題進(jìn)行預(yù)測時,是一個漸近的過程。文章來源地址http://www.zghlxwxcb.cn/news/detail-773696.html

  • 第一個子問題是最簡單的;
  • 解決第二個子問題時,會將上一個子問題以及答案附加在當(dāng)前子問題的前面,而且第二個子問題會比第一個子問題難;
  • 最后一個子問題就是原始的問題,此時其會有前面所有子問題的解答作為提示。
    最簡單的情況,就是將一個問題分解為兩個子問題,前面所有的子問題可以作為后面子問題的in-context demonstration。

到了這里,關(guān)于大語言模型LLM微調(diào)技術(shù):Prompt Tuning的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Prompt-Tuning——深度解讀一種新的微調(diào)范式

    Prompt-Tuning——深度解讀一種新的微調(diào)范式

    作者:王嘉寧??郵箱:lygwjn@126.com 轉(zhuǎn)載請注明出處:https://wjn1996.blog.csdn.net/article/details/120607050 本博客針對Prompt進(jìn)行的綜述博客,暫時為半成品,持續(xù)更新中,若對您的科研和工作有所幫助,期待您的收藏與引用。 作者簡介:王嘉寧,華東師范大學(xué) 數(shù)據(jù)學(xué)院 博士生,研究

    2024年02月15日
    瀏覽(17)
  • 人工智能大語言模型微調(diào)技術(shù):SFT 監(jiān)督微調(diào)、LoRA 微調(diào)方法、P-tuning v2 微調(diào)方法、Freeze 監(jiān)督微調(diào)方法

    人工智能大語言模型微調(diào)技術(shù):SFT 監(jiān)督微調(diào)、LoRA 微調(diào)方法、P-tuning v2 微調(diào)方法、Freeze 監(jiān)督微調(diào)方法

    SFT(Supervised Fine-Tuning)監(jiān)督微調(diào)是指在源數(shù)據(jù)集上預(yù)訓(xùn)練一個神經(jīng)網(wǎng)絡(luò)模型,即源模型。然后創(chuàng)建一個新的神經(jīng)網(wǎng)絡(luò)模型,即目標(biāo)模型。目標(biāo)模型復(fù)制了源模型上除了輸出層外的所有模型設(shè)計及其參數(shù)。這些模型參數(shù)包含了源數(shù)據(jù)集上學(xué)習(xí)到的知識,且這些知識同樣適用于目

    2024年02月15日
    瀏覽(23)
  • LLM大語言模型訓(xùn)練中常見的技術(shù):微調(diào)與嵌入

    微調(diào) (Fine-Tuning): 微調(diào)是一種用于預(yù)訓(xùn)練語言模型的技術(shù)。在預(yù)訓(xùn)練階段,語言模型(如GPT-3.5)通過大規(guī)模的文本數(shù)據(jù)集進(jìn)行訓(xùn)練,從而學(xué)會了語言的語法、語義和世界知識。然后,在微調(diào)階段,模型會在特定任務(wù)或領(lǐng)域的小規(guī)模數(shù)據(jù)集上進(jìn)行額外的訓(xùn)練。這個微調(diào)過程

    2024年02月06日
    瀏覽(22)
  • 精進(jìn)語言模型:探索LLM Training微調(diào)與獎勵模型技術(shù)的新途徑

    精進(jìn)語言模型:探索LLM Training微調(diào)與獎勵模型技術(shù)的新途徑

    LLMs Trainer 是一個旨在幫助人們從零開始訓(xùn)練大模型的倉庫,該倉庫最早參考自 Open-Llama,并在其基礎(chǔ)上進(jìn)行擴(kuò)充。 有關(guān) LLM 訓(xùn)練流程的更多細(xì)節(jié)可以參考 【LLM】從零開始訓(xùn)練大模型。 使用倉庫之前,請先安裝所有需要的依賴: 繼續(xù)預(yù)訓(xùn)練是指,在一個已有的模型上繼續(xù)進(jìn)行

    2024年02月11日
    瀏覽(21)
  • 【論文極速讀】Prompt Tuning——一種高效的LLM模型下游任務(wù)適配方式

    【論文極速讀】Prompt Tuning——一種高效的LLM模型下游任務(wù)適配方式

    【論文極速讀】Prompt Tuning——一種高效的LLM模型下游任務(wù)適配方式 FesianXu 20230928 at Baidu Search Team Prompt Tuning是一種PEFT方法(Parameter-Efficient FineTune),旨在以高效的方式對LLM模型進(jìn)行下游任務(wù)適配,本文簡要介紹Prompt Tuning方法,希望對讀者有所幫助。如有謬誤請見諒并聯(lián)系指

    2024年02月07日
    瀏覽(20)
  • 【LLM系列之指令微調(diào)】長話短說大模型指令微調(diào)的“Prompt”

    【LLM系列之指令微調(diào)】長話短說大模型指令微調(diào)的“Prompt”

    1 指令微調(diào)數(shù)據(jù)集形式“花樣”太多 大家有沒有分析過 prompt對模型訓(xùn)練或者推理的影響?之前推理的時候,發(fā)現(xiàn)不加訓(xùn)練的時候prompt,直接輸入模型性能會變差的,這個倒是可以理解。假如不加prompt直接訓(xùn)練,是不是測試的時候不加prompt也可以?還有一個就是多輪prompt和單輪

    2024年02月14日
    瀏覽(23)
  • [NLP]LLM---大模型指令微調(diào)中的“Prompt”

    [NLP]LLM---大模型指令微調(diào)中的“Prompt”

    大家有沒有分析過 prompt對模型訓(xùn)練或者推理的影響?之前推理的時候,發(fā)現(xiàn)不加訓(xùn)練的時候prompt,直接輸入模型性能會變差的,這個倒是可以理解。假如不加prompt直接訓(xùn)練,是不是測試的時候不加prompt也可以?還有一個就是多輪prompt和單輪prompt怎么構(gòu)造的問題?好多模型訓(xùn)練

    2024年02月09日
    瀏覽(20)
  • 大模型PEFT技術(shù)原理(一):BitFit、Prefix Tuning、Prompt Tuning

    大模型PEFT技術(shù)原理(一):BitFit、Prefix Tuning、Prompt Tuning

    ? ? ? ?隨著預(yù)訓(xùn)練模型的參數(shù)越來越大,尤其是175B參數(shù)大小的GPT3發(fā)布以來,讓很多中小公司和個人研究員對于大模型的 全量微調(diào) 望而卻步,近年來研究者們提出了各種各樣的參數(shù)高效遷移學(xué)習(xí)方法(Parameter-efficient Transfer Learning),即固定住Pretrain Language model(PLM)的大部

    2024年01月25日
    瀏覽(48)
  • 自然語言基礎(chǔ) IMDB下的 MLM (掩碼模型) & Bert Fine-tuning (模型微調(diào))

    本文是Hugging Face 上 NLP的一篇代碼教程,通過imdb數(shù)據(jù)集, Fine-tuning微調(diào) Bert預(yù)訓(xùn)練模型。 涉及包括: MLM, Bert, Fine-tuning, IMDB, Huggingface Repo 微調(diào)的方式是通過調(diào)整訓(xùn)練模型的學(xué)習(xí)率來重新訓(xùn)練模型,這個來自 早期 ACL 2018的一篇paper: 《Universal Language Model Fine-tuning for Text

    2024年02月15日
    瀏覽(26)
  • 【大語言模型LLM】-基礎(chǔ)語言模型和指令微調(diào)的語言模型

    【大語言模型LLM】-基礎(chǔ)語言模型和指令微調(diào)的語言模型

    ?? 博客主頁 : 西瓜WiFi ?? 系列專欄 : 《大語言模型》 很多非常有趣的模型,值得收藏,滿足大家的收集癖! 如果覺得有用,請三連?????,謝謝! 長期不定時更新,歡迎watch和fork!?????? ?? 感謝大家點(diǎn)贊?? 收藏? 評論? ?? 大語言模型LLM基礎(chǔ)-系列文章

    2024年04月28日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包