原標題:有人做出了中文版GPT-2,可用於寫小說、詩歌、新聞等;15億參數版GPT-2被兩名研究生復現
乾明 發自 凹非寺
GPT-2,逆天的語言AI模型,編故事以假亂真,問答翻譯寫摘要都行。
問世之後橫掃各大語言建模任務,引發了大量關注以及研究者跟進研究。
之後,圍繞着GPT-2產生了各種實用性應用:比如;高中生等等。
現在,又有兩個圍繞這一語言AI模型的成果出現。
- 一是中文版GPT-2開源(非官方),可以寫詩,新聞,小說、劇本,或是訓練通用語言模型。
- 二是,兩名碩士研究生花5萬美元複製了OpenAI一直磨磨唧唧開源的15億參數版GPT-2。
GPT-2發佈以來,雖然關注甚多,但在中文語境中的應用非常少。
最直接的因素,就在於沒有中文版,或者說是沒有人基於中文語料去大規模復現。
現在,有人這樣做了。
一位名叫」Zeyao Du「(位於南京)的開發者,在GitHub上開源了的GPT-2 Chinese。
可以用於寫詩、新聞、小說和劇本,或是訓練通用語言模型。
專案中預設使用BERT的tokenizer處理中文字元,支援字爲單位或是分詞模式或是BPE模式,並支援大語料訓練。
目前專案主要架構已經穩定,具體的訓練語料,作者也附上了相應的鏈接:
大規模中文自然語言處理語料 Large Scale Chinese Corpus for NLP
https://github.com/brightmart/nlp_chinese_corpus
中文文字分類數據集THUCNews
http://thuctc.thunlp.org/#%E8%8E%B7%E5%8F%96%E9%93%BE%E6%8E%A5
效果如何,大家可以自己感受下:
下圖是他們使用較大規模訓練後自由生成的文字。其中模型參數約80M,機器爲四個2080Ti,訓練步數140萬步,語料3.4G,Batch Size 8。
下圖是他們生成的鬥破蒼穹樣例。模型參數約爲50M,Batch Size 32,語料庫爲16MB鬥破蒼穹小說內容。
△[SEP]表示換行。
鬥破蒼穹語料:
https://github.com/GaoPeng97/transformer-xl-chinese/tree/master/data/doupo
下圖是限定了生成體裁後的古詩歌生成樣例(來自GitHub開發者@JamesHujy),參數未說明:
GPT-2 Chinese專案傳送門:
https://github.com/Morizeyao/GPT2-Chinese
15億參數版GPT-2
能夠實現逆天效果GPT-2模型,用到了15億個參數。
在發佈這一模型的時候,OpenAI說,這個模型實在太厲害了,要慢慢開源。
於是就開始了「擠牙膏」開源之旅,從今年2月到現在,纔開源到了7.74 億參數版本。
這一路上,有不少人都表示非常難以忍耐。
比如慕尼黑工業大學的一名大三本科生,在兩個月的時間裏,付出了200個小時的時間,花費了大約6000人民幣,復現了GPT-2專案,並在7月初放出了15億參數的版本。
至於效果如何,並沒有太多展示,專案鏈接:
https://github.com/ConnorJL/GPT2
現在,又有人忍不住了。
有兩名布朗大學的碩士研究生,搞出了一個15億參數的GPT-2模型,命名OpenGPT-2,還放出來了效果對比。
Google Colab地址:
https://colab.research.google.com/drive/1esbpDOorf7DQJV8GXWON24c-EQrSKOit
模型權重:
https://drive.google.com/drive/u/0/folders/1KfK5MXtvgH8C615UUZoKPIUVJYIdJxX1
搞出來之後,他們在部落格中說,其實想要複製GPT-2並不難,絕大多數感興趣的人都可以複製。比如,他們就可以復現論文中的很多結果,而且並沒有語言建模的經驗。
當然,得有錢。他們完整複製出來,花了大約5萬美元,還只是雲端訓練成本。
具體的複製難點有兩個,一是模型,二是數據。
模型上面,他們基於Grover模型,並對程式碼庫進行修改,來實現GPT-2的語言建模訓練的目標。
Grover模型論文地址:
https://arxiv.org/abs/1905.12616
因爲Grover的模型是在類似的大型語料庫上訓練的,所以很多程式碼和超參數都可以重複使用。他們並沒有大幅改變其中的超參數。
數據集方面,在很大程度上都保證了與OpenAI的處理方式相同,但並不能保證其中細節相同,最後得出了數據集OpenWebTextCorpus:
https://skylion007.github.io/OpenWebTextCorpus/
如此做出來的模型,效果如何?從定量維度上來看,在多個數據集上困惑度都與GPT-2原版接近:
定性維度上,就仁者見仁智者見者了,在Reddit上有人支援,但也有人覺得他們的模型效果不好。
這兩位碩士研究生,也在部落格中放了一個與官方GPT-2一樣的案例:
給出 「Recycling is good for the world. NO! YOU COULD NOT BE MORE WRONG!!」的提示。
複製版OpenGPT-2給出的結果如下:
That´s because recycling is all about selling to customers who cannot afford to recycle. If you don’t have any interest in recycling, in whatever form, then you could well be doing your own global environmental benefit if you just got rid of it.
Let me explain. Recycling takes time, money and energy, and it doesn’t really solve the problem.
If you go to recycling drop-off shops and they just sort out your recyclables for you then it means there is no need to sell them again to the local recycling company; they just take it back from you and you can just dump it.
There is nothing clever about this approach, in fact it just shuffles the problem around instead of solving it.
……
更多內容,可以前往兩位研究生的部落格文章中檢視:
https://medium.com/@vanya_cohen/opengpt-2-we-replicated-gpt-2-because-you-can-too-45e34e6d36dc
官方原版的GPT-2,給出結果如下:
Recycling is NOT good for the world. It is bad for the environment, it is bad for our health, and it is bad for our economy. I’m not kidding. Recycling is not good for the environment. It is destructive to the earth and it is a major contributor to global warming.
Recycling is not good for our health. It contributes to obesity and diseases like heart disease and cancer. Recycling is bad for our economy. It increases the cost of a product, and in turn, the price of everything that is made with that product.
Recycling is not good for our nation. We pay a tremendous price for the privilege of having the world’s most advanced and efficient recycling system. Recycling is a huge, colossal waste of time, energy, money, and resources.
And THAT is why we need to get back to basics and get back to basics in our recycling efforts. One of the best ways to start is to look at the process of creating a paper product.
……
更多內容,可以前往OpenAI部落格中檢視:
https://openai.com/blog/better-language-models/#sample8
你覺得模型效果如何?返回搜狐,檢視更多
責任編輯: