GPT“高仿”系列開源了!最大可達GPT-3大小,還能自主訓練

雖然GPT-3沒有開源,卻已經有人在復刻GPT系列的模型了。

例如,慕尼黑工業大學的Connor Leahy,此前用200個小時、6000RMB,復現了GPT-2。

又例如,基於150億參數版GPT-3的DALL·E模型剛出,來自康奈爾大學的Philip Wang就開始復現了。

但此前,還沒人能復現出GPT-3大小的大語言模型來。

不過,已經有人開始嘗試了。這是一個名爲GPT-Neo的項目,用於復現GPT系列的各種語言模型,當然也包括GPT-3。

作者表示,目前他們已經成功製造出GPT-2大小的模型。

從項目代碼的可擴展性來看,他們預計可以復刻出GPT-3大小的語言模型,甚至比GPT-3更大。

不僅如此,由於這是個開源的項目,大家還可以自主訓練這些模型(將來也會包括GPT-3)。

目前,作者已經給出了詳細的訓練步驟。

消息一出,網友沸騰了:

要是真能復現,說不定會比現在的GPT-3還要更好用!

GPT系列的“高仿”項目

本質上,GPT-Neo有點像是GPT系列的“高仿”項目:

GPT-Neo中的各種模型,設計原理接近GPT系列,但代碼並不一樣。

作者們打算嘗試各種結構和注意力類型,最終擴展出GPT-3大小的大語言模型。

爲了實現這一目標,他們從復現GPT系列的模型開始,不斷嘗試各種模型架構、和各種注意力機制的實現方式。

也就是說,GPT-Neo更像是一個實驗性質的項目,通過各種嘗試,擴展出更大的模型。

這裡面,融合了各種讓模型變得“更大”的研究:

例如,多任務學習方法MoE(Mixture of Experts),採用多個專家的結構,將問題空間劃分爲同質區域,然後採用分發器,決定問題應該問哪些專家。

又比如,具有線性複雜性的自注意力機制。

……

這個項目還在施工中,不過,連模型的訓練方式都準備好了。

項目計劃通過TPU或GPU,對大語言模型進行訓練。

爲此,作者們已經基於Tensorflow-mesh(用於在GPU上訓練模型)、Deepspeed(用於在TPU上訓練模型)兩個項目,編寫了GPT-Neo的訓練代碼。

這兩個項目都可以擴展到大於GPT-3的大小,甚至還能更大。

因此,訓練GPT-3大小的模型,軟件理論上是可行的。

但硬件上的問題,目前作者們還在思考明確的解決方案。如果將來真的做出了GPT-3大小的模型,他們打算先從谷歌那多要點免費資源,如果不行的話,就再說……

如何訓練GPT-Neo

當然,在TPU和GPU上訓練的方式有所不同。

如果使用TPU訓練的話,需要註冊一個谷歌雲平臺,創建存儲空間,然後再搞個虛擬機,將模型放到TPU上訓練。

不過,如果你的GPU硬件足夠OK,也可以選擇直接訓練GPT-Neo,就不用設置一系列谷歌雲了。

此外,也可以用谷歌Colab來訓練項目,它免費提供TPU-V8S處理器,訓練GPT的3XL(1.5B參數)版本綽綽有餘。

訓練過程也不復雜,主要包括創建分詞器、數據集預處理、指定訓練數據集、選擇訓練配置、訓練模型幾個步驟。

在創建分詞器上,GPT-Neo目前提供一個Huggingface的預訓練GPT-2分詞器。不過,也可以訓練自己專屬的分詞器。

然後,對數據進行預處理,可以直接下載項目提供的數據,也可以使用自己的數據集。

在那之後,指定模型訓練所用的數據集,然後對訓練方式進行設置,例如優化算法、訓練步數等。

然後,指定硬件名稱、數量,就可以開始訓練模型了。

“只會用谷歌搜索的自動化團隊”

不過,對於GPT系列的項目復現,有網友並不看好。

網友認爲,GPT-X系列項目,就像是一個由幾百人組成的自動化團隊,這幾百人只會用谷歌搜索來幹活,而且還沒辦法寫出最新的新聞事件報道。(因爲訓練數據無法一直更新)

它雖然是個非常有趣的研究,但目前卻還沒有一個“殺手級”應用,來讓GPT-3項目的存在變得更有意義。

當然,也有人認爲,復現這一項目還是有意義的。

即使只是“幾百個只會用搜索引擎幹活的團隊”,他們也需要快速給出某個問題的答案。

如何在大量零碎信息中,高效地選出最優解,本身就是GPT-X項目的價值之一。畢竟如果只是幾百個“會用谷歌搜索”的人組成的團隊,是無法像GPT-3一樣,快速得出最佳答案的。

當然,也有一些程序員調侃,要是這個GPT-3項目真的被複現了,豈不是他們馬上就要失業了。

“我們總是在用谷歌搜索、和stackoverflow來解決問題。這不就是像GPT-3一樣,只會整合搜索引擎上的信息,來解決問題嗎?”

“該死,原來GPT-3竟然可以取代這麼多程序員。”

目前,GPT-Neo的所有項目和代碼已開源。

想要上手一試、或是對項目感興趣的小夥伴,可以行動起來了~

項目地址:https://github.com/EleutherAI/gpt-neo

參考鏈接:https://www.eleuther.ai/gpt-neohttps://news.ycombinator.com/item?id=25819803