天天看點

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

資料、算法和計算力是推動人工智能發展的三大要素。随着高性能 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 萬美元
XLNet訓練成本6萬美元,頂5個BERT,大模型「身價」驚人

機器之心制圖

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

計算力到底有多貴?

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

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

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

注意這裡還有一些換算關系,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,并統計訓練大模型所花費的成本。

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

一個完整的 Cloud TPU v3 Pod。

為什麼說 TPU 成本效益高于 GPU

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

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

如上圖所示,一個 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,訓練了一周多一點。

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

如果按這個資料,那麼訓練成本為 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)。

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

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

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

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

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

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

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

繼續閱讀