中文巨量模型“源1.0”:模型結構與生成效果解析

“源 1.0”自 2021 年 9 月底發佈以來收穫了廣泛的關注。其參數量達 2457 億,超越美國 OpenAI 組織研發的 GPT-3。“源 1.0”在語言智能方面表現優異,獲得中文語言理解評測基準 CLUE 榜單的零樣本學習(zero-shot)和小樣本學習(few-shot)兩類總榜冠軍。測試結果顯示,人羣能夠準確分辨人與“源 1.0”作品差別的成功率低於 50%。

  在之前的博客中,我們詳細論述瞭如何準備預訓練數據、模型本身如何訓練,以及在下游任務如何提升精度。在本篇中,我們將着重討論模型的結構問題,以及由模型結構帶來的效果。會回答以下三個問題:(1)“源 1.0”基礎模型結構是怎樣的?(2)爲什麼要選擇這樣的結構?(3)和模型結構相關的下游任務效果。

  1.  “源1. 0”基礎模型結構的選擇

  在介紹基礎模型結構之前,顯然要明確一件事情:我們想讓模型完成什麼呢?在自然語言處理(NLP)領域,所有的任務大體可以被分爲兩類:自然語言理解(NLU)任務和自然語言生成(NLG)任務,前者偏重於對語義的理解,而後者偏重於文本的創作。如果可能的話,開發者當然期望這個模型在兩類任務上同樣出色,但事實上,不同類型的 NLP 模型結構對兩類任務總是有所偏重的。如果只考慮在榜單上的表現,偏重於 NLU 任務可能會比較合適,因爲包括“源 1.0”衝擊的 CLUE 榜單在內,幾乎所有相似的榜單都偏重於自然語言理解任務,在 《中文巨量模型浪潮“源 1.0”的小樣本學習優化方法》(中文巨量模型“源1.0”的小樣本學習優化方法_ITPUB博客)這篇博文上也可以看到相關任務的介紹。爲了在榜單上取得更好的成績,自然應該選擇一個偏重於 NLU 的模型結構。然而,當我們考慮到模型實際應用的時候,就會發現 NLG 的應用場景更廣泛,沒有 NLG,也很難體先出 NLU 的價值。所以,在這個問題上,我們的認識是要優先保證模型具有出色的創作能力(NLG),而在 NLU 任務上也務必儘可能地提升效果。

  帶着這樣的初衷,“源 1.0”的基礎結構爲一個單向的語言模型,即根據上文預測下文的概率。其中的 Transformer 解碼器(Decoder)採用自迴歸的方式輸出序列。當處理不同的下游任務時,則會根據任務類型使用一個從文本到文本的框架,將所有任務處理成相似的格式,以便直接將預訓練的語言模型應用於不同的下游任務上。過去的研究已經證實,經典的單向語言模型結構是擅長 NLG 任務的,而在 NLU 任務上則相對薄弱一些。爲了進一步探索模型在 NLU 任務上的可能,在“源 1.0”的開發過程中,我們考慮了語言模型(Language Model,LM),和前綴語言模型(Prefix Language Model,PLM)兩種結構。兩種結構的主要區別在於掩碼的方式,如圖 1 所示。

  在t時刻,解碼器根據模型對輸出序列的預測概率,生成輸出序列中最右側的一位 (x5)的標記(token)。之後這個標記與輸入序列相連接,一起被送入模型以預測 t+1 時刻的輸出(x6)的標記。我們用這兩種模型結構分別訓練了 130 億參數量的兩個模型,Yuan LM-13B 和 Yuan PLM-13B,並把這兩個模型放在小樣本學習(FewCLUE)和零樣本學習(ZeroCLUE)場景下做了評估(表1)。關於表格中任務的詳細介紹,請參考博文《中文巨量模型浪潮“源 1.0”的小樣本學習優化方法》。

  表1(a)和(b)表明 LM 和 PLM 在 Zero-Shot 和 Few-Shot 上都具有優異的表現能力。LM 和 PLM 的零樣本平均得分都優於已往的最優結果。在 Csldcp、Tnews 和 Iflytek 任務上,模型的得分大大超過了以往零樣本學習的最優結果。模型在 Ocnli 上也取得了不錯的成績,比以往零樣本學習的最優結果高出6-8 個點。我們的監督微調方法與 GPT 的設計一致。 LM 和 PLM 的平均分數與以往最優分數相當,如表1(b)所示。與小樣本學習結果相比,微調對 Bustm、Csl 和 Wsc 有很大的改進。但是,對於在零樣本學習上表現出色的 Chid、Eprsmt、Tnews 和 Ocnli,微調貢獻很小甚至會有負面影響。

  比較 LM 和 PLM 的結果,我們注意到 LM 在 Zero-Shot 和 Few-Shot 上表現更好,而 PLM 在微調方面表現出色。微調通常會在大多數 NLU 的任務中帶來更好的準確性,這與我們一開始選擇模型結構的初衷相合。然而,當模型參數量從百億擴大到千億規模,比如對於我們的 “源 1.0”模型,微調會消耗大量的計算資源,這是不經濟的。所以最終,我們選擇 LM 作爲“源 1.0”的基礎架構。

  2.  “源 1. 0”的文本生成效果

  “源 1.0”更加出色的能力是體現在創作上(NLG)。爲了評價模型生成文本的效果,我們任意選擇了“源 1.0”生成的 24 個文本,包括 4 副對聯、5 首中文傳統和現代詩歌、5 篇新聞文章、5 個故事和 5 段對話。對聯、詩歌和對話的創作可以看作是短文本任務(~10-20 個標記),而新聞和故事生成可以看作是長文本任務(~300 個標記)。與之對比的人工寫的文章來自名家所作的詩歌、經典小說、搜狐新聞的新聞文章和 LCCC-large 數據集中的對話。參與者被要求選擇文章是“由人類撰寫”還是“由模型撰寫”,我們收集了 83 份有效問卷。根據我們的採訪,大多數受訪者會傾向於選擇 “更好的”那一篇是由人類創作的,而“稍差”的那一篇是模型生成的。

  圖 2 展示了這次實驗的結果。“源 1.0”創作的文章有 49.16% 的概率可以被正確識別爲“由模型撰寫”,這意味着參與者難以區分人工撰寫和模型生成的文章,尤其是現代詩和文章。新聞(42.12%)和故事(49.15%)的生成結果讓我們可以相信模型出色的長文本生成能力。在我們的參與者看來,一些模型撰寫的文章甚至比部分出自大師之手的文章還要好。對聯和詩歌的生成表明,儘管我們的預訓練語料中沒有加強古漢語,“源 1.0”也能夠創建具有一定形式的古漢語文本,如圖 2 所示。“源 1.0”也可以進行符合人類期望的對話(45.68%)。“源 1.0”目前能夠生成多種高質量的文本,如新聞稿件、故事續寫等。對於這些類別的任務,所產出的文章與人類創作的內容相差無,甚至達到了以假亂真的程度。

  在表 2 中展示了一些“源 1.0”對不同文體的駕馭能力,讀者可以稍加體會。

  從表2(b)(c)中,我們可以看到“源 1.0”的學習和模仿能力。在生成詩歌時,如果我們在輸入中給出某種風格的例子,模型就會傾向於生成相似風格的詩歌。在小說續寫中,模型也會依據輸入文本的風格,繼續文章的寫作。

  除了基本的創作能力以外,“源 1.0”其實還有一些有趣的能力,比如,模型可以學習一些原本不存在的詞的用法,也能夠具備一定的推理能力。比如我們在輸入中給出了這個詞的定義和例句,模型將用給定的信息編寫一個新句子。這個不存在詞包括名詞和形容詞。表3(a)顯示了模型在 One-shot 條件下的生成結果。在所有情況下,模型都對我們給出的新詞作出了近似正確的應用,這意味着我們的模型具有學習和模仿能力。這種能力在模型輔助科學文章寫作時特別有效,因爲對“源 1.0”來說學術文章中的大量定義可能是陌生的。表3(b)則展示了模型的邏輯推理能力,這些推理題對於人類來說尚有一定的挑戰、需要相當程度的推理和計算,但是模型卻可以快速給出答案,且正確率遠高於隨機。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章