復旦邱錫鵬:語言模型即服務,走向大模型的未來

ai科技評論 發佈 2022-12-22T06:10:58.628543+00:00

人類一直期待AI能在處理自然語言方面大放異彩,語言大模型在近些年已逐漸成為NLP領域的標配。隨著模型的擴張,當前大模型的調用已變成上游廠商開放API供下游使用的模式。這一模式被復旦大學邱錫鵬教授稱之為「語言模型即服務」。

人類一直期待AI能在處理自然語言方面大放異彩,語言大模型在近些年已逐漸成為NLP領域的標配。隨著模型的擴張,當前大模型的調用已變成上游廠商開放API供下游使用的模式。

這一模式被復旦大學邱錫鵬教授稱之為「語言模型即服務」。

在上周六 EMNLP 2022 論文預講會的特邀報告中,邱錫鵬教授詳細講解了語言模型越來越大的背景下對於新應用模式的探索,並分享了自己團隊在構建統一模型和尋找參數微調算法方面的成果。這些工作,有助於後人持續向上探索,繼而觸摸到大模型的天花板。

整理丨周致毅

邱錫鵬

復旦大學電子計算機科學技術學院教授,博士生導師。發布CCF A/B類畢業論文70餘篇,獲得ACL(CCF A類)2017優秀畢業論文獎、CCL 2019最佳畢業論文獎。出版發行開源系統著作《神經網絡與深度學習》,組織研發了開源系統自然語言理解專用工具 FudanNLP 和 FastNLP,在學界和工業界獲得了廣泛的應用。

1 何為語言模型

語言模型,即建造模型使其符合自然語言的語法及語義的規律。在學界,早期的形式文法等難以在當前海量語言數據持續增長的背景下,滿足對其建模的需要。

針對這一問題,學界開始嘗試通過概率表示對應的單詞和文法。即以一個符合語言規律的序列為輸入,模型利用序列間關係等特徵,輸出一個所有詞彙上的概率分布。這種方法的核心在於通過概率的大小反映自然語句中文法或者語義的約束。然而,由於單條語句在諸多情景下可能包含巨大的詞彙量,導致「傳統概率派」所需的計算資源爆炸式增長。

近年來,學界轉而開始嘗試通過條件概率和神經網絡的表示方法,在自然語言處理領域預先訓練得到大規模的語言模型,並針對具體場景製作特定數據集,供這些大模型在下游任務中通過參數微調以適配具體任務。這樣的模式在自然語言處理領域取得了優秀的表現效果。

近些年,大模型一直在展現其超凡的魅力。在BERT之後,人們開始嘗試不同的預訓練任務、模型架構、訓練策略等等。在這些探索之外,一個更加直接也更加有效的方向就是繼續增大數據量和模型容量來向上摸索這一模式的上界。從 GPT-3 開始,國內外諸多大廠就開始了大規模預訓練的軍備競賽,Google的Switch-Transformer,國內智源的CPM,百度的ERNIE 3.0,華為的盤古,阿里的PLUG,浪潮的源1.0等等。

目前非常具有代表性的預訓練語言大模型有:BERT、GPT和BART/T5。這些模型都是基於Transformer架構構造的,由於其強大的序列表徵能力,目前已變為語言大模型的主流網絡架構。

當前的主流大模型的使用模式是Pre-train(預訓練)+Fine-tuning(精調)的方式。諸如Google、Open AI這樣的大廠商將自身開發的大模型開源,供下游應用者在這些模型上進行參數的微調,以取得優異的表現。與之對應的,自然語言處理方面的學界研究者也被劃分為兩部分,一部分致力於在上游訓練出性能更為優異的大規模語言模型,另一部分則致力於將預訓練的大模型轉化為面向下游任務場景的合理應用。目前的情況是,在上游,模型的規模仍在不斷擴張;而隨著模型的擴大,工業界也發現大模型在Few-shot小樣本學習的任務上同樣取得了顯著的性能提升。

然而,當語言模型變得更大的時候,帶來一個雙向的問題:一方麵廠商出於商業原因逐漸捨棄開源,而用戶也缺乏足夠的計算資源使用大模型。這兩者的共同作用使得Pre-train + Fine-tuning模式逐漸消失。針對於此,一個解決方案是通過人工設計一些模板來匹配大模型,另一種是諸如GPT-3的In-context learning (在上下文中學習),即在應用中只使用大模型的前向過程,而不進行計算成本較高的反向過程。

基於GPT的方式,下游應用方只需要人工編造少量的樣例,便可以激活GPT大模型在特定任務上的表現,從而服務於下游的應用。比如使用GPT生成一個網頁或者將自然語言轉化為數學公式。目前的大模型運用方式普遍為上游產商開放大模型應用的API,下游應用方使用一些標註的數據來打造其在特定場景下的的特定功能。但相對於傳統的Fine-tuning模式,這種方法在諸多情況下的性能仍然有待提高。

如果模型是部署在服務端的,相當於將語言模型包裝成為一個服務品牌,這種新的運用場景就被稱之為語言模型即服務。其具備兩個基本的內涵,一是如何構造一個統一的基礎模型,二是如何高效地調節參數以適應具體的業務場景。

2 統一的基礎模型

構造統一的語言大模型,核心在於儘可能多地囊括語言任務。

依據目標的不同,自然語言處理的任務可以分為七個主要範式:分類、匹配、序列標註、機器閱讀理解、Seq2Seq、Seq2ASeq和語言模型範式。而隨著下游應用需求的變化,目前主流的三個範式是:機器閱讀理解、Seq2Seq和語言模型。一個基礎的語言模型應當圍繞著上述幾個主要的範式進行針對性構建,以解決大部分自然語言處理問題。

當前,以MLM(掩碼語言模型)、In-context learning(在上下文中學習)和Seq2Seq(序列到序列)為代表的處理形式解決了大部分自然語言處理任務。MLM旨在預訓練過程中,將一定比例的文本詞例屏蔽掉,而模型在訓練過程中需要預測被屏蔽掉的詞例。In-context learning是指學習從上下文中推理任務的能力。例如,類似GPT-3或者Gopher等大規模語言模型,通過指定對於任務的語言提示,能夠直接被用於解決類似文本補全,代碼生成以及文本摘要的任務。這種從提示中推理任務的能力通常被稱為上下文學習。Seq2Seq是序列到序列的意思,具體指從一個序列生成另外一個序列。該範式涉及兩個過程:一是理解前一個序列的內容,二是將理解的內容用於生成新的序列。

在自然語言處理中,很多任務並不能轉化為序列到序列的方式,比如方面級的情感分析(ABSA)。舉一個例子,分析「Drink are always well made」,這句話中有一個評價對象,還有一個評價詞以及整體的情感傾向,這些都需要從這個句子中獨立抽取出來。事實上,ABSA任務在學界被細分為7個子任務,每個任務由於輸入輸出的組合不同導致其相對獨立。比如有的任務只抽取方面詞,有的任務只抽取評價詞,不同人物的形式都不一樣,所以目前為止沒有一個模型能夠同時支持在ABSA任務裡面所有的子任務。

邱錫鵬團隊致力於將ABSA任務按照Seq2Seq的範式進行統一的實現。團隊提出的模型基於一個簡單的BART的Encoder-Decoder來構建映射詞典,使得算法可以在詞典內部進行預測。實驗結果證明,得益於BART預訓練模型的強大表徵能力,該模型在各個ABSA子任務的數據集上實現了SOTA的效果,同時也是世界上第一個囊括了所有ABSA子任務的模型。

NER(命名實體識別)也是在自然語言處理中非常重要的一類任務,涵蓋了諸多方面的子任務:

  • 連續的 NER:NER 中的詞是連續出現的;

  • 嵌入的 NER:在一個實體裡面嵌套另外一個實體;

  • 非連續的 NER:一個實體不連續地在正文出現。

傳統解決方式是依照各個子任務的特點量身定製,採用不同的算法來逐個擊破。比如連續的 NER就會採用序列標註的方式,非連續的NER基本上使用轉移方法。然而,序列標註很難處理非連續的NER,所以這些方法之間並不通用。

從直覺上分析,上述解決ABSA的框架可以極為妥帖地遷移到信息抽取任務中。因此,邱錫鵬團隊將一個同樣基礎的BART 的Encoder-Decoder運用到NER的3個子任務的主流數據集上,在目前主流的NER數據集上取得了SOTA的效果。這種框架的產生使得諸多複雜的結構化預測的任務得以在一個統一的框架內實現,極大地提升了預測的效率。

傳統的預訓練模型有幾類代表作,以BERT為例的理解模型,以GPT為代表的生成模型和BART。既然構造大模型的初衷是為了合眾歸一,那麼能不能將它們匯總到一起?為此,團隊於2021年提出了一個新的模型——CPT,其核心思想就是將理解任務和生成任務合併到一起,由此提出了一個非對稱的Transformer模型結構:CPT。該結構由一個Encoder(任務間共用)和兩個Decoder(一個面向理解,一個面向生成)組成,既具備理解的能力又具備生成的能力。此外,由於Decoder網絡層次設計得比較淺,使得模型的生成效率提高了2倍以上,在中文數據集上取得了相較於BERT更好的效果。

3 更高效地調節算法

構建起基礎的統一預訓練模型之後,怎樣更加有效地將其遷移到下游的各種具體任務上呢?傳統的做法有四種方式:Text prompt、In-context learning、數據生成,特徵學習。而邱錫鵬團隊貢獻出兩種方法:即標籤調試和黑箱優化。

傳統的fine-tuning方法是將Feature Space(特徵空間)的參數通過微調映射到Label Space(標籤空間),但當模型在大空間向小空間調整的過程中,非常容易發生過擬合的現象。邱錫鵬團隊反其道而行之,將Feature Space固定住,調節Label Space使其向Feature Space靠攏。標籤常用字母「y」來表示,所以這個方法叫做「y-Tuning」。

團隊之前的一個工作是將文本分類任務轉化為文本匹配任務,從而可以引入更多針對於標籤的語義信息,來提升面向下游具體任務的效果。同樣,團隊將這一思想應用到Fine-tuning中,將標籤作為網絡的輸入,與預訓練模型獲得的特徵相結合,可以實現更為顯式地建模標籤的語義,不需要大模型的梯度,極大地減小了計算開銷。實驗結果驗證,在SuperGLUE數據集上,標籤遷移比參數遷移的效果更為突出。

另一個方法是黑箱優化。整體思想是,把一個預訓練模型部署在伺服器端,將其當成一個黑盒子,只提供前項的計算,並通過增加一些Adapt、Prompt來進行參數調節,最終適配到不同的任務上。在大模型時代,手工設計一些代理任務往往依賴於人工的經驗,團隊希望能夠給大模型以自動調節的能力,而不依賴於手工。

然而在現實中,由於prompt的高維度特性,導致無梯度優化的效果很差。而邱錫鵬團隊將prompt投射到一個更低維度的空間,在這個空間上進行無梯度的參數優化,再將優化得到的參數逆映射到原始空間。隨後,受Prefix Tuning和P-Tuning v2的啟發,團隊在原始的黑箱優化模型上進行網絡層面的加深,希望進一步提升模型的表現,但卻引來了參數量大的問題。為此,團隊將模型分解為從底層向上逐層的黑箱優化,降低了模型需要訓練的參數量,構成了BBTv2模型。在實際的小樣本數據集中,這種方法實現的效果可以達到與有梯度的訓練模型相媲美。

黑箱調節的意義在於,對於預訓練大模型,使用無梯度方法能夠打敗基於梯度的方法,賦予了一些大模型更為廣闊的應用場景,即只需要前向計算就可以實現特定的下游任務。

最後,邱錫鵬教授分享了團隊開發的一套面向自然語言理解的工具——FastNLP。這套工具可以十分方便地在線調解程序,並支持多卡分布式訓練,同時適用於多套國產深度學習框架(如Paddlepaddle)。該工具目前已開源,歡迎廣大學界和工業界的朋友使用。

4 總結

隨著預訓練語言模型的規模急劇增長,出於商業角度考慮和高昂的端側微調成本,許多大規模預訓練語言模型(如GPT-3等)不再被開源,轉而以提供API的方式供下游用戶在特定場景下進行推理使用,這一場景被稱之為「語言模型即服務」。語言模型即服務的應用手段,大致可以劃分成五類:

  • Text prompt:

    通過人工設計一些基於文本的Prompt,激活大模型面向特定下游任務的能力。但是手工設計偏向於特徵工程問題,需要工程師依據既往經驗不斷調試,十分耗費精力。

  • In-context learning:

    In-context learning 在GPT模型上展現了良好的表現,但在其他範式的模型上還需要進一步的驗證。但是這種手段開闢了一個極具前景的方向,值得學界和工業界繼續共同研究。

  • Data generation:

    不同於直接使用大模型,這種手段是使用大模型生成一定量的數據,再利用生成的數據訓練一個小體量的模型,以追求在小樣本場景下的應用效果。

  • Black-box optimization:

    即上文所述的Black-box tuning,讓用戶根據推理API的返回結果,使用基於搜索的無梯度優化方法自己優化prompt。

  • Feature-based-learning:

    把預訓練模型的輸出作為一種 Feature,並結合標籤,輸入給一些特定的模型,使參數由標籤空間向特徵空間靠攏,極大地減輕了端側優化的負擔。

5 Q&A環節

分享結束後,與會師生同邱錫鵬教授進行了互動交流。部分問題節選如下:

Q:GPT-3具備In-context learning的能力是因為其獨特的訓練方式嗎?

A:因為GPT-3模型的優化細節沒有被詳細闡明。我個人認為其背後的設計團隊專門針對In-context learning這種方式進行過優化。事實上,GPT-3的效果還在不斷地提升中,因為使用者可以在使用過程中不斷為其輸入大量的prompt或者In-context learning 的事例,供模型在後台進行挑選,用於進一步訓練。此外,這個模型的構建過程中有可能使用了類似於最近鄰的方法,從輸入的例子中尋找與之最相近的模式,以求得最為近似的輸出,從而賦予了其上下文學習的能力。

Q:您所提到的Y-tuning不需要計算梯度?

A:實際上準確地講,Y-tuning的模式分為兩路進行,一路是預訓練模型,另一路才是做標籤遷移。這種訓練方式是不需要計算預訓練語言模型的梯度,但標籤遷移部分的梯度仍然是需要調節的。由於模型的參數主要集中於預訓練模型中,所以採用這種方式進行Fine-tuning會在很大程度上降低計算量。

Q:黑箱調節在各種任務上與模型全參數微調的性能差距有多大?

A:在很多任務的數據集上,這種調節方式所取得的效果,已經與全參數微調旗鼓相當,甚至在一部分任務上超越了全參數微調。另外值得注意的是,黑箱調節的計算量相較於後者小得多。因此,黑箱調節也為大模型的服務創造了新的場景。

Q:CPT共用一個Encoder的理念是基於什麼想法?

A:CPT最開始是基於BART的思想。BART僅僅是一個生成模型,但我們認為如此大的一個語言模型不將其運用於理解任務著實可惜。另外從直覺上來說,無論是語言理解還是語言生成,在Encoder的輸入端的知識應該是共享的,於是我們借用BART的Encoder-Decoder就催生出來了CPT的理念。

Q:為什麼GPT比Seq2Seq更適合做MLM任務?

A:因為GPT的模型更大,知識容量更高,所以其記住的不僅是語言知識,還有能力記住更多非語言方面的知識。同時這也是我們探索大模型的目的:希望其能夠囊括更多的自然語言處理任務。而Seq2Seq範式學習到的更多的是偏向於重構語言的方式,在語義方面的知識學習能力偏弱。

關鍵字: