XLNet訓練成本6萬美元,頂5個BERT,大模型「身價」驚人

2021-02-23 機器之心
那些大公司的大模型到底有多貴?我們幫你算了一筆帳。

數據、算法和計算力是推動人工智慧發展的三大要素。隨著高性能 GPU、TPU 的出現,人們似乎正在將算力的利用推向極致。

去年 10 月,「最強 NLP 預訓練模型」Bert 問世,橫掃 11 項 NLP 任務記錄。但僅僅過了 8 個月,這一「最強」模型就遭到 XLNet 的碾壓,後者在 20 項任務上超越前者,又一次刷新 NLP 預訓練模型的各項記錄。

但除了「最強」之外,這些模型似乎也是「最貴」的。

早在 Bert 問世之時,深度好奇 CTO 呂正東就曾表示:「BERT 是一個 google 風格的暴力模型,暴力模型的好處是驗證概念上簡單模型的有效性,從而粉碎大家對於奇技淫巧的迷戀; 但暴力模型通常出現的一個壞處是'there is no new physics',我相信不少人對 BERT 都有那種『我也曾經多多少少想過類似的事情』的感覺,雖然也僅僅是想過而已。」

無一例外,碾壓 Bert 的 XLNet 也沒有走出「暴力美學」的範疇,普通研究者看了其訓練成本之後,只能說聲「打擾了……」

那麼,令普通研究者望而卻步的計算力到底有多貴?機器之心從原論文出發統計了大模型的訓練成本,下面讓我們仔細算一算這筆帳。

1. 語言模型

BERT:1.2 萬美元

GPT-2:4.3 萬美元

XLNet:6.1 萬美元

2. 高解析度 GAN

BigGAN:2.5 萬美元

StyleGAN:0.3 萬美元

機器之心製圖

這幾種都是比較有代表性的大模型,如果讀者也算過大模型訓練成本,歡迎留言對比呀。

計算力到底有多貴?

目前訓練神經網絡主要還是使用 GPU 或 TPU,先不說英偉達的各種高端 GPU 有多貴,雲計算上的高性能計算也不便宜。我們以谷歌云為例,Tesla V100 每小時 2.48 美元、Tesla P100 每小時 1.46 美元,谷歌 Colab 免費提供的 Tesla T4 GPU 每小時也要 0.95 美元。

對於大模型來說,最合理的計算資源還是 TPU,因為它能大大降低訓練時間,且成本換算下來還比較有優勢。TPU 的費用如下圖所示:

注意這裡還有一些換算關係,TPU 數量並不能簡單地通過一塊兩塊的方式統計。從大到小可以分為 Pod、Cloud TPU device、TPU Chips 和 Cores。上面的價格是一個 Cloud TPU device 的費用,它包含 4 塊 TPU Chip,且每塊 TPU Chip 有兩個核心(Core)。

TPU v2 和 TPU v3 的計數方式差異主要體現在 Pod 上,一個 Cloud TPU v2 Pod 有 64 個 Cloud TPU,即 512 個 TPU 核心。而一個 Cloud TPU v3 Pod 有 256 個 Cloud TPU,即 2048 個 TPU 核心。一個 Pod 中的所有 TPU 設備都是連在一起的,所以它們天然可以聯合做模型訓練或推斷。

因為論文中描述的 TPU 單位是不同的,我們會最終轉化為 Cloud TPU,並統計訓練大模型所花費的成本。

一個完整的 Cloud TPU v3 Pod。

為什麼說 TPU 性價比高於 GPU

很多讀者知道 TPU 性價比高,但不太了解到底高多少。在下圖中我們可以看到各種設備訓練相同 ResNet-50 所需要的時間,其中紅色數字表示晶片數量。

如上圖所示,一個 Cloud TPU v3 訓練 ResNet 需要 183 分鐘,它的價格為 8$/h;8 塊 Tesla V100 訓練 ResNet 需要 137 分鐘,它的價格為 19.84$/h。這樣算起來,TPU v3 總共費用需要 24.4 美元,Tesla V100 需要 45.57 美元。不過這樣計算也有一丟丟不公平,因為 TPU v3 慢了 47 分鐘,時間也是一種成本。

大模型到底有多貴?

自然語言到視覺,大模型的訓練費用越來越高,但具體高到什麼程度很少有量化對比。如下在計算不同模型的單次訓練費用時,因為調參之類的費用沒辦法統計,所以我們就忽略了。此外,因為 GPT-2 原論文中沒有描述訓練配置,論文作者只在 Reddit 中簡要描述一段,所以我們以 Reddit 中的數據為準。

BERT

原論文中描述,大型 BERT 模型在 16 個 Cloud TPU 上需要訓練 4 天:

Training of BERT_BASE was performed on 4 Cloud TPUs in Pod configuration (16 TPU chips total).13 Training of BERT_LARGE was performed on 16 Cloud TPUs (64 TPU chips total). Each pretraining took 4 days to complete.

現在我們來算一下成本,16 個 Cloud TPU v3 總訓練成本為 16×8×24×4=12288 美元。有研究者在 Reddit 中回復作者,他們可以使用更便宜的搶佔式(Preemptible)TPU 訓練模型,那樣成本約為 16×2.4×24×4=3686.4 美元。不過一般的 TPU 優先於搶佔式 TPU,如果它們需要計算資源,可以暫停搶佔式對資源的調用。

BERT 的作者在 Reddit 上也表示預訓練的計算量非常大,Jacob 說:「OpenAI 的 Transformer 有 12 層、768 個隱藏單元,他們使用 8 塊 P100 在 8 億詞量的數據集上訓練 40 個 Epoch 需要一個月,而 BERT-Large 模型有 24 層、2014 個隱藏單元,它們在有 33 億詞量的數據集上需要訓練 40 個 Epoch,因此在 8 塊 P100 上可能需要 1 年?16 個 Cloud TPU 已經是非常大的計算力了。」

為了做對比,這裡統一用一般的 TPU 價格計算成本,因此 BERT 訓練一次大概需要 1.23 萬美元。

GPT-2 

今年另一個非常受關注的語言模型就是 GPT-2 了,它充分展示了什麼才算大模型。我們可以理解為,GPT-2 就是在 GPT 的基礎上放大十多倍,它需要的算力應該比 BERT 還大。堆了這麼多算力與數據,GPT-2 的效果確實驚人,它根據一個前提就能從容地把故事編下去。

但是在 GPT-2 原論文中,我們沒找到關於算力的描述,只找到了疑似論文作者的描述。他表明 GPT-2 用了 64 個 Cloud TPU v3,訓練了一周多一點。

如果按這個數據,那麼訓練成本為 32×8×24×7=43008 美元,這個成本已經是訓練 BERT 的 3 到 4 倍了。

XLNet 

2018 年,谷歌發布大規模預訓練語言模型 BERT ,為 NLP 領域帶來了極大的驚喜。但最近,Quoc V. Le 等研究者提出的 XLNet 在 20 個任務上超過了 BERT 的表現,並在 18 個任務上取得了當前最佳效果。既然效果這麼好,那麼它的成本會不會也超過 BERT?

在原論文中,作者表示 XLNet 大模型在 128 個 Cloud TPU v3 下需要訓練 2 天半:

We train XLNet-Large on 512 TPU v3 chips for 500K steps with an Adam optimizer, linear learning rate decay and a batch size of 2048, which takes about 2.5 days. 

這樣算起來,128×8×24×2.5=61440 美元,沒想到 XLNet 訓練一次的費用比 GPT-2 還高,達到了 BERT 的 5 倍。既然成本這麼高,以後可以考慮用預訓練的 XLNet 代替 BERT 了。

在看了 XLNet 的算力成本之後,有開發者感嘆:「謝天謝地我不在 NLP 領域工作,要是讓我去說服老闆訓練一個模型花 6 萬多美元,而且還不能保證這個模型一定好用,我覺得我會哭……」

那麼問題來了,NLP 算力燒錢,視覺模型就省錢嗎?

我們拿視覺領域比較有代表性的大模型 BigGAN 和 StyleGAN 來算一筆帳。

BigGAN 

視覺模型中,常見高成本任務就是訓練高解析度的 GAN 了。在去年 BigGAN 中,研究者表示他們訓練 512×512 像素的圖像需要 64 個 Cloud TPU v3,訓練 24 到 48 個小時:

We train on a Google TPU v3 Pod, with the number of cores proportional to the resolution: 128 for 128×128, 256 for 256×256, and 512 for 512×512. Training takes between 24 and 48 hours for most models.

如果我們用最大訓練時間 48 小時為基準,那麼訓練成本為 64×8×48=24576 美元。是的,BigGAN 的訓練成本也比 BERT 高,大約是它的兩倍左右。

StyleGAN

最後,我們統計一下 StyleGAN 的訓練成本,因為這篇論文是英偉達提出來的,所以用的是 Tesla V100。該論文使用的 FFHQ 數據集由 1024×1024 的人臉圖像組成,模型使用 8 張 Tesla V100 需要訓練一星期:

Our training time is approximately one week on an NVIDIA DGX-1 with 8 Tesla V100 GPUs.

這裡我們按照谷歌雲的價格計算總成本,從而更好地做對比。總體而言,訓練成本為 8×2.48×24×7=3333.12 美元。可能因為數據集僅限於人臉,StyleGAN 的成本要比 BigGAN 低很多。

沒有谷歌級別的算力,要怎麼取得研究突破

在算完算力這筆帳之後,我們可以得出一個結論:以谷歌、Facebook 等巨頭為首的大型公司似乎才玩得起這種大模型,這種算力上的碾壓是普通研究者無法抗衡的。那麼,無法獲得這種大規模算力支持的普通研究者路在何方?他們要怎樣才能取得研究突破?

在這一問題上,致力於 AI 和遊戲研究的紐約大學副教授 Julian Togelius 給出的答案是:不走尋常路(By being weird)。

他解釋說,「那些公司雖然規模龐大,但它們也痴迷於保持自己的靈活性。其中一些公司在一定程度上取得了成功,但它們不敢像一個瘋瘋癲癲的教授一樣特立獨行。一個只有幾個學生和幾臺電腦的教授永遠無法在直接競爭中抗衡 DeepMind 和 FAIR。但我們可以去嘗試那些看起來完全講不通的方法,或者去破解那些沒有人想要去嘗試解決的問題(因為那些問題看起來不像問題)。」

Julian Togelius 教授還以自己為例,證明了這種做法的有效性。他表示,自己在研究生涯中做的那些有用、有價值的事情往往都是去解決一些別人沒有想到要去解決的問題,或者嘗試一些原本看起來行不通的方法,最後的結果都出乎自己的預料。

對於 Togelius 教授的觀點,有人表示支持,並指出很多創業公司就是靠「不走尋常路」才建立了競爭優勢。

但也有人提出了質疑,認為 Julian Togelius 教授提出的觀點可能存在很大的「倖存者偏差」。這位質疑者認為,我們不應該不顧別人阻攔就一頭扎進某個問題。他認為,我們正在推行一種文化,即鼓勵人們去做自己認為對的事情,哪怕所有人都告訴他不要去做。雖然有時候一意孤行會取得成果,但鼓勵大家都這麼做並不合適,因為只有一小部分人最後會取得成功。ta 還引用了 Yoshua Bengio 在採訪時說過的一句話:「光有自信還不夠,你可能會因為自信而犯錯。」

當然,對於 Togelius 教授的建議,我們要理性看待。無論該建議是否可行,他都為我們做了一個很好的榜樣,說明算力不等於一切。

正如有些 reddit 評論者所指出的,那些獲得最佳論文獎項的研究多數是用中小級別計算機就能完成的,不需要谷歌級別的算力。因此,普通研究者要取得突破,算力可能從來都不是真正的限制。

參考連結:https://www.reddit.com/r/MachineLearning/comments/c2pfgb/d_how_can_you_do_great_ai_research_when_you_dont/
https://www.reddit.com/r/MachineLearning/comments/c59ikz/r_it_costs_245000_to_train_the_xlnet_model512_tpu/
https://www.reddit.com/r/MachineLearning/comments/9nfqxz/r_bert_pretraining_of_deep_bidirectional/

市北·GMIS 2019全球數據智能峰會於7月19日-20日在上海市靜安區舉行。本次峰會以「數據智能」為主題,聚焦最前沿研究方向,同時更加關注數據智能經濟及其產業生態的發展情況,為技術從研究走向落地提供借鑑。

本次峰會設置主旨演講、主題演講、AI畫展、「AI00」數據智能榜單發布、閉門晚宴等環節,已確認出席嘉賓如下:

大會早鳥票已開售,我們也為廣大學生用戶準備了最高優惠的學生票,點擊閱讀原文即刻報名。

相關焦點

  • 按照時間線幫你梳理10種預訓練模型
    效果:在 12 個任務裡,9 個達到了最好的效果,有些任務性能提升非常明顯。   「   4.XLNet   」XLNet是一個語言模型。和E,隨機mask中文某字第二階段,詞組級別的mask,即phrase-level masking,mask掉句子中一部分詞組(預測這些詞組的階段,詞組信息被編碼到詞向量中)第三階段,實體級別的mask,即entity-level masking
  • 【Github】BERT-train2deploy:BERT模型從訓練到部署
    : BERT從訓練到部署附件:本例中訓練完成的模型文件.ckpt格式及.pb格式文件,由於比較大,已放到網盤提供下載:連結:https://pan.baidu.com/s/1DgVjRK7zicbTlAAkFp7nWw提取碼:8iaw如果你想跳過前面模型的訓練過程,可以直接使用訓練好的模型,來完成後面的部署。
  • 復旦大學邱錫鵬教授:NLP預訓練模型綜述
    6.4 情感分析BERT 通過在廣泛使用的情感分析數據集 SST-2 上進行微調後,表現超過了先前的 SOTA 模型。而後又有很多將 BERT 進行調整以應用在 aspect 級的情感分析(ABSA)任務上。6.5 總結從長文本中總結出短文本也是近期 NLP 的熱點。
  • pytorch中文語言模型bert預訓練代碼
    大部分中文語言模型都是在tensorflow上訓練的,一個常見例子是中文roberta項目。可以參考https://github.com/brightmart/roberta_zh使用pytorch進行中文bert語言模型預訓練的例子比較少。在huggingface的Transformers中,有一部分代碼支持語言模型預訓練(不是很豐富,很多功能都不支持比如wwm)。
  • 谷歌開源NLP模型可視化工具LIT,模型訓練不再「黑箱」
    深度學習模型的訓練就像是「黑箱操作」,知道輸入是什麼、輸出是什麼,但中間過程就像個黑匣子,這使得研究人員可能花費大量時間找出模型運行不正常的原因。假如有一款可視化的工具,能夠幫助研究人員更好地理解模型行為,這應該是件非常棒的事。
  • 10分鐘掌握Bert源碼(PyTorch版)
    準備預訓練模型一個是預訓練模型的準備,我使用的是谷歌的中文預訓練模型:chinese_L-12_H-768_A-12.zip,模型有點大,我就不上傳了,如果本地不存在,就點擊這裡直接下載,或者直接命令行運行wget https://storage.googleapis.com/bert_models
  • 1美元從零開始訓練Bert,內附教程
    然而,除了實際的模型訓練部分之外,本指南列出的其他步驟都可以在單獨的機器上運行。特別是當你的數據集過大或者十分私密而無法在 Colab 環境中進行預處理時,這就顯得十分有用了。代碼連結:https://colab.research.google.com/drive/1nVn6AFpQSzXBt8_ywfx6XR8ZfQXlKGAz?
  • RoBERTa中文預訓練模型:RoBERTa for Chinese
    :30G原始文本,近3億個句子,100億個中文字(token),產生了2.5億個訓練數據(instance);覆蓋新聞、社區問答、多個百科數據等。(roberta_l24_zh),使用30G文件訓練, 9月8日2、12層RoBERTa模型(roberta_l12_zh),使用30G文件訓練, 9月8日3、6層RoBERTa模型(roberta_l6_zh), 使用30G文件訓練, 9月8日4、PyTorch版本的模型(roberta_l6_zh_pytorch) 9月8日5、30G中文語料
  • 谷歌發布最大語言模型:等於9個GPT-3,訓練成本卻低得多
    與此同時,此次也首次展現了大型稀疏模型(參數量驚人,但計算成本恆定)也可以用較低精度的格式進行訓練。接著,研究人員使用了32個TPU內核在一個數據集上預訓練了幾個不同的Switch Transformer模型。
  • 30分鐘帶你徹底掌握Bert源碼(Pytorch)
    準備預訓練模型一個是預訓練模型的準備,我使用的是谷歌的中文預訓練模型:chinese_L-12_H-768_A-12.zip,模型有點大,我就不上傳了,如果本地不存在,就點擊這裡直接下載,或者直接命令行運行wget https://storage.googleapis.com/bert_models
  • BERT模型蒸餾有哪些方法?
    finetune-將預訓練過程中所學到的知識應用到子任務中,以達到優異的效果。預訓練模型在各個領域雖然帶來了巨大的提升,但是也有一些致命的問題:大存儲需求——預訓練模型一般都很大,少則幾百 M,大則幾 G,無法在有限資源的設備上部署。
  • 【測評】GPU訓練機器學習模型哪家強?AWS、谷歌雲、IBM等6大平臺對比
    在6大GPU硬體平臺上,執行Twitter情緒分類任務(大約150萬條推文,4個時期),訓練雙向LSTM的成本。由上圖可知,專用伺服器是控制成本的最佳選擇。模型對90%(shuffled)數據進行了4個epoch的訓練,剩下的10%用於模型評估。Docker 為了可重複性,他們創建了一個Nvidia Docker鏡像 ,其中包含重新運行此基準測試所需的所有依賴項和數據。Dockerfile和所有必需的代碼可以在這個Github[3]庫中找到。
  • 預訓練永不止步,遊戲問答語言模型實操
    #訓練數據樣例我喜歡你興高採烈表情怎麼購買我需要一張國慶投票券#對應生成的reference file[3][2, 3, 4, 5, 6, 8, 10][3, 7, 8, 9, 10]#以 興高採烈表情怎麼購買 為例分詞後:['興高採烈表情', '怎麼', '購買']bert分詞後:['[
  • 玩不起1200萬美元砸出的GPT-3?百度EasyDL讓你玩得起超大規模預訓練
    在預訓練模型領域,BERT 開啟的「暴力美學」逐漸演變成一場氪金遊戲,動輒幾十、上百萬美元的訓練費用令普通開發者望而卻步。算力不夠強、money 不夠多就不能玩大規模預訓練模型了嗎?事實並非如此。 自從預訓練模型提出以來,預訓練就不停地刷新我們的認知。
  • 超越谷歌BERT!依圖推出預訓練語言理解模型ConvBERT,入選NeurIPS 2020
    在本文中,本土獨角獸依圖科技提出了一個小而美的方案——ConvBERT,通過全新的注意力模塊,僅用 1/10 的訓練時間和 1/6 的參數就獲得了跟 BERT 模型一樣的精度。相比費錢的 GPT-3,這項成果可讓更多學者用更少時間去探索語言模型的訓練,也降低了模型在預測時的計算成本。本文已被 NeurIPS 2020 接收。
  • 谷歌發布NLP最先進預訓練模型:開源BERT
    本周,我們公布了一項用於NLP預訓練的新技術,稱為雙向編碼器表示的變形器 (Bidirectional Encoder Representations Transformers),即BERT。通過這個模型,所有人都可以在大約30分鐘內使用一個伺服器上的TPU訓練他們自己最先進的諸如問答系統等各種模型,或者使用單個GPU在幾個小時內完成訓練。
  • 圖解當前最強語言模型BERT:NLP是如何攻克遷移學習的?
    也就是說我們需要一個有標註的數據集來訓練模型。對於這個垃圾郵件分類器示例,有標註的數據集即為郵件信息和對應標籤構成的列表(每條郵件信息被標註為「垃圾郵件」或「非垃圾郵件」)。相比於 Transformer 初始論文的參考實現的默認配置(6 個編碼器層、512 個隱藏單元和 8 個注意頭),它們還有更大的前饋網絡(分別有 768 和 1024 個隱藏單元)和更多注意頭(attention head,分為有 12 和 16 個)。模型輸入
  • 中文最佳,哈工大訊飛聯合發布全詞覆蓋中文BERT預訓練模型
    全詞 Mask 方法Whole Word Masking (wwm) 是谷歌在 2019 年 5 月 31 日發布的一項 BERT 的升級版本,主要更改了原預訓練階段的訓練樣本生成策略。在過去的 BERT 預訓練中,mask 方式為按照字粒度進行 mask,而全詞模型則有所不同。
  • 高調亮相的「俄版F35」,到底是俄空軍的新希望還是騙錢的模型?
    很多人都聽說了,俄羅斯最近搞了個大新聞——大名鼎鼎的蘇霍伊在7月20日舉行的莫斯科航展上公開展示了最新型的單引擎第五代戰鬥機,綽號「將死/將軍」(Checkmate),一些看熱鬧不嫌事大的西方記者直接將其稱為蘇-75戰鬥機。