本文首發于:行者AI
從最初的GPT1和BERT模型到GPT3,在更多的訓練數據及更強力的算力加持下,大規模的預訓練模型逐漸走上了一條參數暴漲的不歸路。GPT3比起前作GPT2參數增加了100倍,達到了令人驚嘆的1750億,與此同時,這些模型對應的論文也從10多頁增加到72頁。這些劇烈變動的趨勢反映了學界對通用語言模型的殷殷期盼。
天量參數加持下的GPT3一經問世就引起了眾多深度學習界研究人員的關注,雖然在測試表現中存在著“邏輯硬傷”等明顯的缺陷,但是瑕不掩瑜,其出色的生成效果和令人驚嘆的少樣本學習(few-shot)能力得到了眾多研究人員的肯定。
令人遺憾的是對于國內的研究者而言,由于GPT3主要是在英文數據集下訓練,不能直接用于中文數據的處理。而對于中文數據的自然語言處理也迫切需要大規模的預訓練模型,清源團隊在2020年11月份發布了在巨量中文語料下訓練得到的大規模預訓練模型——CPM。也被稱之為中文版的GPT3,最大版本擁有26億參數。在實際測試中收獲了很多驚喜,尤其是它的少樣本學習能力,著實令人印象深刻。
下面就來一起感受一下它的驚艷之處。
表0-1 近幾年有代表性的大規模自然語言處理預訓練模型的概況
模型 | 發布時間 | 參數量 | 訓練數據量 |
---|---|---|---|
GPT | 2018年6月 | 1.17 億 | 約5GB |
bert(large) | 2018年10月 | 3.4億 | 13GB |
GPT-2 | 2019 年 2 月 | 15 億 | 40GB |
T5 | 2019年10月 | 110 億 | 750GB |
GPT-3 | 2020 年 5 月 | 1750 億 | 570GB |
CPM | 2020年11月 | 26億 | 100GB |
1. 生成效果
CPM模型的論文中自然不乏以專業指標來表示的測試結果,雖顯嚴謹,但卻無法直觀地感受到模型的具體效果,故本文羅列了眾多具體的生成實例,可以直觀感受其強大之處。
1.1 少樣本問答生成
問答是自然語言處理領域中一個經典應用場景,諸如智能客服,閑聊機器人都是該場景的具體應用。CPM的訓練數據集中也包含部分問答數據(見表2-1),故整體來看在問答場景的效果有著意料之中的較好表現。
CPM模型在常識問答(表1-1)中大多數都能正確回答,少數回答錯誤的例子在范圍上并沒有偏離太多,如“黃曉明的老婆是誰”雖然回答錯誤,但回答內容也是一個人名,從范圍上來看并沒有偏離太多。類似“砒霜可以吃嗎”這種詢問是否可以的問題模型似乎學會了習慣性的說"可以"(真是個順從的好boy)。
表1-1 常識問答
問題 | 模型回答 | 參考答案 |
---|---|---|
紅樓夢誰寫的? | 曹雪芹。 | 曹雪芹 |
袁隆平的貢獻有哪些 | 雜交水稻。 | 雜交水稻 |
朝鮮戰爭中美國的最高指揮官是誰 | 麥克阿瑟。 | 麥克阿瑟 |
朝鮮戰爭中指揮中國人民志愿軍的指揮官是誰 | 彭德懷。 | 彭德懷 |
美國的首都是哪里? | 華盛頓。 | 華盛頓 |
中國的國旗是什么 | 五星紅旗。 | 五星紅旗 |
美國的國旗是什么 | 星條旗。 | 星條旗 |
是誰發現了新大陸 | 哥倫布。 | 哥倫布 |
誰發明了交流發電機 | 愛迪生。 | 波利特·皮克西 |
七下西洋的人是誰 | 鄭和。 | 鄭和 |
李世民的謚號是什么 | “太宗文武大圣大廣孝皇帝”。 | 文武大圣大廣孝皇帝 |
轉基因食品可以吃嗎 | 可以。 | 可以 |
砒霜可以吃嗎 | 可以。 | 不可以 |
毒品和賭博的危害那個大一些 | 都很大。 | 都很大 |
巴黎是中國的城市嗎 | 不是。 | 不是 |
深圳是中國的城市嗎 | 深圳。 | 是 |
可以做電子表格的軟件是什么 | Excel。 | Excel |
編曲常用的軟件是什么 | FL studio。 | FL studio |
常見的操作系統有哪些 | windows。 | windows,unix,linux |
人體最脆弱的部位是什么 | 心臟。 | - |
蒜這個字怎么讀 | jiǎo。 | suàn |
空軍的英文怎么說 | Air Force。 | Air Force |
人類的平均壽命 | 男性為70歲,女性為70歲。 | - |
黃曉明的老婆是誰 | 黃曉明。 | 楊穎 |
號稱睜眼看世界第一人是誰 | 牛頓。 | 魏源 |
歷史上最大的地震 | 唐山大地震。 | 智利大地震 |
小說的三要素是什么 | 矛盾、沖突、懸念。 | 人物形象、故事情節、典型環境 |
你對袁天罡的預言怎么看 | 袁天罡是唐朝的人。 | - |
注:“-”代表沒有參考答案,屬于開放式問題,下同。
生活話題(表1-2)的回答還反映了模型“機智”的一面,對于“鳳姐和鞠婧祎誰更漂亮”的問題學會了兩邊都不得罪。對于“男朋友是渣男怎么辦”的問題模型更是毅然決然的拋出了兩個字“分手”。
表1-2 生活話題問答
問題 | 模型回答 | 參考答案 |
---|---|---|
上班的意義是什么 | 掙錢。 | - |
人生的意義是什么 | 活著。 | - |
鳳姐和鞠婧祎誰更漂亮 | 都漂亮。 | - |
你覺得同事能成為朋友嗎 | 不能。 | - |
砒霜能吃嗎 | 不能。 | - |
雞蛋能吃嗎 | 不能。 | - |
最想從事的職業 | 教師。 | - |
女朋友生氣了怎么辦 | 哄。 | - |
男朋友生氣了怎么辦 | 哄。 | - |
微信好用還是qq好用 | 微信。 | - |
工作太多做不完怎么辦 | 把工作做完。 | - |
淘寶的商品怎么退款 | 退貨。 | - |
在網上玩彩票半個月輸了我幾十萬!我該怎么辦? | 你可以去網上玩,現在這種網站有很多的,但是小心進了黑網,你要是想玩的話我可以給你推薦一個,這個網站做了挺多年了信譽絕對沒問題,放心玩 | - |
雙十一最暢銷的產品 | 蘋果。 | - |
男朋友是渣男怎么辦 | 分手。 | - |
模型對相似概念的區分(表1-3)遭遇了滑鐵盧,不難看出模型的“知識學習”的并不是很扎實,多數時候只能給出一些似是而非的回答,但個別回答也能表現出模型具有一定的分辨相似概念的能力,還是令人稱奇。
表1-3 相似概念區分
問題 | 模型回答 | 參考答案 |
---|---|---|
滑膛炮和線膛炮的區別是什么 | 滑膛炮是一種火炮,線膛炮是一種火炮。 | 線膛炮與滑膛炮的區別就在于炮管內是否刻有膛線。 |
牛奶和奶牛的區別是什么 | 牛奶是奶牛的奶,牛奶是牛奶的奶。 | 牛奶是一種飲料,奶牛是一種動物 |
空虛與虛空有什么不同 | 空虛是沒有內容的,虛空是有內容的。 | 虛空指心中無著落,也指空間定義很抽象的概念。 空虛是指百無聊賴、閑散寂寞的消極心態 |
蜂蜜和蜜蜂有何區別 | 蜜蜂是益蟲,蜂蜜是害蟲。 | 蜂蜜是蜜蜂采集植物的花蜜制成的一種物質,蜜蜂是一種昆蟲 |
故事和事故有何區別 | 故事是真實的,事故是虛構的。 | 故事可能是虛構的,事故一般是真實的。 |
牙刷與刷牙有何區別 | 牙刷是用來刷牙的,而刷牙是用來清潔牙齒的。 | 牙刷是一種清潔牙齒的工具,刷牙是使用牙刷清潔牙齒的行為 |
乙醇和酒精有什么區別 | 乙醇是酒精的一種,酒精是乙醇的一種,乙醇是酒精的一種。 | 乙醇是學名,酒精是俗名 |
TNT和三硝基甲苯有什么區別 | TNT是一種炸藥,三硝基甲苯是一種炸藥。 | TNT是一種炸藥的英文縮寫,三硝基甲苯是一種炸藥的學名 |
炸藥和炸彈的區別 | 炸藥是炸藥,炸彈是炸彈。 | 炸藥是指能發生爆炸的物質成分,炸彈是將炸藥、控制裝置、包殼材料組合在一起制成的一種武器 |
股票和基金的區別 | 股票是股份公司發行的所有權憑證,基金是一種利益共享、風險共擔的集合投資方式。 | 股票是股份公司發行的所有權憑證,基金是一種利益共享、風險共擔的集合投資方式 |
染色體和基因是什么關系 | 染色體是基因的載體。 | 基因是包含特定蛋白質編碼的DNA 片段,染色體是基因的載體,一般存在于細胞核內。 |
中國有多少人口 | 960萬。 | 14億 |
中國的國土面積有多大 | 960萬平方公里。 | 960萬平方公里 |
多進程和多線程有的不同之處 | 多進程是指一個進程可以同時執行多個線程,多線程是指一個線程可以同時執行多個線程。 | 線程是進程的子集,一個進程可能由多個線程組成。多進程的數據是分開的,共享復雜,但同步簡單。多線程共享進程數據,共享簡單,但同步復雜。 |
tcp協議和udp協議有何區別 | tcp協議是一種協議,而udp協議是一種協議。 | TCP是面向連接的協議,在收發數據前必須和對方建立可靠的連接,建立連接的3次握手、斷開連接的4次揮手,為數據傳輸打下可靠基礎;UDP是一個面向無連接的協議,數據傳輸前,源端和終端不建立連接,發送端盡可能快的將數據扔到網絡上,接收端從消息隊列中讀取消息段。 |
鑰匙可以放在盒子里面嗎 | 可以。 | 可以 |
盒子可以放在鑰匙里面嗎 | 可以。 | 不可以 |
python和java的區別 | python是一種腳本語言,java是一種面向對象的語言。 | Java必須顯式聲明變量名,而動態類型的Python不需要聲明變量;Python虛擬機沒有Java強,Java虛擬機是Java的核心,Python的核心是可以很方便地使用c語言函數或c++庫;Java 的類型要聲明,Python 的類型不需要。 |
筆記本和筆記本電腦有什么區別 | 筆記本電腦是筆記本電腦,筆記本電腦是筆記本電腦,筆記本電腦是筆記本電腦。 | 筆記本是一種紙質的信息記錄載體,筆記本電腦是一種小型的便于攜帶的個人計算機 |
高鐵和火車有什么不一樣 | 高鐵是動車,火車是動車。 | 高鐵是高速鐵路的簡稱,并不是一種交通工具,而動車組和普通火車都屬于交通工具 |
“詢問”了模型5道簡單的個位數算術題,模型僅做對了兩道(表1-4),暴露了模型不善數學的一面。
表1-4 算術問答
問題 | 模型回答 | 參考答案 |
---|---|---|
4+4= | 8 | 8 |
6+6= | 12 | 12 |
6-4= | 1 | 2 |
7-3 | 2 | 4 |
6-3+1= | 6 | 4 |
前面見識到模型對相似概念區分有一定辨識能力后,便進一步的好奇模型對于專業知識的回答會有何表現。一番測試后發現模型對專業知識的回答大部分還都是正確的(表1-5),著實令人意外?;卮疱e誤例子中模型便只是給出了一些相關的內容,綜合前面幾個方面的問答,能感受到模型給出結果的背后邏輯似乎是相關性。
表1-5 專業知識問答
問題 | 模型回答 | 參考答案 |
---|---|---|
酸和堿有什么區別 | 酸是一種化學物質,堿是一種化學物質。 | 三種答案:<br />1.在水溶液中電離出的陽離子全部是氫離子的化合物叫做酸,在水溶液中電離出的陰離子全部是氫氧根離子的化合物叫做堿。<br />2.凡是能給出質子的物質都是酸,凡是能接受質子的都是堿。<br />3.凡是能接受電子對的物質都是酸,凡是能給出電子對的物質都是堿。 |
不可導函數能求積分嗎 | 不能。 | 不一定 |
可導函數能求積分嗎 | 不能。 | 能 |
函數處處可導與函數連續是互為充分必要條件嗎 | 不是。 | 不是 |
肝臟對人體的作用是什么 | 肝臟是人體的重要器官,它的作用是維持人體的正常生理功能,并且對人體的生長發育、免疫、內分泌、生殖等都有重要的作用。 | 肝臟是人體的主要解毒器官,它可保護機體免受損害 |
酒精的化學成分是什么 | 乙醇 | 乙醇 |
甲醛的化學表達式是什么 | HCHO。 | HCHO |
C4炸彈的主要成分是什么 | 氰化鈉。 | RDX(旋風炸藥) |
ATP是什么 | 能量。 | 三磷酸腺苷(細胞內的“能量貨幣”) |
商品的價值由什么決定 | 由商品的價值決定。 | 是由某一商品或勞務所帶給購買人的效用所決定的 |
原子核是什么構成的 | 質子和中子。 | 質子和中子 |
質子是什么構成的 | 質子是由夸克構成的。 | 夸克 |
熱力學第零定律是什么 | 熵增。 | 熱平衡定律(若兩個熱力學系統均與第三個系統處于熱平衡狀態,此兩個系統也必互相處于熱平衡) |
熱力學第一定律是什么 | 能量守恒。 | 能量守恒定律(熱量可以從一個物體傳遞到另一個物體,也可以與機械能或其他能量互相轉換,但是在轉換過程中,能量的總值保持不變) |
牛頓第一定律是什么 | 慣性定律。 | 慣性定律(任何物體都要保持勻速直線運動或靜止狀態,直到外力迫使它改變運動狀態為止) |
牛頓第二定律是什么 | 力的作用是相互的。 | 物體加速度的大小跟作用力成正比,跟物體的質量成反比,且與物體質量的倒數成正比 |
愛因斯坦因為什么得了諾貝爾獎 | 相對論。 | 光電效應 |
誰發現了量子糾纏現象 | 中國的科學家。 | 約翰·克勞澤與史達特·弗利曼 |
什么是楞次定律 | 楞次定律是指物體在不受外力作用時,總保持勻速直線運動或靜止狀態,直到有外力迫使它改變這種狀態為止。 | 感應電流的效果總是反抗引起感應電流的原因(電磁學的“慣性定律”) |
大陸法系和海洋法系有何區別 | 大陸法系是以英美法系為基礎,以判例法為主要立法依據,以判例為主要立法依據,以判例為主要立法依據,以判例為主要立法依據,以判例為主要立法 | 大陸法系,源于法德等大陸國家,判例在法律上不被認為是具有正式意義上的淵源,法被理解為抽象規范。海洋法也稱為普通法,源于英國,盛于美國,制定法和判例法都是正式的法的淵源。 |
測完模型的“專業性”,又開始好奇模型的“內涵”,所以有了下面一些哲學問答(表1-6)。雖然對于靈魂三問模型只是給出了一些很摸不著頭腦的回答,但是似乎也不妨礙它啟發人類(“人工智能是人類的希望?!保?。
表1-6 哲學話題問答
問題 | 模型回答 | 參考答案 |
---|---|---|
先有雞還是先有蛋 | 先有雞,后有蛋。 | - |
我是誰 | 我是中國人。 | - |
我從哪里來 | 我是從天上來的。 | - |
我要到哪里去 | 我要到北京去。 | - |
人工智能存在的意義 | 人工智能是人類的希望。 | - |
宇宙的目的是什么 | 宇宙的目的是讓我們的生活更美好。 | - |
死亡意味著什么 | 死亡意味著生命的結束。 | - |
人類的存在有什么意義 | 繁衍。 | - |
人類不同于動物的地方是什么 | 人類的智慧。 | - |
1.2 少樣本古詩詞及歇后語續寫
對于古詩詞續寫(表1-7)模型似乎是“滿分考生”,而歇后語續寫(表1-8)亦是穩穩當當。
表1-7 古詩詞續寫
前句 | 模型續寫 | 參考答案 |
---|---|---|
床前明月光 | 疑是地上霜。 | 疑是地上霜 |
誰知盤中餐 | 粒粒皆辛苦。 | 粒粒皆辛苦 |
無可奈何花落去 | 似曾相識燕歸來。 | 似曾相識燕歸來 |
帝高洋之苗裔兮 | 朕皇考曰伯庸。 | 朕皇考曰伯庸 |
天生我材必有用 | 千金散盡還復來。 | 千金散盡還復來 |
知否知否 | 應是綠肥紅瘦。 | 應是綠肥紅瘦 |
表1-8 歇后語續寫
前文(prompt) | 生成結果 | 參考結果 |
---|---|---|
麻雀雖小 | 五臟俱全 | 五臟俱全 |
周瑜打黃蓋 | 一個愿打 一個愿挨 | 一個愿打 一個愿挨 |
雞蛋碰石頭 | 頭破血流 | 自不量力 |
姜太公釣魚 | 愿者上鉤 | 愿者上鉤 |
肉包子打狗 | 有去無回 | 有去無回 |
丈二和尚 | 摸不著頭腦 | 摸不著頭腦 |
司馬昭之心 | 路人皆知 | 路人皆知 |
1.3 少樣本實體生成
實體生成表現出了CPM模型在少樣本學習上的優良性能,且模型訓練時并沒有針對此類數據進行過訓練,卻僅通過兩個例子(附-4)就能“悟到”需要給出的回答應該是什么樣的。
表1-9 實體生成-首都
前文(prompt) | 生成結果 | 參考結果 |
---|---|---|
英國 首都 | 倫敦 | 倫敦 |
瑞典 首都 | 斯德哥爾摩 | 斯德哥爾摩 |
德國 | 首都 柏林 | 首都 柏林 |
阿富汗 首都 | 喀布爾 | 喀布爾 |
巴西 首都 | 巴西利亞 | 巴西利亞 |
加拿大 首都 | 渥太華 | 渥太華 |
南非 首都 | 開普敦 | 開普敦/布隆方丹/比勒陀利亞 |
印度 首都 | 新德里 | 新德里 |
澳大利亞 首都 | 悉尼 | 坎培拉 |
對于首都的實例生成(表1-9)和國內省會城市的實體生成(表1-10),模型幾無差錯,但對國外的省會(首府)城市便有些差強人意了。
表1-10 實體生成-省會
前文(prompt) | 生成結果 | 參考結果 |
---|---|---|
四川 省會 | 成都 | 成都 |
廣西 省會 | 南寧 | 南寧 |
遼寧 省會 | 沈陽 | 沈陽 |
江蘇 省會 | 南京 | 南京 |
內蒙古 省會 | 呼和浩特 | 呼和浩特 |
內蒙古自治區 省會 | 呼和浩特 | 呼和浩特 |
海道 省會 | 札幌 | 札幌 |
德克薩斯 省會 | 達拉斯 | 奧斯汀 |
新澤西州 省會 | 新澤西 | 特倫頓 |
加利福尼亞州 省會 | 洛杉磯 | 薩克拉門托 |
雖然對于學科相關的實體生成論文中已有例舉,但筆者還是按捺不住好奇之心做了些許嘗試,效果依然令人印象深刻。
表1-11 實體生成-學科
前文(prompt) | 生成結果 | 參考結果 |
---|---|---|
宇稱不守恒 學科 | 天文學 | 物理學 |
柯西不等式 學科 | 數學 | 數學 |
催化劑 學科 | 催化劑 | 化學 |
煙酰胺腺嘌呤二核苷酸磷酸 學科 | 生物化學 | 生物化學/生物 |
ATP 學科 | 高能物理 | 生物化學/生物 |
過秦論 學科 | 政治學 | 政治學/文學 |
邊際效應遞減 學科 | 品牌管理學 | 經濟學 |
資產證券化 學科 | 金融學 | 金融學/經濟學 |
大三和弦 學科 | 音樂 | 音樂學 |
試驗行至此處,突然有了一個大膽的想法:若是不加微調地對模型直接進行少樣本學習下的詞性分析結果會如何呢?基于此進行了簡單嘗試得到了表1-12,雖然結果未能達到預期,但是卻也顯示出了CPM在這方面的潛力。不難讓人相信,若是進行一番針對性的微調訓練,它在詞性識別任務上也能有不俗的表現。
表1-12 實體生成-詞性
前文(prompt) | 生成結果 | 參考結果 |
---|---|---|
漸漸地 詞性 | 副詞 | 副詞 |
故宮 詞性 | 名詞 | 名詞 |
它 詞性 | 名詞 | 代詞 |
個 詞性 | 名詞 | 量詞 |
噸 詞性 | 形容詞 | 量詞 |
在 詞性 | 名詞 | 介詞 |
啪 詞性 | 副詞 | 擬聲詞 |
雖然 詞性 | 名詞 | 連詞/介詞 |
唉 詞性 | 副詞 | 嘆詞 |
基于前面,進一步發散思維做了顏色的實體生成(表1-13),從結果來看依然有著不錯的潛力。
表1-13 實體生成-顏色
前文(prompt) | 生成結果 | 參考結果 |
---|---|---|
銀杏樹 顏色 | 綠色 | 綠色/黃色 |
干冰 顏色 | 白色 | 白色 |
硫酸銅溶液 顏色 | 藍色 | 藍色 |
氯氣 顏色 | 紫色 | 淺黃色/黃色 |
面粉 顏色 | 白色 | 白色 |
頭發 顏色 | 黑色 | - |
屏幕 顏色 | 黑色 | - |
嘴唇 顏色 | 紫色 | 紅色/紫色 |
桔子 顏色 | 黃色 | 黃色/橙色 |
餐巾紙 顏色 | 藍色 | 白色 |
切倫科夫射線 顏色 | 藍色 | 藍色 |
銅 顏色 | 綠色 | 橙紅色/紅色 |
程序員 顏色 | 黑色 | - |
青霉素 顏色 | 藍色 | 白色 |
瓷器 顏色 | 黑色 | - |
太陽 顏色 | 黃色 | 黃色/金色 |
基于前面的種種表現,從字符判斷語種反而對模型而言算是一個簡單的任務了,表1-14測試的結果都是給出了正確答案。
表1-14 實體生成-語種判斷
前文(prompt) | 生成結果 | 參考結果 |
---|---|---|
ich 語言 | 德語 | 德語 |
l'eau 語言 | 法語 | 法語 |
??? 語言 | 韓語 | 韓語 |
空気 語言 | 日語 | 日語 |
α?ρα? 語言 | 希臘語 | 希臘語 |
воздух 語言 | 俄語 | 俄語 |
???????? 語言 | 法語 | 泰語 |
??????? 語言 | 阿拉伯語 | 阿拉伯語 |
對于性別的實體生成(表1-15)模型似乎也能給出一些說得過去的答案,真是令人意想不到。
表1-15 實體生成-性別
前文(prompt) | 生成結果 | 參考結果 |
---|---|---|
游戲 性別 | 男 | - |
美顏 性別 | 男 | - |
連衣裙 性別 | 女 | 女 |
玫瑰 性別 | 女 | 女 |
胭脂 | 性別 女 | 性別 女 |
空姐 性別 | 女 | 女 |
護士 性別 | 女 | 女 |
醫生 性別 | 男 | - |
皇后 性別 | 女 | 女 |
皇帝 性別 | 男 | 男 |
美容美發 性別 | 男 | - |
懷孕 性別 | 男 | 女 |
高圓圓 性別 | 女 | 女 |
胡歌 性別 | 男 | 男 |
職業方面的實體生成(表1-16)測試了從古至今各個行業的一些著名人物,絕大多數都給到了正確的結果,似乎顯示了模型的“博古通今”。
表1-16 實體生成-職業
前文(prompt) | 生成結果 | 參考結果 |
---|---|---|
李云龍 職業 | 軍人 | 軍人 |
岳飛 職業 | 軍人 | 軍人 |
劉慈欣 職業 | 作家 | 作家 |
李克強 職業 | 總理 | 總理 |
袁隆平 職業 | 農民 | 農學家/科學家 |
錢學森 職業 | 科學家 | 科學家 |
白求恩 職業 | 醫生 | 醫生 |
李世民 職業 | 皇帝 | 皇帝 |
李白 職業 | 詩人 | 詩人 |
楊利偉 職業 | 航天員 | 航天員 |
呂不韋 職業 | 商人 | 商人/政治家 |
馬云 職業 | 商人 | 商人 |
求伯君 職業 | 演員 | 商人/程序員 |
王進喜 職業 | 農民 | 工人 |
朗朗 職業 | 鋼琴家 | 鋼琴家 |
拉瓦錫 職業 | 化學家 | 化學家 |
達爾文 職業 | 科學家 | 科學家/生物學家 |
哥倫布 職業 | 探險家 | 探險家/航海家 |
洪秀全 職業 | 農民 | 起義領袖 |
特斯拉 職業 | 工程師 | 工程師/發明家 |
阿蘭圖靈 職業 | 數學家 | 數學家 |
鄧小平 職業 | 政治家 | 政治家 |
貝多芬 職業 | 作曲家 | 作曲家 |
畢加索 職業 | 畫家 | 畫家 |
雖然對于導演/主演的實體生成(表1-17)中所給的例子都為導演(見附-10),但是有一次展現了模型的“領悟”能力,對于主演的實體生成也是不在話下。
表1-17 實體生成-導演/主演
前文(prompt) | 生成結果 | 參考結果 |
---|---|---|
盜夢空間 導演 | 諾蘭 | 克里斯托弗·諾蘭 |
辛德勒的名單 導演 | 斯皮爾伯格 | 斯蒂芬·斯皮爾伯格 |
超體 導演 | 克里斯托弗·諾蘭 | 呂克·貝松 |
盜夢空間 主演 | 萊昂納多·迪卡普里奧 | 萊昂納多·迪卡普里奧 |
末代皇帝 導演 | 張藝謀 | 貝爾納多·貝爾托盧奇 |
讓子彈飛 導演 | 姜文 | 姜文 |
流浪地球 導演 | 詹姆斯·卡梅隆 | 郭帆 |
綠里奇跡 導演 | 宮崎駿 | 弗蘭克·德拉邦特 |
最后嘗試了一下用實體生成來尋找近義詞(表1-18),卻發現模型對于此任務表現一般,很容易就生成一些并不是近義的詞匯。
表1-18 實體生成-近義詞
前文(prompt) | 生成結果 | 參考結果 |
---|---|---|
去世 近義詞 | 死亡 | 過世 |
平分秋色 近義詞 | 勢均力敵 | 勢均力敵/難分伯仲 |
過河拆橋 近義詞 | 棄子 | 卸磨殺驢/上屋抽梯 |
背叛 近義詞 | 忠貞 | 變節/反水 |
痊愈 近義詞 | 康復 | 病愈/康復 |
不曉得 近義詞 | 不知道 | 不知道 |
拍掌 近義詞 | 拍手 | 拍手/鼓掌 |
打仗 近義詞 | 廝殺 | 交兵/戰爭 |
白開水 近義詞 | 白開水 | 白水/涼白開 |
2. 預訓練模型簡介
2.1 模型規格與 數據集
表2-1 CPM模型的3種規格
n_param | n_layers | d_model | n_heads | d_head | |
---|---|---|---|---|---|
CPM-Small | 109M | 12 | 768 | 12 | 64 |
CPM-Medium | 334M | 24 | 1024 | 16 | 64 |
CPM-Large | 2.6B | 32 | 2560 | 32 | 80 |
表2-2 CPM模型的訓練集構成
數據源 | Encyclopedia(百科) | Webpage(網頁) | Story(故事) | News(新聞) | Dialog(對話) |
---|---|---|---|---|---|
大小 | ~ 40GB | ~ 39GB | ~ 10GB | ~ 10GB | ~ 1GB |
2.2 訓練參數
表2-3 CPM模型訓練時的主要參數設定
參數名 | 參數值 |
---|---|
詞庫 | 子詞詞庫(適用于中文,同時包含字和常用詞) |
模型結構 | 從左至右的transformer decoder(類似GPT) |
batch size | 3072 |
學習率 | 0.00015 |
最大序列長度 | 1024 |
訓練步數 | 20000 |
訓練時間 | 2周 |
訓練資源 | 64張V100顯卡 |
訓練任務 | 從左到右的自回歸 |
訓練架構 | 模型并行,將模型在寬度上分割置于多張顯卡進行訓練 |
2.3 結果測試
三種規格的模型的零樣本(未經目標數據訓練或微調)對文本分類任務的效果令人意外,其中TNEWS與IFLYTEK為4分類,OCNLI為3分類。
表2-4 CPM三種規格模型在零樣本學習(zero-shot)情形下的文本分類效果
TNEWS | IFLYTEK | OCNLI | |
---|---|---|---|
CPM-Small | 0.626 | 0.584 | 0.378 |
CPM-Medium | 0.618 | 0.635 | 0.379 |
CPM-Large | 0.703 | 0.708 | 0.442 |
使用CPM進行實體生成時也表現出了令人驚喜的效果,在給予兩個三元組關系示例作為前文的情況下可以領會到以示例格式輸出生成的實體(見附-6所示代碼)。另外原論文表示在N設置為2時便可以取得與N為4時相當的效果。
表2-5 CPM模型在少樣本學習(few-shot)情形下于XLORE數據集上的BLEU-1分數對比
N = 2 | N = 4 | |
---|---|---|
CPM | Small Medium Large | Small Medium Large |
主要工藝 (Main Process) 釋義 (Explanation) 商品品牌 (Brand) 學科 (Subject) 全名 (Full Name) 涉及領域 (Related Field) 主要作物 (Main Crop) 所在國家 (In Country) 病原類型 (Pathogen Type) 首任總統 (The First President) |
0.500 0.500 0.700 0.000 0.000 0.071 0.098 0.033 0.483 0.000 0.025 0.124 0.035 0.010 0.108 0.042 0.065 0.104 0.000 0.150 0.050 0.033 0.033 0.033 0.250 0.220 0.370 0.000 0.000 0.000 |
0.400 0.200 0.400 0.000 0.000 0.075 0.183 0.050 0.450 0.059 0.053 0.108 0.000 0.014 0.122 0.063 0.037 0.125 0.100 0.150 0.100 0.050 0.000 0.050 0.200 0.300 0.340 0.016 0.009 0.014 |
*注:BLEU-1評估分數范圍在0~1之間,值越大代表效果越好;N代表少樣本學習中所給示例的數目;XLORE數據集是包含實體及關系的一個數據集;
3. 附錄
附-1 問答few-shot代碼示例
def ask_question(question, max_len=55):
out = sample('''問題:中國的首都是哪里?
答案:北京。
問題:李白在哪個朝代?
答案:唐朝。
問題:%s
答案:''' % question, max_len)
print(f"Q:{question} A:{out}")`
附-2 詩詞續寫few-shot代碼示例
def dictation_poetry(front, max_len=50):
out = sample('''默寫古詩:
白日依山盡,黃河入海流。
%s,''' % front, max_len)
print(f"Q:{front} A:{out}")`
附-3 算數問答few-shot代碼示例
def do_math(inputs, max_len=10):
out = sample('''1+1=2
3+2=5
%s''' % inputs, max_len)
print(f"Q:{inputs} A:{out}")`
附-4 省會實體生成few-shot代碼示例
def entity_generation_provincial_capital(inputs, max_len=20):
out = sample(
f"""山東 省會 濟南
河南 省會 鄭州
{inputs} """, max_len)
print(f"prompt:{inputs} answer:{out}")`
附-5 首都實體生成few-shot代碼示例
def entity_generation_capital(inputs, max_len=20):
out = sample(
f"""中國 首都 北京
美國 首都 華盛頓
{inputs} """, max_len)
print(f"prompt:{inputs} answer:{out}")`
附-6 學科實體生成few-shot代碼示例
def entity_generation_subject(inputs, max_len=20):
out = sample(
f"""恒星級黑洞 學科 宇宙論
品類需求強度 學科 品牌經濟學
{inputs} """, max_len)
print(f"prompt:{inputs} answer:{out}")`
附-7 詞性實體生成few-shot代碼示例
def entity_generation_pos(inputs, max_len=20):
out = sample(
f"""跑 詞性 動詞
可愛 詞性 形容詞
砰 詞性 擬聲詞
{inputs} """, max_len)
print(f"prompt:{inputs} answer:{out}")`
附-8 顏色實體生成few-shot代碼示例
def entity_generation_color(inputs, max_len=20):
out = sample(
f"""血液 顏色 紅色
天空 顏色 藍色
{inputs} """, max_len)
print(f"prompt:{inputs} answer:{out}")`
附-9 語種實體生成few-shot代碼示例
def entity_generation_language(inputs, max_len=20):
out = sample(
f"""吃了嗎 語言 漢語
interesting 語言 英語
{inputs} """, max_len)
print(f"prompt:{inputs} answer:{out}")`
附-10 導演/主演實體生成few-shot代碼示例
def entity_generation_director(inputs, max_len=20):
out = sample(
f"""霸王別姬 導演 陳凱歌
千與千尋 導演 宮崎駿
{inputs} """, max_len)
print(f"prompt:{inputs} answer:{out}")`
附-11 性別實體生成few-shot代碼示例
def entity_generation_gender(inputs, max_len=20):
out = sample(
f"""口紅 性別 女
胡須 性別 男
{inputs} """, max_len)
print(f"prompt:{inputs} answer:{out}")`
附-12 職業實體生成few-shot代碼示例
def entity_generation_job(inputs, max_len=20):
out = sample(
f"""奧巴馬 職業 總統
胡歌 職業 演員
{inputs} """, max_len)
print(f"prompt:{inputs} answer:{out}")`
附-13 同義詞生成few-shot代碼示例
def entity_generation_synonyms(inputs, max_len=20):
out = sample(
f"""信息 近義詞 資訊
生還 近義詞 幸存
{inputs} """, max_len)
print(f"prompt:{inputs} answer:{out}")`
附-14 翻譯實體生成few-shot代碼示例
def entity_generation_translation(inputs, max_len=20):
out = sample(
f"""信息 英語 information
我 德語 ich
{inputs} """, max_len)
print(f"prompt:{inputs} answer:{out}")`
附-15 歇后語實體生成few-shot代碼示例
def couplet(inputs, max_len=20):
out = sample(
f"""歇后語 孔夫子搬家 盡是書
兔子的尾巴 長不了
{inputs} """, max_len)
print(f"prompt:{inputs} answer:{out}")`
4. 參考文獻
1. Zhang, Z. et al. CPM: A Large-scale Generative Chinese Pre-trained Language Model. (2020).