中科院張家俊:ChatGPT中的提示與指令學習

達觀資料DataGrand發表於2023-04-11

內容來源:ChatGPT 及大模型專題研討會

分享嘉賓:中國科學院自動化研究所研究員 張家俊

分享主題:《ChatGPT中的提示與指令學習》

中國科學院自動化研究所研究員張家俊以ChatGPT中的提示與指令學習為題,從ChatGPT簡要技術回顧、邁向通用性的提示學習、從提示學習到指令學習、相關探索與學習等角度和在場聽眾展開技術分享。大模型主要有兩個方向,一個是“預訓練+引數微調”,就是大模型有了之後針對下游任務進行微調,然後得到一個面向下游任務的大的模型,二是“預訓練+提示學習”,預訓練之後不變,用提示學習激發大模型來完成特定的任務。相關實踐證明,學習提示對於模型效能提升非常有效,怎樣學到或者找到提示語非常關鍵。下面是分享的詳細內容。

中科院張家俊:ChatGPT中的提示與指令學習


ChatGPT簡要技術回顧

一、 基本介紹

ChatGPT不再僅僅是傳統的人機對話系統。而是一個以自然語言為互動方式的通用語言處理平臺。它在三個方面有非常優異的表現:首先,它在基礎資料、核心模型和最佳化演算法的技術實現上取得了重大突破;其次,它的應用非常接地氣,幾乎可以完成所有與語言相關的功能;最後,相比於過去的智慧對話系統,它的互動體驗效果產生了質的飛躍。

而超出預期的互動體驗,又可以歸功於四個關鍵能力:通用的意圖理解能力、強大的連續對話能力、智慧的互動修正能力以及較強的邏輯推理能力。這些能力一直以來對自然語言處理研究者來說屬於高難度的任務,因為之前我們只是針對單個任務進行研究。然而隨著ChatGPT的誕生和發展,我們現在認識到它可以實現更為複雜的任務。

二、 ChatGPT的整合技術組成 

 

ChatGPT是以產品思維驅動的重大整合創新成果,是OpenAI自2018年以來堅持生成式AI、長期技術積累,量變產生質變的重大成果,是邁向AGI的階段性成果。

ChatGPT的整合技術主要包含三個方面:

  1. 基礎模型架構。基礎模型架構主要是生成式解碼器,來自於Google2017年提出的Transformer[1]。


  2. 指令學習。同樣來自於谷歌2021年提出的指令學習FLAN[2]。


  3. 基於人類反饋的強化學習。強化學習部分是OpenAI成立之後一直在專注的領域,2017年提出了強化學習的演算法PPO[3],在2021年時它在自動摘要任務[4]上表現出非常好的效能,所以直接用到對話的場景上。

三、 ChatGPT的基礎大模型

ChatGPT的基礎模型本質上是一個語言模型。語言模型做的事情,是給定字首,預測下一個詞是什麼,或者說計算下一個詞的可能性的分佈,從中選擇一個最優 的。而語言模型的訓練過程本質是基於海量資料的自監督學習,透過對大量的文字進行學習。舉個例子,對於“人工智慧是模擬擴充人類智慧的”這句話去預測下一個詞是什麼時,模型發現歷史的文字里面,“人工智慧的”後面有四次接了“理論”,三次接了“理論”,兩次接了“技術”,所以預測時,模型會以更大的機率把結果預測為“理論”這個詞,這個過程有點類似詞語接龍。

對於語言模型來說,如果前面的上文歷史資訊能看得更長,預測就會更準確一些。每個輸入的詞都是以向量的方式來表示,每個詞的表示維度越高,它的語義表示能力就越好。其次,主流的語言模型都是透過深度學習神經網路構建,它的網路層次越深,預測能力就越強。向量的表示維度和網路的層次,是影響引數規模的主要因素,引數規模越大,模型的容量就越高。從2018年-20201年,引數規模從1.17億到1750億,模型已經展現出來了巨大的變化,出現了能力湧現的特點。

中科院張家俊:ChatGPT中的提示與指令學習圖 1 ChatGPT基礎模型

剛剛提到的能力湧現,意思是某些能力在引數規模較小的模型中不存在,在引數規模較大的模型中存在,則該能力就是湧現的。下圖裡面思維鏈的推理、新指令泛化會在100億到1000億的引數規模之間產生能力的湧現。

中科院張家俊:ChatGPT中的提示與指令學習圖 2 能力湧現

四、 基於海量資料的自監督學習

ChatGPT基於海量資料的自監督學習來構建基礎模型,這個過程不是一蹴而就的。在2020年,openAI使用45T文字資料訓練得到了基礎大模型GPT-3,實現了流暢性和知識性。能力體現上,GPT-3產生的文字流暢性比較高,但是通用任務的處理能力還沒那麼強。2021年,openAI在GPT-3的基礎上,用179G程式碼資料透過自監督訓練實現了邏輯程式設計模型CodeX,具備一定的推理能力。2022年,openAI利用更多更新文字資料和程式碼資料的混合學習,得到更強的基礎大模型GPT-3.5,成為ChatGPT的基礎模型,實現了流暢性、知識性和邏輯性(推理能力)。

在得到足夠強大、能力足夠通用的基礎模型之後,ChatGPT還是用指令學習和基於人類反饋學習來進一步提升互動體驗。其中指令學習指導模型能夠遵循人類的指令來輸出預期的內容,而基於人類反饋的強化學習則讓模型更加符合人的偏好。ChatGPT透過把基礎大模型、指令學習和基於人類反饋的強化學習結合起來,實現了流暢性、知識性、邏輯性和擬人性。


中科院張家俊:ChatGPT中的提示與指令學習圖 3 指令學習與人類反饋學習


邁向通用性的提示學習


一、 預訓練大模型的兩種方向

預訓練大模型主要是透過“預訓練+引數微調”(Pre-training+Fine-tuning)和“預訓練+提示學習”(Pre-training+Prompt Learning)兩種方式來實現下游任務的預測。

二、 預訓練+引數微調

“預訓練+引數微調”是指大模型預訓練後作為一個良好初始化的基礎模型,從結構上適配每一個下游任務,並微調大模型的引數,使得下游任務的效能達到最優。譬如以大模型適應分類任務為例子,模型的實現方式是在預訓練模型的最後一個節點增加一個簡單的分類網路(softmax),在訓練過程中,不僅去更新分類網路的引數,也去更新整個預訓練模型的引數。訓練完成後,模型就能更適合分類任務,不過與此同時,模型具有的通用性就變弱了。面向序列標註、文字生成任務也是採用預訓練+引數微調的方式來更新模型引數,模型的通用能力也會減弱。同樣的情況可以推廣到機器翻譯、自動問答、情感分析的任務。

中科院張家俊:ChatGPT中的提示與指令學習

圖 4 預訓練+引數微調:適應分類任務


中科院張家俊:ChatGPT中的提示與指令學習

圖 5 預訓練+引數微調:適應分序列任務


中科院張家俊:ChatGPT中的提示與指令學習

圖 6 預訓練+引數微調:適應文字生成任務


中科院張家俊:ChatGPT中的提示與指令學習

圖 7 “預訓練+引數微調”正規化


從上面這些例子做個總結,預訓練+引數微調的方式能夠在特定任務取得不錯的效果,不過這種方式存在一些侷限性。第一,預訓練+引數微調的方式缺乏處理通用問題的能力。第二,需要針對每種任務都獨立進行模型訓練,資源佔用過多。第三,會存在過擬合的問題,因為不是所有型別的任務都有大量的標註資料,在下游任務資料少的情況存在泛化能力方面的問題。


三、 預訓練+提示學習

“預訓練+提示學習”指的是先對大型模型進行預訓練,在後續的任務中保持引數不變,利用提示語的形式使預訓練模型能夠滿足各種下游任務需求。具體來說,我們會將下游任務轉換為預訓練模型的輸入輸出格式,例如文字分類、序列標註和文字生成等任務都需要將文字輸入格式化為預訓練模型的輸入格式,並將預訓練模型的輸出轉換為任務需要的輸出格式,最終透過利用提示語啟用大模型來完成特定任務。

我們針對幾個常見的NLP任務來描述一下預訓練+提示學習的處理過程。譬如有個文字分類場景要對“I truly love this film”這句評論來預測它表達的情感傾向是“positive”或“negative”。提示學習的處理辦法是在“I truly love this film”句子後面加個提示語“Its sentiment is”,用語言模型來預測下一個詞是什麼,預測結果如果為“positive”或“negative”則可以作為最終預測結果,或者如果兩個詞都沒命中,可以透過判斷“positive”還是“negative”的機率更高,來完成整個任務的處理。其他的任務的處理過程是類似的,主要在於提示語有所區別。在處理詞性標註時,是在句子後面新增提示語“Its POS is”,然後就按照語言模型的方式生成詞性標註結果。在處理翻譯的時候,是在句子後面新增提示語“Its Chinese Translation is”,然後語言模型會預測輸出“我真的喜歡這部電影”。


中科院張家俊:ChatGPT中的提示與指令學習

圖 8 預訓練+提示學習:分類任務適應大模型


中科院張家俊:ChatGPT中的提示與指令學習

圖 9 預訓練+提示學習:序列標註任務適應大模型


中科院張家俊:ChatGPT中的提示與指令學習

圖 10 預訓練+提示學習:文字生成任務適應大模型


四、 提示語

提示語是預訓練+提示學習裡面的重要要素。怎麼理解提示語呢,提示語就是插入到下游任務文字輸入中的一段特殊文字,可以視為一組特殊引數,觸發預訓練大模型實現特定下游任務的同時,保持預訓練大模型訓練和測試一致。

提示語可以是離散的,也可以是連續的。離散的提示語比較常見,上面提及的提示語就是離散提示語。離散提示語的產生主要有兩種方式:人工分析特定的下游任務,總結下游任務的規律,設計適合特定下游任務的提示語;透過從文字資料中自動搜尋的方式找到合適的完成特定下游任務的提示語。為每個任務每個樣本找到合適的提示語是一個巨大挑戰,不同提示語導致顯著的結果差異。

連續提示語則是在輸入文字或者模型中加入一組連續向量代表具有泛化能力的提示語。連續提示語有兩種新增方式,一種是直接在文字輸入前新增[5],一種是網路或者每層網路前新增連續向量表示提示語[6]。

中科院張家俊:ChatGPT中的提示與指令學習

圖 11 連續提示語


五、 對比分析

我們對“預訓練+引數微調”和“預訓練+提示學習”兩種方式進行對比。

兩種方式最重要的區別是在支援下游任務的形式[7]。下圖中“預訓練+引數微調”的大模型需要針對不同任務來對引數進行調整,“預訓練+提示學習”只需要透過設計提示資訊來修改輸入模式,使得讓它具有完成下游任務的能力。

中科院張家俊:ChatGPT中的提示與指令學習

圖 12 “預訓練+引數微調” VS “預訓練+提示學習”


雖然“預訓練+提示學習”有顯著的優點,不過在2020年前相關方向的研究成果較少。這是因為之前的模型規模較小、通用性比較弱,不適合提示學習,適合引數微調。而到了2020年後,模型規模有大幅提升,微調的成本也隨之提升,同時通用性強,適合提示學習。

中科院張家俊:ChatGPT中的提示與指令學習

圖 13 從“預訓練+引數微調”到 “預訓練+提示學習”


下圖的藍線是GPT-3在45個任務上的Zero Shot效能,準確率平均在30%左右,效果還是比較弱的。這說明提示學習能夠觸發預訓練大模型完成特定任務,但是單一的外部提示訊號難以最大限度地激發預訓練大模型的能力,從而高質量地完成具體任務。

中科院張家俊:ChatGPT中的提示與指令學習圖 14 GPT-3在45個任務上的效能


從提示學習到指令學習


“預訓練+引數微調”透過具體任務的監督資料微調模型引數,能夠最大限度地激發預訓練大模型完成特定任務的能力,但是面臨資料稀缺、災難遺忘、資源浪費、通用性弱等難題。“預訓練+提示學習”通用性強,但是在具體任務上效果偏弱。所以研究者考慮更好整合兩者的優勢,讓大模型更好理解具體任務的執行意圖,所以就有了從提示學習到指令學習的過渡。“引數微調”、“提示學習”、“指令學習”的執行邏輯如下:

  • 大模型+引數微調:透過任務相關的透過設計提示透過若干任務相關的經過提示監督資料修改模型引數。


  • 大模型+提示學習:透過設計提示透過若干任務相關的經過提示監督資料修改模型引數資訊修改輸入模式。


  • 大模型+指令學習[8][9]:透過若干任務相關的經過提示增強的監督資料最佳化模型引數。

中科院張家俊:ChatGPT中的提示與指令學習圖 15 大模型+指令學習


下面看一個提示學習的例子,還是以機器翻譯、問答和情感分類作為任務場景,原來是每個任務場景對應一個模型,現在把所有任務的形式轉變為語言模型的形式。譬如處理翻譯任務時,把提示語的資訊插入文字得到“‘I love China’的中文翻譯是”。不同的樣本可以使用不同的提示語來保證一定差異性。然後把所有任務的標註資料合併在一起,作為一個統一的任務執行引數微調。所有資料經過訓練之後得到一個新的大模型,新的大模型可以再利用提示語觸發大模型去完成特定的能力,結果是能夠支援不同任務的同時也提升了多工的執行效果。


中科院張家俊:ChatGPT中的提示與指令學習

圖 16 “大模型+指令學習”適應下游任務


中科院張家俊:ChatGPT中的提示與指令學習圖 17 谷歌FLAN模型


這是當時谷歌提出來FLAN的例子,左上角是預訓練+微調,左下角是提示語,右邊是FLAN的指令學習,是前兩者的結合。FLAN在數十個任務上微調,發現它在未見的任務上也有預測能力。舉例來說,FLAN在對常識推理、翻譯等任務進行微調後,會發現訓練好的模型會在自然語言推斷任務上具備不錯的預測效果。所以FLAN在62個資料集40多個任務上進行了訓練,任務包含理解和生成兩種形態。實驗結果發現當引數達到百億規模以上,幾十個任務的聯合指令學習就可以解決未知的任務。

中科院張家俊:ChatGPT中的提示與指令學習圖 18 FLAN展現的未知任務的預測能力


中科院張家俊:ChatGPT中的提示與指令學習圖 19 FLAN使用的文字任務資料集


中科院張家俊:ChatGPT中的提示與指令學習

圖 20 百億引數規模模型多工聯合學習可以解決未知任務


FLAN的重大      發現對後續的工作起到了指導作用。在此基礎上,ChatGPT的前身Instruct GPT收集了API指令,這樣它的指令 型別更豐富,覆蓋的範圍越大,在此基礎上的訓練更觸發了它的通用能力。


大語言模型的相關探索和實踐


一、 如何尋找最 佳的提示語

上文提示學習的內容提到,提示語對預測效果有顯著影響。下面的例子展示了ChatGPT在處理同樣的文字翻譯時,採用了不同的提示詞(“中文翻譯是什麼”和“用中文怎麼說”),返回的結果差異非常大。此時如何提升模型效果的問題可轉化為,如何找到不同問題的最 佳提示語,有沒有一種方法自動學習提示語。

中科院張家俊:ChatGPT中的提示與指令學習圖 21 不同提示語對文字翻譯結果的影響


二、 樣本級提示學習方法

針對上述問題,我們提出一種樣本級提示學習方法[10],為每個樣本學習最合適的提示語。執行的方式為,來了新的樣本時,模型會結合輸入的提示語和文字,根據相關性去搜尋最相關的提示語,作為語言模型的輸入。這種方法的優勢是最大限度地建模了不同樣本的獨特性,相比於相同的提示語取得更好的效能提升,不過存在的不足之處是未考慮樣本間的共性,也即忽略了不同的樣本實際上屬於同一種任務的事實。

中科院張家俊:ChatGPT中的提示與指令學習

圖 22 樣本級提示學習方法


三、 統一提示學習方法

鑑於樣本級提示學習方法只考慮樣本、沒有考慮到任務的共性,所以我們進一步提出了統一提示語學習的方法[11],可以同時建模任務級的資訊和樣本級的資訊。它的處理辦法是為每個任務學習一個提示,為任務中的每個樣本學習一個提示,兩類提示資訊進行融合,獲得最 佳提示。下圖是統一提示學習方法的架構,灰色的部分引數不變,藍色的部分是非常小的引數量,一個是從樣本學到樣本級的引數,一個是每個任務有對應的引數。透過這個結構模型能夠判斷每個樣本應該用多少任務級的資訊、多少樣本級的資訊,最終為每個樣本學到最合適的提示。

中科院張家俊:ChatGPT中的提示與指令學習

圖 23 統一提示學習方法


統一提示學習方法優勢是同時結合了任務資訊和樣本資訊,理論上可以獲得最  佳的提示資訊。存在的不足是需要提前知道任務資訊,需要進一步的泛化。相比之下目前ChatGPT在不知道請求的任務是什麼的情況,也能夠感知到任務的具體型別,有較大優勢。後續研究擴充方向可以透過感知的方式判斷任務的 資訊,在跟任務資訊已知的基礎上再去學習任務和樣本相關的泛化。


四、 實驗效果

實驗結果驗證了統一提示學習方法在SuperGLEU標準資料集上取得少樣本學習的最 佳平均效能。在SuperGLEU資料集上發現,統一提示學習方法比GPT-3在上下文推理能力能力更優(單句子任務的平均任務得分分別為83.2和70.0,句子對相關任務的平均得分為72.0和49.8),這說明了學習提示對提升模型效果非常有效,如何找到最 佳提示語非常關鍵。

中科院張家俊:ChatGPT中的提示與指令學習

圖 24 統一提示學習方法在SuperGLEU標準資料集單句子任務上的效果


中科院張家俊:ChatGPT中的提示與指令學習圖 25 統一提示學習方法在SuperGLEU標準資料集雙句子任務上的效果


開放性問題思考


一個月前寫了《ChatGPT八個技術問題的猜想》,後來一直在做模型探索,整理了一些開放性問題與觀眾讀者探討:

第一,實踐發現資料不僅僅決定模型效能,還能極大影響模型訓練過程的成敗,其中的原因是什麼。Meta去年釋出幾個模型,在訓練過程中失敗掛掉了二十多次,每一次資料會影響資料的訓練是否成功。

第二,能力湧現是如何發生的?為什麼會在百億引數規模以上才會體現出來?或者並非湧現,只是模型規模測試不夠連續。

第三,中文等語言的資料佔比非常少,例如只有不到5%,而模型的中文表現卻非常好?能力遷移是如何發生的。

第四,大模型的能力能否蒸餾到小模型。

第五,作為黑盒的通用大模型似乎與人腦有相似之處,未來是否可以採用腦科學研究正規化研究大模型。


參考文獻

[1] Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[J]. Advances in neural information processing systems, 2017, 30.

[2] Wei J, Bosma M, Zhao V Y, et al. Finetuned language models are zero-shot learners[J]. arXiv preprint arXiv:2109.01652, 2021.

[3] Schulman J, Wolski F, Dhariwal P, et al. Proximal policy optimization algorithms[J]. arXiv preprint arXiv:1707.06347, 2017.

[4] Von Rueden L, Mayer S, Beckh K, et al. Informed Machine Learning–A taxonomy and survey of integrating prior knowledge into learning systems[J]. IEEE Transactions on Knowledge and Data Engineering, 2021, 35(1): 614-633.

[5] Lester B, Al-Rfou R, Constant N. The power of scale for parameter-efficient prompt tuning[J]. arXiv preprint arXiv:2104.08691, 2021.

[6] Li X L, Liang P. Prefix-tuning: Optimizing continuous prompts for generation[J]. arXiv preprint arXiv:2101.00190, 2021.

[7] Liu P, Yuan W, Fu J, et al. Pre-train, prompt, and predict: A systematic survey of prompting methods in natural language processing[J]. ACM Computing Surveys, 2023, 55(9): 1-35.

[8] Wei J, Bosma M, Zhao V Y, et al. Finetuned language models are zero-shot learners[J]. arXiv preprint arXiv:2109.01652, 2021.

[9] Ouyang L, Wu J, Jiang X, et al. Training language models to follow instructions with human feedback[J]. Advances in Neural Information Processing Systems, 2022, 35: 27730-27744.

[10] Jin F, Lu J, Zhang J, et al. Instance-aware prompt learning for language understanding and generation[J]. arXiv preprint arXiv:2201.07126, 2022.

[11] Jin F, Lu J, Zhang J,et al. Unified prompt learning makes pre-trained language models better few-shot learners. ICASSP 2023.



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69997703/viewspace-2945064/,如需轉載,請註明出處,否則將追究法律責任。

相關文章