當前位置:
首頁 > 知識 > 15億參數的GPT-2被兩個CS碩士複製出來了,沒有語言建模經驗,花了5萬美元

15億參數的GPT-2被兩個CS碩士複製出來了,沒有語言建模經驗,花了5萬美元

機器之心報道

參與:杜偉、張倩

前幾天,OpenAI 發布了 7.74 億參數量的新一版 GPT-2,並表示將在幾個月之內發布 15.58 億參數量的完整版本。但還沒等到完整版官宣,有人就已經等不及了,索性自己動手複製了一個 15 億參數量的 GPT-2,並將其命名為 OpenGPT-2。項目作者是來自布朗大學的兩位碩士研究生,他們複製 GPT-2 的花費大約是 5 萬美元。

項目的兩位作者:Aaron Gokaslan和Vanya Cohen 。

讀者可以在 Google Colab 上訪問該模型並生成文本。

Google Colab 地址:https://colab.research.google.com/drive/1esbpDOorf7DQJV8GXWON24c-EQrSKOit

模型權重:https://drive.google.com/drive/u/0/folders/1KfK5MXtvgH8C615UUZoKPIUVJYIdJxX1

作者表示,複製 GPT-2 沒有那麼難,論文中的很多結果都是他們兩人可以複製的,並且二人並沒有語言建模的經驗。所以,只要你感興趣(壕),你也能自己複製一份。

複製方法和成本

OpenGPT-2 的實現基於 Grover 模型,通過修改它們的代碼庫來達到 GPT-2 的語言建模訓練目標。由於 Grover 模型是在類似的大型語料庫上進行訓練,所以很多代碼和超參數很容易重複使用。他們也沒有對 Grover 的超參數進行大量修改。

至於成本嘛,他們使用自己的代碼從零開始訓練 GPT-2 模型大約花費了 5 萬美元。但需要注意的是,5 萬美元只是雲計算的估算成本,沒有包含更細微的內在成本(在其他效率更低的易用計算資源上訓練模型的效果會更差)。

數據集

OpenAI GPT-2 的原始論文中有對清理數據集的詳解。在該論文中,Open AI 的研究人員用到了一個名為 WebText 的數據集,其中包含數百萬個網頁。

論文地址:https://d4mucfpksywv.cloudfront.net/better-language-models/language_models_are_unsupervised_multitask_learners.pdf

如 WebText 一樣,本文中的兩位研究者首先解析 Reddit 上 3 個 up-vote 以上的所有鏈接。同時,他們利用了 Pushshift Reddit scrape 數據集,該數據集集合了持續更新的 Reddit 帖子、評論和有關元數據。然後,作者對這些鏈接進行過濾,刪除那些不太可能包含有用文本或 HTML 的文件類型(即視頻文件、PDF 和 CSS 格式文件)的直接鏈接。

此外,作者還過濾了網頁,以刪除被各種評估基準和數據集所使用的 Wikipedia 內容。他們並不能確定自己的過濾方法是否符合 OpenAI 的標準。因此,他們使用 Newspaper Python 庫從 HTML 網頁上提取文本,然後使用 fastText Python 庫只過濾掉英文文本。

具體來說,作者使用了 WhatTheLang python Wrapper。他們利用局部敏感哈希(locally sensitive hashing,LSH)刪除這些文檔。最後,他們將這些文檔散列到了 5-gram 的集合中,並刪除了相似度閾值大於 0.5 的所有文檔。

作者還從數據集中刪除了 token 數少於 128 的文檔。這些短文檔往往質量較低。作者將這一數據集作為 OpenWebTextCorpus 發布。

數據集鏈接:https://skylion007.github.io/OpenWebTextCorpus/

在編碼數據集時,作者使用了 Radford 等人發布的適用於小模型的 Binary Pattern 編碼器。他們還利用 OpenWebText 網頁爬取代碼庫的修訂版作為自身數據集集合的起始點。

從公開發布的 WebText 的 26 萬篇文檔的集合來看,作者發現所有文檔的雙位元組編碼(BPE)長度最小為 40,最大為 1024。而 OpenWebText 的不同之處在於作者將文檔長度的最低值設為 128 個 token(替代 BPE),並且不限制文檔最大長度。此外,原始 WebTextCorpus 是在這些樣本可用之前發布的,因此作者沒有使用這些信息來生成清理啟發式。

儘管在訓練分布上存在差異,作者依然得出了與多數數據集接近的困惑度。

效果

兩位作者在 medium 博客中展示了 OpenGPT-2 的生成效果。他們提供給模型的提示為:「Recycling is good for the world. NO! YOU COULD NOT BE MORE WRONG!!」,輸入模型之後得到了以下輸出:

reddit 網友也根據作者給出的連接進行了測試,並將測試結果與 OpenAI 前幾天公布的 7.74 億參數量版本進行了對比。有人表示:

我使用相同的提示分別測試了 OpenGPT-2 和 OpenAI 的 GPT-2 7.74 億參數版本,結果還是 OpenAI 的輸出效果更好,所以作者的複製過程或許存在一些問題。

當然,也有人認為 OpenGPT-2 的效果更好:

我認為作者的 OpenGPT-2 效果優於 OpenAI 的 GPT-2 7.74 億參數版本,但還不足以用來製造令人信服的假新聞。幾次嘗試輸入「Shocking revelation! Vladimir Putin and Donald Trump are」,我得出了以下效果最佳的文本。該文本能夠更長時間地保持語義連貫性,語句也更有意義,但還是比較容易被識破。但不可否認,OpenGPT-2 對研究確實很有幫助。

但我還有一個疑問,OpenGPT-2 到底只是把它讀過的文本隨機組合到一起,還是真正地創造出了新文本。

至於 OpenGPT-2 的生成效果究竟如何,大家可以根據文中提供的鏈接測試一下。

參考鏈接:

https://www.reddit.com/r/MachineLearning/comments/cu9xgi/p_opengpt2_we_replicated_gpt2_because_you_can_too/

https://medium.com/@vanya_cohen/opengpt-2-we-replicated-gpt-2-because-you-can-too-45e34e6d36dc

WAIC 2019 開發者日將於 8 月 31 日在上海世博中心舉辦,包含 1 個主單元、4 個分單元、黑客馬拉松比賽和開發者診所互動區。

屆時,全球頂尖 AI 專家、技術大牛、知名企業代表以及數千名開發者將齊聚上海,圍繞人工智慧前沿理論技術和開發實踐進行分享與解讀。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

PyTorch代碼調試利器:自動print每行代碼的Tensor信息
陳天奇:機器學習科研的十年

TAG:機器之心 |